View Javadoc

1   package uba.db.sql.language;
2   
3   import java.util.ArrayList;
4   import java.util.Iterator;
5   import java.util.List;
6   
7   import org.apache.commons.lang.builder.EqualsBuilder;
8   import org.apache.commons.lang.builder.HashCodeBuilder;
9   
10  /***
11   * @version $Revision: 1.3 $
12   */
13  public class CreateTable implements Sentence {
14      private TableName tableName;
15  
16      private List columnDeclarations;
17  
18      private List primaryKeyColumns;
19  
20      public CreateTable(TableName tableName, List columnDeclarations,
21              List primaryKeyColumns) {
22          this.tableName = tableName;
23          this.columnDeclarations = columnDeclarations;
24          this.primaryKeyColumns = primaryKeyColumns;
25      }
26  
27      public CreateTable(TableName tableName, List columnDeclarations) {
28          this(tableName, columnDeclarations, new ArrayList());
29      }
30  
31      /***
32       * @see uba.db.sql.language.Visitable#accept(uba.db.sql.language.Visitor)
33       */
34      public void accept(Visitor visitor) {
35          visitor.visitCreateTable(this);
36      }
37  
38      /***
39       * @see java.lang.Object#equals(java.lang.Object)
40       */
41      public boolean equals(Object obj) {
42          return EqualsBuilder.reflectionEquals(this, obj);
43      }
44  
45      /***
46       * @see java.lang.Object#hashCode()
47       */
48      public int hashCode() {
49          return HashCodeBuilder.reflectionHashCode(this);
50      }
51  
52      /***
53       * @see java.lang.Object#toString()
54       */
55      public String toString() {
56          StringBuffer buff = new StringBuffer();
57  
58          buff.append("CREATE TABLE ").append(tableName).append(" (");
59          Iterator iter = columnDeclarations.iterator();
60          while (iter.hasNext()) {
61              buff.append(iter.next());
62              if (iter.hasNext()) {
63                  buff.append(", ");
64              }
65          }
66          buff.append(")");
67  
68          return buff.toString();
69      }
70  
71      /***
72       * @return Returns the columnDeclarations.
73       */
74      public List columnDeclarations() {
75          return columnDeclarations;
76      }
77  
78      /***
79       * @return Returns the primaryKeyColumns.
80       */
81      public List primaryKeyColumns() {
82          return primaryKeyColumns;
83      }
84  
85      /***
86       * @return Returns the tableName.
87       */
88      public TableName tableName() {
89          return tableName;
90      }
91  }