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