KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sql99 > expression > stringvalueexpression > AbstractStringValueExpression


1 package com.daffodilwoods.daffodildb.server.sql99.expression.stringvalueexpression;
2
3 import com.daffodilwoods.daffodildb.server.sql99.common.*;
4 import com.daffodilwoods.daffodildb.server.sql99.expression.*;
5 import com.daffodilwoods.daffodildb.server.sql99.utils.*;
6 import com.daffodilwoods.database.resource.*;
7
8 public abstract class AbstractStringValueExpression extends AbstractValueExpression implements stringvalueexpression, _sortspecificationAndselectSubList, Datatypes, TypeConstants {
9
10    protected ColumnDetails column;
11    public ColumnDetails[] getColumnDetails() throws DException {
12       initializeChildren();
13       int len = childs.length;
14       column = new ColumnDetails();
15       String JavaDoc type = getType(); //(String)_SRESERVEDWORD12065439223.run(null);
16
StringBuffer JavaDoc str = new StringBuffer JavaDoc(); //type + "(";
17
str.append(type);
18       str.append("(");
19       ColumnDetails[][] cds = new ColumnDetails[len][];
20       String JavaDoc[] namesOfColumn = new String JavaDoc[len];
21       for (int i = 0; i < childs.length; i++) {
22          cds[i] = childs[i].getColumnDetails();
23          namesOfColumn[i] = getNameOfColumn(cds[i]);
24          this.columnDetails = StaticClass.mergeColumnDetails(this.columnDetails, cds[i]);
25          str.append(namesOfColumn[i]);
26          str.append(",");
27       }
28       str.deleteCharAt(str.length() - 1);
29       str.append(")");
30
31       column.setFunctionType(type);
32       column.setType(SCALARFUNCTION);
33       column.setColumnName(new String JavaDoc[] {str.toString()});
34       column.setObject(this);
35       return new ColumnDetails[] {column};
36    }
37
38    public abstract String JavaDoc getType() throws DException; //{
39

40    protected String JavaDoc getNameOfColumn(ColumnDetails[] columnDetails) throws DException {
41       String JavaDoc nameOfColumn = "";
42       for (int i = 0; i < columnDetails.length; ++i) {
43          nameOfColumn += columnDetails[i].getColumn();
44       }
45       return nameOfColumn;
46    }
47
48    public Object JavaDoc run(Object JavaDoc object) throws com.daffodilwoods.database.resource.DException {
49       /**@todo Implement this com.daffodilwoods.daffodildb.server.sql99.common.ScalarFunction method*/
50       throw new java.lang.UnsupportedOperationException JavaDoc("Method run() not yet implemented.");
51    }
52
53    public ColumnDetails[] getChildColumnDetails() throws DException {
54       /**@todo Implement this com.daffodilwoods.daffodildb.server.sql99.common.ScalarFunction method*/
55       throw new java.lang.UnsupportedOperationException JavaDoc("Method getChildColumnDetails() not yet implemented.");
56    }
57
58    public ByteComparison getByteComparison(Object JavaDoc object) throws DException {
59       ByteComparison byteComparison =new ByteComparison(false, new int[] {Datatypes.CHARACTER});
60       byteComparison.setSize(getColumnSize(object));
61       return new ByteComparison(false, new int[] {Datatypes.CHARACTER});
62    }
63
64    public abstract int getColumnSize(Object JavaDoc object) throws DException;
65
66    public void releaseResource() throws DException {
67
68    }
69    public int getCardinality() throws DException {
70
71       return 1;
72    }
73
74
75
76 }
77
Popular Tags