View Javadoc

1   package uba.db.sql.language;
2   
3   import org.apache.commons.lang.builder.EqualsBuilder;
4   import org.apache.commons.lang.builder.HashCodeBuilder;
5   
6   /***
7    * Un origen de selección que hace referencia a una tabla.
8    * 
9    * @see uba.db.sql.language.Select
10   * 
11   * @version $Revision: 1.3 $
12   */
13  public class TableSelectionSource implements SelectionSource {
14      private TableName tableName;
15  
16      /***
17       * Este constructor es equivalente a: <i>TableSelectionSource(new
18       * TableName(tableName))</i>
19       * 
20       * @see #TableSelectionSource(TableName)
21       */
22      public TableSelectionSource(String tableName) {
23          this(new TableName(tableName));
24      }
25  
26      /***
27       * Crea una instancia que equivale a la expresion:
28       * <code>.. FROM <b>tableName</b></code> de un <i>SELECT</i>.
29       * 
30       * @param tableName
31       *            nombre de la tabla
32       */
33      public TableSelectionSource(TableName tableName) {
34          this.tableName = tableName;
35      }
36  
37      /***
38       * @see java.lang.Object#hashCode()
39       */
40      public int hashCode() {
41          return HashCodeBuilder.reflectionHashCode(this);
42      }
43  
44      /***
45       * @see java.lang.Object#equals(java.lang.Object)
46       */
47      public boolean equals(Object obj) {
48          return EqualsBuilder.reflectionEquals(this, obj);
49      }
50  
51      /***
52       * @see java.lang.Object#toString()
53       */
54      public String toString() {
55          return tableName.toString();
56      }
57  
58      /***
59       * @see uba.db.sql.language.Visitable#accept(uba.db.sql.language.Visitor)
60       */
61      public void accept(Visitor visitor) {
62          visitor.visitTableSelectionSource(this);
63      }
64  
65      /***
66       * Retorna un {@link Join} creado a partir del receptor y <i>b</i>
67       * 
68       * @param otherSelectionSource
69       *            otherSelectionSource
70       */
71      public Join join(SelectionSource otherSelectionSource) {
72          return new Join(this, otherSelectionSource);
73      }
74  
75      public TableName tableName() {
76          return tableName;
77      }
78  }