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 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 [] javaParametersClass; 31 32 public Object run(Object object) throws DException { 33 if (_Server.ISONEDOLLARDB) 34 throw new DException("DSE2054", new Object [] {"External java procedure"}); 35 _ServerSession currentSession = (_ServerSession) object; 36 Class clas = (Class ) _externalmethodname1.run(currentSession); 37 if (_Optjavamethodsignature0 != null) { 38 Class [] param = _Optjavamethodsignature0.javaParametersClass(); 39 Method methodExist = checkForMethodExistance(clas, param); 40 } 41 42 StringBuffer External_Name = new StringBuffer (); 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 [] getJavaParametersClass() throws DException { 67 return javaParametersClass; 68 } 69 70 public Method checkForMethodExistance(Class cl, Class [] params) throws DException { 71 Method ms = null; 72 String methodName = _externalmethodname1._javamethodname0.getMethodName(); 73 try { 74 ms = cl.getDeclaredMethod(methodName, params); 75 } catch (SecurityException e) { 76 throw new DException("DSE8126", new Object [] {methodName, cl}); 77 } catch (NoSuchMethodException ex1) { 78 throw new DException("DSE8126", new Object [] {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 clone() throws CloneNotSupportedException { 89 return this; 90 } 91 92 public SQLprocedurestatement[] getStatements() throws DException { 93 throw new UnsupportedOperationException (); 94 } 95 96 public String toString() { 97 StringBuffer str = new StringBuffer (" "); 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 |