Statistics
| Revision:

root / trunk / libraries / libGDBMS / src / com / hardcode / gdbms / engine / instruction / SelectAdapter.java @ 466

History | View | Annotate | Download (2.64 KB)

1
/* Generated by Together */
2
package com.hardcode.gdbms.engine.instruction;
3

    
4
import com.hardcode.gdbms.engine.data.DataSource;
5

    
6

    
7
/**
8
 * Adapta el nodo que representa una instrucci?n select en el ?rbol  sint?ctico
9
 * de entrada
10
 *
11
 * @author Fernando Gonz?lez Cort?s
12
 */
13
public class SelectAdapter extends Adapter {
14
    private DataSource[] tables;
15
    private DataSource dataSource;
16

    
17
    /**
18
     * Obtiene las tablas de la cl?usula FROM de la instrucci?n
19
     *
20
     * @return Tablas de la select
21
     *
22
     * @throws SemanticException Si se produce un error sem?ntico
23
     */
24
    public DataSource[] getTables() throws SemanticException {
25
        return ((TableListAdapter) getChilds()[1]).getTables();
26
    }
27

    
28
    /**
29
     * Obtiene las expresiones de los campos de la cl?usula SELECT o null si
30
     * hay un ''.
31
     *
32
     * @return Expresiones de los campos
33
     */
34
    public Expression[] getFieldsExpression() {
35
        return ((SelectColsAdapter) getChilds()[0]).getFieldsExpression();
36
    }
37

    
38
    /**
39
     * Obtiene el alias de los campos. Al igual que getFieldsExpression,
40
     * devuelve null si se selecciona ''
41
     *
42
     * @return Array de strings con los alias
43
     */
44
    public String[] getFieldsAlias() {
45
        return ((SelectColsAdapter) getChilds()[0]).getFieldsAlias();
46
    }
47

    
48
    /**
49
     * Devuelve true si la palabra clave DISTINCT se us? y false en caso
50
     * contrario
51
     *
52
     * @return Devuelve true si se utiliz? la palabra clave DISTINCT
53
     */
54
    public boolean isDistinct() {
55
        return ((SelectColsAdapter) getChilds()[0]).isDistinct();
56
    }
57

    
58
    /**
59
     * @see com.hardcode.gdbms.engine.instruction.SelectInstruction#setTables(com.hardcode.gdbms.engine.data.DataSource[])
60
     */
61
    public void setTables(DataSource[] tables) {
62
        this.tables = tables;
63
    }
64

    
65
    /**
66
     * Obtiene el origen de datos para los campos a la hora de evaluar las
67
     * expresiones
68
     *
69
     * @return
70
     */
71
    public DataSource getDataSource() {
72
        return dataSource;
73
    }
74

    
75
    /**
76
     * Establece el origen de datos para los campos a la hora de evaluar las
77
     * expresiones
78
     *
79
     * @param source
80
     */
81
    public void setDataSource(DataSource source) {
82
        dataSource = source;
83
    }
84

    
85
    /**
86
     * @see com.hardcode.gdbms.engine.instruction.SelectInstruction#getWhereExpression()
87
     */
88
    public Expression getWhereExpression() throws SemanticException {
89
        Adapter[] hijos = getChilds();
90

    
91
        if (hijos.length < 3) {
92
            return null;
93
        }
94

    
95
        if (hijos[2] instanceof WhereAdapter) {
96
            return ((WhereAdapter) hijos[2]).getExpression();
97
        } else {
98
            return null;
99
        }
100
    }
101
}