Revision 1956 trunk/libraries/libGDBMS/src/com/hardcode/gdbms/engine/instruction/OrExprAdapter.java

View differences:

OrExprAdapter.java
1 1
package com.hardcode.gdbms.engine.instruction;
2 2

  
3
import com.hardcode.gdbms.engine.data.DriverException;
3
import com.hardcode.gdbms.engine.data.driver.DriverException;
4 4
import com.hardcode.gdbms.engine.values.Value;
5 5

  
6 6

  
......
10 10
 * @author Fernando Gonz?lez Cort?s
11 11
 */
12 12
public class OrExprAdapter extends AbstractExpression implements Expression {
13
    /**
14
     * Evalua expresi?n invocando el m?todo adecuado en funci?n del tipo de
15
     * expresion (suma, producto, ...) de los objetos Value de la expresion,
16
     * de las subexpresiones y de los objetos Field
17
     *
18
     * @param row Fila en la que se eval?a la expresi?n, en este caso no es
19
     *        necesario, pero las subexpresiones sobre las que se opera pueden
20
     *        ser campos de una tabla, en cuyo caso si es necesario
21
     *
22
     * @return Objeto Value resultado de la operaci?n propia de la expresi?n
23
     *         representada por el nodo sobre el cual ?ste objeto es adaptador
24
     *
25
     * @throws SemanticException Si se produce un error sem?ntico
26
     * @throws DriverException Si se produce un error de I/O
27
     */
28
    public Value evaluate(long row) throws SemanticException, DriverException {
29
        Value ret = null;
13
	/**
14
	 * Evalua expresi?n invocando el m?todo adecuado en funci?n del tipo de
15
	 * expresion (suma, producto, ...) de los objetos Value de la expresion,
16
	 * de las subexpresiones y de los objetos Field
17
	 *
18
	 * @param row Fila en la que se eval?a la expresi?n, en este caso no es
19
	 * 		  necesario, pero las subexpresiones sobre las que se opera pueden
20
	 * 		  ser campos de una tabla, en cuyo caso si es necesario
21
	 *
22
	 * @return Objeto Value resultado de la operaci?n propia de la expresi?n
23
	 * 		   representada por el nodo sobre el cual ?ste objeto es adaptador
24
	 *
25
	 * @throws SemanticException Si se produce un error sem?ntico
26
	 * @throws DriverException Si se produce un error de I/O
27
	 */
28
	public Value evaluate(long row) throws SemanticException, DriverException {
29
		Value ret = null;
30 30

  
31
        Adapter[] expr = (Adapter[]) getChilds();
31
		Adapter[] expr = (Adapter[]) getChilds();
32 32

  
33
        if (expr.length > 0) {
34
            ret = ((Expression) expr[0]).evaluateExpression(row);
33
		if (expr.length > 0) {
34
			ret = ((Expression) expr[0]).evaluateExpression(row);
35 35

  
36
            for (int i = 1; i < expr.length; i++) {
37
                ret = ret.or(((Expression) expr[i]).evaluateExpression(row));
38
            }
39
        }
36
			for (int i = 1; i < expr.length; i++) {
37
				ret = ret.or(((Expression) expr[i]).evaluateExpression(row));
38
			}
39
		}
40 40

  
41
        return ret;
42
    }
41
		return ret;
42
	}
43 43

  
44
    /**
45
     * @see com.hardcode.gdbms.engine.instruction.Expression#getFieldName()
46
     */
47
    public String getFieldName() {
48
        return null;
49
    }
44
	/**
45
	 * @see com.hardcode.gdbms.engine.instruction.Expression#getFieldName()
46
	 */
47
	public String getFieldName() {
48
		return null;
49
	}
50 50

  
51
    /**
52
     * @see com.hardcode.gdbms.engine.instruction.Expression#isLiteral()
53
     */
54
    public boolean isLiteral() {
55
        return literal;
56
    }
51
	/**
52
	 * @see com.hardcode.gdbms.engine.instruction.Expression#isLiteral()
53
	 */
54
	public boolean isLiteral() {
55
		return literal;
56
	}
57 57

  
58
    /**
59
     * @see com.hardcode.gdbms.engine.instruction.Expression#simplify()
60
     */
61
    public void simplify() {
62
        Adapter[] childs = getChilds();
58
	/**
59
	 * @see com.hardcode.gdbms.engine.instruction.Expression#simplify()
60
	 */
61
	public void simplify() {
62
		Adapter[] childs = getChilds();
63 63

  
64
        if (childs.length == 1) {
65
            getParent().replaceChild(this, childs[0]);
66
        }
67
    }
64
		if (childs.length == 1) {
65
			getParent().replaceChild(this, childs[0]);
66
		}
67
	}
68 68

  
69 69
	/**
70 70
	 * @see com.hardcode.gdbms.engine.instruction.Expression#calculateLiteralCondition()
71 71
	 */
72 72
	public void calculateLiteralCondition() {
73
        literal = Utilities.checkExpressions(getChilds());
73
		literal = Utilities.checkExpressions(getChilds());
74 74
	}
75 75
}

Also available in: Unified diff