View Javadoc

1   package uba.db.sql.language;
2   
3   /***
4    * Representa las columnas que se deben mostrar en el resultado de un <i>SELECT</i>.
5    * 
6    * @version $Revision: 1.4 $
7    */
8   public interface DisplayColumns extends Visitable {
9       /***
10       * A las columnas a mostrar representadad por esta instancia, les agrega
11       * otra (u otras) columnas a mostrar.
12       * 
13       * @param other
14       *            las columnas a agregar
15       * @return un objeto que implementa esta interfaz y contiene las columnas a
16       *         mostrar representadas por el receptor del mensaje, mas las
17       *         columnas a mostrar representadas por el colaborador <i>other</i>.
18       */
19      DisplayColumns append(DisplayColumns other);
20  
21      /***
22       * Este método más especifico es utilizado por la implementación de
23       * {@link #append(DisplayColumns)}, para hacer el "Double Dispatch". La
24       * semantica de los métodos <i>appendTo</i> es agregar el receptor del
25       * mensaje a la instancia pasada como parametro (al reves de
26       * {@link #append(DisplayColumns)} que es agregar el parametro al receptor).
27       * 
28       * @param columns
29       *            instancia de {@link DisplayAllColumns} al que será agregado el
30       *            receptor del mensaje.
31       * 
32       * @return un objeto que implementa esta interfaz y contiene las columnas a
33       *         mostrar representadas representadas por el colaborador <i>columns</i>,
34       *         mas las columnas a mostrar representada por el receptor del
35       *         mensaje.
36       * 
37       * @see DisplayMultipleColumns
38       */
39      DisplayColumns appendTo(DisplayAllColumns columns);
40  
41      /***
42       * @see #appendTo(DisplayAllColumns)
43       */
44      DisplayColumns appendTo(DisplayMultipleColumns otherDisplayMultipleColumns);
45  
46      /***
47       * @see #appendTo(DisplayAllColumns)
48       */
49      DisplayColumns appendTo(DisplayOneColumn oneColumn);
50  }