User: dsundstrom
Date: 02/02/26 16:01:56
Modified: src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata
JDBCQueryMetaDataFactory.java
Log:
Added support for DynamicQL and JBossQL queries.
Added support for array parameters.
Revision Changes Path
1.12 +42 -2
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata/JDBCQueryMetaDataFactory.java
Index: JDBCQueryMetaDataFactory.java
===================================================================
RCS file:
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata/JDBCQueryMetaDataFactory.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- JDBCQueryMetaDataFactory.java 12 Feb 2002 19:23:06 -0000 1.11
+++ JDBCQueryMetaDataFactory.java 27 Feb 2002 00:01:56 -0000 1.12
@@ -6,6 +6,7 @@
*/
package org.jboss.ejb.plugins.cmp.jdbc.metadata;
+import java.lang.reflect.Array;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
@@ -24,7 +25,7 @@
* on the query specifiection type.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Dain Sundstrom</a>
- * @version $Revision: 1.11 $
+ * @version $Revision: 1.12 $
*/
public class JDBCQueryMetaDataFactory {
private JDBCEntityMetaData entity;
@@ -92,6 +93,27 @@
return new JDBCRawSqlQueryMetaData(method);
}
+ // JBOSS-QL
+ Element jbossQL =
+ MetaData.getOptionalChild(queryElement, "jboss-ql");
+ if(jbossQL != null) {
+ return new JDBCJBossQLQueryMetaData(
+ jdbcQueryMetaData,
+ jbossQL,
+ method,
+ readAhead);
+ }
+
+ // DYNAMIC-SQL
+ Element dynamicQL =
+ MetaData.getOptionalChild(queryElement, "dynamic-ql");
+ if(dynamicQL != null) {
+ return new JDBCDynamicQLQueryMetaData(
+ jdbcQueryMetaData,
+ dynamicQL,
+ method);
+ }
+
// DECLARED-SQL
Element delcaredSql =
MetaData.getOptionalChild(queryElement, "declared-sql");
@@ -243,8 +265,26 @@
}
}
+ int arraySize = 0;
+ while(name.endsWith("[]")) {
+ name = name.substring(0, name.length()-2);
+ arraySize++;
+ }
+
try {
- return entity.getClassLoader().loadClass(name);
+ // get the base class
+ Class c = entity.getClassLoader().loadClass(name);
+
+ // if we have an array get the array class
+ if(arraySize > 0) {
+ int[] dimensions = new int[arraySize];
+ for(int i=0; i<arraySize; i++) {
+ dimensions[i]=1;
+ }
+ c = Array.newInstance(c, dimensions).getClass();
+ }
+
+ return c;
} catch(ClassNotFoundException e) {
throw new DeploymentException("Parameter class not found: " + name);
}
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development