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

Reply via email to