KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sql99 > expression > expressionprimary > sequencecolumnName


1 package com.daffodilwoods.daffodildb.server.sql99.expression.expressionprimary;
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.dcl.sqltransactionstatement.*;
7 import com.daffodilwoods.daffodildb.server.sql99.ddl.schemadefinition.*;
8 import com.daffodilwoods.daffodildb.server.sql99.dql.tableexpression.fromclause.*;
9 import com.daffodilwoods.daffodildb.server.sql99.expression.*;
10 import com.daffodilwoods.daffodildb.server.sql99.expression.rowvalueexpression.*;
11 import com.daffodilwoods.daffodildb.server.sql99.token.*;
12 import com.daffodilwoods.daffodildb.server.sql99.utils.*;
13 import com.daffodilwoods.database.general.*;
14 import com.daffodilwoods.database.resource.*;
15
16 public class sequencecolumnName extends AbstractValueExpression implements simpletargetspecification, targetspecification, nonparenthesizedvalueexpressionprimary, valueexpressionprimary, generalvaluespecification {
17    public sequenceindicators _sequenceindicators0;
18    public Speriod_991726143 _Speriod_9917261431;
19    public localorschemaqualifiedname _localorschemaqualifiedname2;
20
21    _ServerSession serverSession;
22    QualifiedIdentifier sequenceIdentifier;
23    String JavaDoc columnName;
24    _SequenceGenerator sequenceGenerator;
25    private static String JavaDoc query = "select * from " + SystemTables.sequence_number_TableName + " where sequence_catalog = ? ";
26
27    public Object JavaDoc run(Object JavaDoc object) throws DException {
28
29       String JavaDoc sequenceIndicator = (String JavaDoc) _sequenceindicators0.run(null);
30       return sequenceIndicator.equalsIgnoreCase("CURRENTVAL") ? sequenceGenerator.getCurrent() : sequenceGenerator.getNext();
31
32    }
33
34    public _Reference[] checkSemantic(_ServerSession serverSession) throws DException {
35      if (sequenceIdentifier == null) {
36       sequenceIdentifier = getSequenceIdentifier(serverSession);
37      }
38      if (sequenceGenerator == null) {
39       sequenceGenerator = serverSession.getSequenceManager().getSequenceGenerator(sequenceIdentifier);
40     }
41         return new SequenceReference[]{new SequenceReference(sequenceIdentifier.getIdentifier())};
42      }
43
44    private QualifiedIdentifier getSequenceIdentifier(_ServerSession selectRunnable) throws DException {
45
46       String JavaDoc catalog = _localorschemaqualifiedname2.getCatalogName() ;
47       String JavaDoc schema = _localorschemaqualifiedname2.getSchemaName();
48       String JavaDoc name = _localorschemaqualifiedname2.getIdentifierName();
49       QualifiedIdentifier sequenceIdentifier = new QualifiedIdentifier(
50          (catalog == null ? selectRunnable.getCurrentCatalog() : catalog),
51          (schema == null ? selectRunnable.getCurrentSchema() : schema) ,name );
52       return sequenceIdentifier;
53    }
54
55    private String JavaDoc[] getColumnName() throws DException {
56       String JavaDoc catalogName = _localorschemaqualifiedname2.getCatalogName();
57       String JavaDoc schemaName = _localorschemaqualifiedname2.getSchemaName();
58       String JavaDoc sequenceName = _localorschemaqualifiedname2.getIdentifierName();
59       String JavaDoc columnName = (String JavaDoc) _sequenceindicators0.run(null);
60       if (catalogName != null) {
61          return new String JavaDoc[] {catalogName, schemaName, sequenceName, columnName};
62       }
63       if (catalogName != null) {
64          return new String JavaDoc[] {schemaName, sequenceName, columnName};
65       }
66       return new String JavaDoc[] {sequenceName, columnName};
67    }
68
69    public int getCardinality() throws DException {
70       return 1;
71    }
72
73    public ColumnDetails[] getChildColumnDetails() throws DException {
74       return columnDetails;
75    }
76
77    public AbstractRowValueExpression[] getChilds() {
78       AbstractRowValueExpression[] childs = new AbstractRowValueExpression[] {};
79       return childs;
80    }
81
82    public String JavaDoc toString() {
83       StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
84       sb.append(" ");
85       sb.append(_localorschemaqualifiedname2);
86       sb.append(" ");
87       sb.append(_Speriod_9917261431);
88       sb.append(" ");
89       sb.append(_sequenceindicators0);
90       return sb.toString();
91    }
92
93    public Object JavaDoc clone() throws CloneNotSupportedException JavaDoc {
94       sequencecolumnName tempClass = new sequencecolumnName();
95       tempClass._sequenceindicators0 = (sequenceindicators) _sequenceindicators0.clone();
96       tempClass._Speriod_9917261431 = (Speriod_991726143) _Speriod_9917261431.clone();
97       tempClass._localorschemaqualifiedname2 = (localorschemaqualifiedname) _localorschemaqualifiedname2.clone();
98       return tempClass;
99    }
100
101    public ParameterInfo[] getParameterInfo() throws DException {
102       ParameterInfo parameterInfo = new ParameterInfo();
103       parameterInfo.setName(toString());
104       parameterInfo.setDataType(Datatypes.LONG);
105       return new ParameterInfo[] {parameterInfo};
106    }
107
108    public ColumnDetails[] getColumnDetails() throws DException {
109       if (columnDetails == null) {
110          ColumnDetails cd = new ColumnDetails();
111          cd.setColumnName(getColumnName());
112          cd.setType(CONSTANT);
113          cd.setDatatype(Datatypes.LONG);
114          columnDetails = new ColumnDetails[] {cd};
115          cd.setTypeForSequence(SEQUENCETYPE);
116        }
117       return columnDetails;
118    }
119
120    public ByteComparison getByteComparison(Object JavaDoc object) throws DException {
121      return new ByteComparison(false,new int[]{Datatypes.LONG});
122    }
123 }
124
Popular Tags