KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sql99 > ddl > schemadefinition > externaljavareference


1 package com.daffodilwoods.daffodildb.server.sql99.ddl.schemadefinition;
2
3 import java.lang.reflect.*;
4
5 import com.daffodilwoods.daffodildb.server.serversystem.*;
6 import com.daffodilwoods.daffodildb.server.sql99.*;
7 import com.daffodilwoods.daffodildb.server.sql99.ddl.descriptors.*;
8 import com.daffodilwoods.daffodildb.server.sql99.token.*;
9 import com.daffodilwoods.database.resource.*;
10
11 /**
12  * <p>Title: </p>
13  * <p>Description: </p>
14  * <p>Copyright: Copyright (c) 2002</p>
15  * <p>Company: </p>
16  * @author harvinder bhutani
17  * @version 1.0
18  */

19
20 public class externaljavareference implements com.daffodilwoods.daffodildb.utils.parser.StatementExecuter, routinebody, SQLexecutablestatement {
21    public javamethodsignature _Optjavamethodsignature0;
22    public externalmethodname _externalmethodname1;
23    public SNONRESERVEDWORD136444255 _SNONRESERVEDWORD1364442552;
24    public SRESERVEDWORD1206543922 _SRESERVEDWORD12065439223;
25
26    private SQLprocedurestatement sQLprocedurestatement;
27
28    private RoutineDescriptor routineDescriptor;
29    private int noOfJavaParameters;
30    private Class JavaDoc[] javaParametersClass;
31
32    public Object JavaDoc run(Object JavaDoc object) throws DException {
33       if (_Server.ISONEDOLLARDB)
34                throw new DException("DSE2054", new Object JavaDoc[] {"External java procedure"});
35       _ServerSession currentSession = (_ServerSession) object;
36       Class JavaDoc clas = (Class JavaDoc) _externalmethodname1.run(currentSession);
37       if (_Optjavamethodsignature0 != null) {
38          Class JavaDoc[] param = _Optjavamethodsignature0.javaParametersClass();
39          Method methodExist = checkForMethodExistance(clas, param);
40       }
41
42       StringBuffer JavaDoc External_Name = new StringBuffer JavaDoc();
43       External_Name.append(_externalmethodname1);
44       if (_Optjavamethodsignature0 != null) {
45          External_Name.append(_Optjavamethodsignature0);
46          setJavaParameters();
47          setJavaParametersClass();
48       }
49       routineDescriptor.EXTERNAL_NAME = External_Name.toString();
50       routineDescriptor.EXTERNAL_LANGUAGE = "JAVA";
51       return null;
52    }
53
54    public void setJavaParameters() throws DException {
55       noOfJavaParameters = _Optjavamethodsignature0.getJavaParametersLength();
56    }
57
58    public int getJavaParameters() throws DException {
59       return noOfJavaParameters;
60    }
61
62    public void setJavaParametersClass() throws DException {
63       javaParametersClass = _Optjavamethodsignature0.javaParametersClass();
64    }
65
66    public Class JavaDoc[] getJavaParametersClass() throws DException {
67       return javaParametersClass;
68    }
69
70    public Method checkForMethodExistance(Class JavaDoc cl, Class JavaDoc[] params) throws DException {
71       Method ms = null;
72       String JavaDoc methodName = _externalmethodname1._javamethodname0.getMethodName();
73       try {
74          ms = cl.getDeclaredMethod(methodName, params);
75       } catch (SecurityException JavaDoc e) {
76          throw new DException("DSE8126", new Object JavaDoc[] {methodName, cl});
77       } catch (NoSuchMethodException JavaDoc ex1) {
78          throw new DException("DSE8126", new Object JavaDoc[] {methodName, cl});
79       }
80       return ms;
81    }
82
83    public void setRoutineDescriptor(RoutineDescriptor routineDescriptor) throws
84        DException {
85       this.routineDescriptor = routineDescriptor;
86    }
87
88    public Object JavaDoc clone() throws CloneNotSupportedException JavaDoc {
89       return this;
90    }
91
92    public SQLprocedurestatement[] getStatements() throws DException {
93       throw new UnsupportedOperationException JavaDoc();
94    }
95
96    public String JavaDoc toString() {
97       StringBuffer JavaDoc str = new StringBuffer JavaDoc(" ");
98       str.append(_SRESERVEDWORD12065439223);
99       str.append(" ");
100       str.append(_SNONRESERVEDWORD1364442552);
101       str.append(" ");
102       str.append(_externalmethodname1);
103       if (_Optjavamethodsignature0 != null)
104          str.append(_Optjavamethodsignature0);
105       return str.toString();
106    }
107 }
108
Popular Tags