KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sql99 > common > UserFunctionColumnDetails


1 package com.daffodilwoods.daffodildb.server.sql99.common;
2
3 import java.util.*;
4
5 import com.daffodilwoods.daffodildb.server.serversystem.*;
6 import com.daffodilwoods.daffodildb.server.sql99.*;
7 import com.daffodilwoods.daffodildb.server.sql99.utils.*;
8 import com.daffodilwoods.daffodildb.utils.*;
9 import com.daffodilwoods.daffodildb.utils.field.*;
10 import com.daffodilwoods.database.resource.*;
11
12 public class UserFunctionColumnDetails extends ColumnDetails {
13    private _Executer functionExecuter;
14    _StatementExecutionContext sec;
15
16    public Object JavaDoc run(Object JavaDoc object) throws DException {
17       _VariableValues vv = (_VariableValues) object;
18       _ServerSession currentSession = vv.getServerSession();
19       if (functionExecuter == null) {
20          sec = currentSession.getStatementExecutionContext();
21          sec.setVariableValues(vv);
22          functionExecuter = (_Executer) (
23              (com.daffodilwoods.daffodildb.utils.parser.StatementExecuter)super.getObject()).run(sec);
24       }
25       CallResult cr = (CallResult) functionExecuter.execute(vv);
26       Object JavaDoc functionObject = cr.getResult();
27       FieldBase fb = FieldUtility.getFieldForVariable(functionObject);
28       return FieldUtility.convertToAppropriateType(fb, getDatatype(), getSize(), null);
29    }
30
31    public Object JavaDoc clone() throws CloneNotSupportedException JavaDoc {
32       UserFunctionColumnDetails cd = new UserFunctionColumnDetails();
33       cd.columnName = columnName;
34       cd.type = type;
35       cd.aliasName = aliasName;
36       cd.functionType = functionType;
37       cd.quantifier = quantifier;
38       cd.dataType = dataType;
39       cd.size = size;
40       cd.index = index;
41       cd.tableDetails = tableDetails;
42       cd.typeObject = typeObject;
43       cd.outerReference = outerReference;
44       cd.tableAliasArray = tableAliasArray;
45       cd.columnName = new ArrayList();
46       cd.columnName.addAll(columnName);
47       cd.negativeFlag = negativeFlag;
48       cd.isTriggerCase = isTriggerCase;
49       cd.originalColumnName = originalColumnName;
50       cd.question = question;
51       cd.isCloned = true;
52       cd.functionExecuter = functionExecuter;
53       return cd;
54    }
55 }
56
Popular Tags