User: dsundstrom
  Date: 02/02/26 15:47:10

  Modified:    src/main/org/jboss/ejb/plugins/cmp/jdbc JDBCEJBQLQuery.java
  Log:
  Changed to use new JDBCEJBQLCompiler based on JavaCC.
  
  Revision  Changes    Path
  1.6       +25 -37    
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCEJBQLQuery.java
  
  Index: JDBCEJBQLQuery.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCEJBQLQuery.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- JDBCEJBQLQuery.java       22 Feb 2002 04:24:55 -0000      1.5
  +++ JDBCEJBQLQuery.java       26 Feb 2002 23:47:10 -0000      1.6
  @@ -8,12 +8,7 @@
   package org.jboss.ejb.plugins.cmp.jdbc;
   
   import org.jboss.deployment.DeploymentException;
  -import org.jboss.ejb.plugins.cmp.ejbql.Assembly;
  -import org.jboss.ejb.plugins.cmp.ejbql.Parser;
  -import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMPFieldBridge;
  -import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCEntityBridge;
  -import org.jboss.ejb.plugins.cmp.jdbc.ejbql.EJBQLParser;
  -import org.jboss.ejb.plugins.cmp.jdbc.ejbql.SQLTarget;
  +import org.jboss.ejb.plugins.cmp.ejbql.Catalog;
   import org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCQlQueryMetaData;
   import org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCQueryMetaData;
   
  @@ -21,7 +16,7 @@
    * This class generates a query from EJB-QL.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Dain Sundstrom</a>
  - * @version $Revision: 1.5 $
  + * @version $Revision: 1.6 $
    */
   public class JDBCEJBQLQuery extends JDBCAbstractQueryCommand {
   
  @@ -32,44 +27,37 @@
         super(manager, q);
   
         JDBCQlQueryMetaData metadata = (JDBCQlQueryMetaData)q;
  -      getLog().debug("EQL-QL: "+metadata.getEjbQl());
  -      
  -      // get a parser
  -      Parser ejbql = new EJBQLParser().ejbqlQuery();
  -      
  -      // initialize the assembly
  -      Assembly a = new Assembly(metadata.getEjbQl());
  -      a.setTarget(new SQLTarget(
  -            q.getMethod(),
  -            manager.getJDBCTypeFactory(),
  -            manager.getContainer().getEjbModule(),
  -            q.getReadAhead()));
  -      
  -      // match the query
  -      a = ejbql.soleMatch(a);
  -      if(a == null) {
  -         throw new DeploymentException("Unable to parse EJB-QL: " +
  -               metadata.getEjbQl());
  +      if(getLog().isDebugEnabled()) {
  +         getLog().debug("EJB-QL: " + metadata.getEjbQl());
         }
         
  -      // get the final target
  -      SQLTarget target = (SQLTarget)a.getTarget();
  +      JDBCEJBQLCompiler compiler = new JDBCEJBQLCompiler(
  +            (Catalog)manager.getApplicationData("CATALOG"));
  +
  +      try {
  +         compiler.compileEJBQL(
  +               metadata.getEjbQl(),
  +               metadata.getMethod().getReturnType(),
  +               metadata.getMethod().getParameterTypes(),
  +               metadata.getReadAhead());
  +      } catch(Throwable t) {
  +         throw new DeploymentException("Error compiling ejbql", t);
  +      }
         
         // set the sql
  -      setSQL(target.toSQL());
  +      if(getLog().isDebugEnabled()) {
  +         getLog().debug("SQL:\r\n" + compiler.getSQL());
  +      }
  +      setSQL(compiler.getSQL());
         
  -      // select bridge object
  -      Object selectBridgeObject = target.getSelectObject();
  -      if(selectBridgeObject instanceof JDBCEntityBridge) {
  -         setSelectEntity((JDBCEntityBridge)selectBridgeObject);
  -      } else if(selectBridgeObject instanceof JDBCCMPFieldBridge) {
  -         setSelectField((JDBCCMPFieldBridge)selectBridgeObject);
  +      // set select object
  +      if(compiler.isSelectEntity()) {
  +         setSelectEntity(compiler.getSelectEntity());
         } else {
  -         throw new IllegalStateException("Select bridge object is instance " +
  -               "of unknown type: selectBridgeObject=" + selectBridgeObject);
  +         setSelectField(compiler.getSelectField());
         }
  -      
  +
         // get the parameter order
  -      setParameterList(target.getInputParameters());
  +      setParameterList(compiler.getInputParameters());
      }
   }
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to