[JBoss-dev] CVS update: jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc JDBCEJBQLQuery.java

2002-02-26 Thread Dain Sundstrom

  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  ChangesPath
  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 -  1.5
  +++ JDBCEJBQLQuery.java   26 Feb 2002 23:47:10 -  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



[JBoss-dev] CVS update: jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc JDBCEJBQLQuery.java

2002-01-29 Thread Dain Sundstrom

  User: dsundstrom
  Date: 02/01/29 19:23:03

  Modified:src/main/org/jboss/ejb/plugins/cmp/jdbc JDBCEJBQLQuery.java
  Log:
  Changed ejb-ql parser to throw an exception if it is unable to fully parse
  the ejb-ql.
  
  Revision  ChangesPath
  1.4   +5 -1  
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.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JDBCEJBQLQuery.java   2002/01/15 22:19:32 1.3
  +++ JDBCEJBQLQuery.java   2002/01/30 03:23:03 1.4
  @@ -21,7 +21,7 @@
* This class generates a query from EJB-QL.
*
* @author a href=mailto:[EMAIL PROTECTED];Dain Sundstrom/a
  - * @version $Revision: 1.3 $
  + * @version $Revision: 1.4 $
*/
   public class JDBCEJBQLQuery extends JDBCAbstractQueryCommand {
   
  @@ -47,6 +47,10 @@
 
 // match the query
 a = ejbql.soleMatch(a);
  +  if(a == null) {
  + throw new DeploymentException(Unable to parse EJB-QL:  +
  +   metadata.getEjbQl());
  +  }
 
 // get the final target
 SQLTarget target = (SQLTarget)a.getTarget();
  
  
  

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