KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sql99 > utils > parser > ConditionParser


1 package com.daffodilwoods.daffodildb.server.sql99.utils.parser;
2
3 import com.daffodilwoods.daffodildb.server.datadictionarysystem.*;
4 import com.daffodilwoods.daffodildb.server.serversystem.*;
5 import com.daffodilwoods.daffodildb.server.sql99.common.*;
6 import com.daffodilwoods.daffodildb.server.sql99.expression.booleanvalueexpression.*; /**
7  * Title:
8  * Description:
9  * Copyright: Copyright (c) 2002
10  * Company:
11  * @author Akash Kumar
12  * @version 1.0
13  */

14 import com.daffodilwoods.daffodildb.utils.parser.*;
15 import com.daffodilwoods.database.general.*;
16 import com.daffodilwoods.database.resource.*;
17
18 public class ConditionParser {
19
20    static ProductionRules ruleBVE;
21    public ConditionParser() {
22    }
23
24    public static booleanvalueexpression parseCondition(String JavaDoc inputCondition) throws DException {
25       initializeBVE();
26       booleanvalueexpression condition = (booleanvalueexpression) ruleBVE.parseUsingTokens(inputCondition);
27       condition.getColumnDetails();
28       return condition;
29    }
30
31    public static booleanvalueexpression parseConstraintsCondition(String JavaDoc inputCondition) throws DException {
32       initializeBVE();
33       booleanvalueexpression condition = (booleanvalueexpression) ruleBVE.parseUsingTokens(inputCondition);
34       ColumnDetails[] columns = condition.getColumnDetails();
35       for (int i = 0, length = columns.length; i < length; i++) {
36          if (columns[i].getType() == TypeConstants.REFERENCE) {
37             columns[i].setSessionConditionFlag();
38          }
39       }
40       return condition;
41    }
42
43    public static booleanvalueexpression parseCondition(String JavaDoc conditionBVE, _ServerSession serverSession, QualifiedIdentifier tableName) throws DException {
44       initializeBVE();
45       booleanvalueexpression condition = (booleanvalueexpression) ruleBVE.parseUsingTokens(conditionBVE);
46       ColumnDetails[] columns = condition.getColumnDetails();
47       _ColumnCharacteristics clmchs = serverSession.getColumnCharacteristics(tableName);
48
49       for (int i = 0, length = columns.length; i < length; i++) {
50          if (columns[i].getType() == TypeConstants.REFERENCE) {
51             columns[i].setDatatype(clmchs.getColumnType(clmchs.getColumnIndex(columns[i].getColumn())));
52             columns[i].setSize(clmchs.getSize(clmchs.getColumnIndex(columns[i].getColumn())));
53             columns[i].setSessionConditionFlag();
54          }
55       }
56
57       return condition;
58    }
59
60    private static void initializeBVE() throws DException {
61       if (ruleBVE == null) {
62          ruleBVE = Parser.findProductionRule("boolean value expression");
63       }
64    }
65
66    public void initializeRule() throws DException {
67       if (ruleBVE == null) {
68          ruleBVE = Parser.findProductionRule("boolean value expression");
69       }
70    }
71 }
72
Popular Tags