001    
002    
003    
004    //Source File Name:   ZInsert.java
005    
006    package railo.runtime.sql.old;
007    
008    import java.util.Vector;
009    
010    
011    //         ZExpression, ZQuery, ZStatement, ZExp
012    
013    public final class ZInsert
014     implements ZStatement
015    {
016    
017     public ZInsert(String s)
018     {
019         columns_ = null;
020         valueSpec_ = null;
021         table_ = new String(s);
022     }
023    
024     public String getTable()
025     {
026         return table_;
027     }
028    
029     public Vector getColumns()
030     {
031         return columns_;
032     }
033    
034     public void addColumns(Vector vector)
035     {
036         columns_ = vector;
037     }
038    
039     public void addValueSpec(ZExp zexp)
040     {
041         valueSpec_ = zexp;
042     }
043    
044     public Vector getValues()
045     {
046         if(!(valueSpec_ instanceof ZExpression))
047             return null;
048         return ((ZExpression)valueSpec_).getOperands();
049     }
050    
051     public ZQuery getQuery()
052     {
053         if(!(valueSpec_ instanceof ZQuery))
054             return null;
055         return (ZQuery)valueSpec_;
056     }
057    
058     public String toString()
059     {
060         StringBuffer stringbuffer = new StringBuffer("insert into " + table_);
061         if(columns_ != null && columns_.size() > 0)
062         {
063             stringbuffer.append("(" + columns_.elementAt(0));
064             for(int i = 1; i < columns_.size(); i++)
065                 stringbuffer.append("," + columns_.elementAt(i));
066    
067             stringbuffer.append(")");
068         }
069         String s = valueSpec_.toString();
070         stringbuffer.append(" ");
071         if(getValues() != null)
072             stringbuffer.append("values ");
073         if(s.startsWith("("))
074             stringbuffer.append(s);
075         else
076             stringbuffer.append(" (" + s + ")");
077         return stringbuffer.toString();
078     }
079    
080     String table_;
081     Vector columns_;
082     ZExp valueSpec_;
083    }