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