[jboss-svn-commits] JBL Code SVN: r5197 - in labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools: lang/descr semantics/java

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jul 20 11:18:03 EDT 2006


Author: mark.proctor at jboss.com
Date: 2006-07-20 11:18:00 -0400 (Thu, 20 Jul 2006)
New Revision: 5197

Added:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/LiteralRestrictionDescr.java
Removed:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FieldConstraint.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/LiteralRestrictiveDescr.java
Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/RuleBuilder.java
Log:
JBRULES-333
-Added new Restriction paradigm, so each FieldConstraint can have multiple restrictions
-Compiler is currently broken, this is being committed so that Mic can fix the parser.

Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FieldConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FieldConstraint.java	2006-07-20 15:15:15 UTC (rev 5196)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FieldConstraint.java	2006-07-20 15:18:00 UTC (rev 5197)
@@ -1,51 +0,0 @@
-package org.drools.lang.descr;
-
-import java.util.List;
-
-/*
- * Copyright 2005 JBoss Inc
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * This represents a literal node in the rule language. This is
- * a constraint on a single field of a column. 
- * The "text" contains the content, which may also be an enumeration. 
- */
-public class FieldConstraint extends PatternDescr {
-    /**
-     * 
-     */
-    private static final long serialVersionUID = 320;
-    private String  fieldName;
-    private List    restrictions;
-
-    public FieldConstraint(final String fieldName) {
-        this.fieldName = fieldName;
-    }
-
-    public String getFieldName() {
-        return this.fieldName;
-    }
-    
-    public void addRestriction(RestrictionDescr restriction) {
-        this.restrictions.add( restriction );
-    }
-    
-    public List getRestrictions() {
-        return this.restrictions;
-    }
-
-    
-}
\ No newline at end of file

Copied: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/LiteralRestrictionDescr.java (from rev 5191, labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/LiteralRestrictiveDescr.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/LiteralRestrictiveDescr.java	2006-07-20 14:47:34 UTC (rev 5191)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/LiteralRestrictionDescr.java	2006-07-20 15:18:00 UTC (rev 5197)
@@ -0,0 +1,59 @@
+package org.drools.lang.descr;
+
+/*
+ * Copyright 2005 JBoss Inc
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * This represents a literal node in the rule language. This is
+ * a constraint on a single field of a column. 
+ * The "text" contains the content, which may also be an enumeration. 
+ */
+public class LiteralRestrictionDescr extends RestrictionDescr {
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 320;
+    private String  evaluator;
+    private String  text;
+    private boolean staticFieldValue;
+
+    public LiteralRestrictionDescr( final String evaluator,
+                        final String text) {
+        this( evaluator,
+              text,
+              false );
+    }
+
+    public LiteralRestrictionDescr(final String evaluator,
+                        final String text,
+                        final boolean staticFieldValue) {
+        this.text = text;
+        this.evaluator = evaluator;
+        this.staticFieldValue = staticFieldValue;
+    }
+
+    public boolean isStaticFieldValue() {
+        return this.staticFieldValue;
+    }
+
+    public String getEvaluator() {
+        return this.evaluator;
+    }
+
+    public String getText() {
+        return this.text;
+    }
+}
\ No newline at end of file

Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/LiteralRestrictiveDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/LiteralRestrictiveDescr.java	2006-07-20 15:15:15 UTC (rev 5196)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/LiteralRestrictiveDescr.java	2006-07-20 15:18:00 UTC (rev 5197)
@@ -1,59 +0,0 @@
-package org.drools.lang.descr;
-
-/*
- * Copyright 2005 JBoss Inc
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * This represents a literal node in the rule language. This is
- * a constraint on a single field of a column. 
- * The "text" contains the content, which may also be an enumeration. 
- */
-public class LiteralRestrictiveDescr extends RestrictionDescr {
-    /**
-     * 
-     */
-    private static final long serialVersionUID = 320;
-    private String  evaluator;
-    private String  text;
-    private boolean staticFieldValue;
-
-    public LiteralRestrictiveDescr( final String evaluator,
-                        final String text) {
-        this( evaluator,
-              text,
-              false );
-    }
-
-    public LiteralRestrictiveDescr(final String evaluator,
-                        final String text,
-                        final boolean staticFieldValue) {
-        this.text = text;
-        this.evaluator = evaluator;
-        this.staticFieldValue = staticFieldValue;
-    }
-
-    public boolean isStaticFieldValue() {
-        return this.staticFieldValue;
-    }
-
-    public String getEvaluator() {
-        return this.evaluator;
-    }
-
-    public String getText() {
-        return this.text;
-    }
-}
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/RuleBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/RuleBuilder.java	2006-07-20 15:15:15 UTC (rev 5196)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/RuleBuilder.java	2006-07-20 15:18:00 UTC (rev 5197)
@@ -38,6 +38,9 @@
 import org.drools.compiler.RuleError;
 import org.drools.lang.descr.AndDescr;
 import org.drools.lang.descr.AttributeDescr;
+import org.drools.lang.descr.FieldConstraintDescr;
+import org.drools.lang.descr.LiteralRestrictionDescr;
+import org.drools.lang.descr.ReturnValueRestrictionDescr;
 import org.drools.lang.descr.VariableDescr;
 import org.drools.lang.descr.ColumnDescr;
 import org.drools.lang.descr.ConditionalElementDescr;
@@ -52,6 +55,7 @@
 import org.drools.lang.descr.QueryDescr;
 import org.drools.lang.descr.ReturnValueDescr;
 import org.drools.lang.descr.RuleDescr;
+import org.drools.lang.descr.VariableRestrictionDescr;
 import org.drools.rule.And;
 import org.drools.rule.VariableConstraint;
 import org.drools.rule.Column;
@@ -427,6 +431,31 @@
     }
 
     private void build(final Column column,
+                       final FieldConstraintDescr fieldConstraintDescr) {
+        
+        for ( final Iterator it = fieldConstraintDescr.getRestrictions().iterator(); it.hasNext(); ) {
+            final Object object = it.next();
+            if ( object instanceof FieldBindingDescr ) {
+                build( fieldConstraintDescr,
+                       (FieldBindingDescr) object );
+            } else if ( object instanceof LiteralRestrictionDescr ) {
+                build( fieldConstraintDescr,
+                       (LiteralRestrictionDescr) object );
+            } else if ( object instanceof VariableRestrictionDescr ) {
+                build( fieldConstraintDescr,
+                       (VariableRestrictionDescr) object );
+            } else if ( object instanceof ReturnValueRestrictionDescr ) {
+                build( fieldConstraintDescr,
+                       (ReturnValueRestrictionDescr) object );
+            } //else if ( object instanceof PredicateDescr ) {
+//                build( column,
+//                       (PredicateDescr) object );
+//            }
+        }        
+        
+    }
+    
+    private void build(final Column column,
                        final FieldBindingDescr fieldBindingDescr) {
         Declaration declaration = (Declaration) this.declarations.get( fieldBindingDescr.getIdentifier() );
         if ( declaration != null ) {
@@ -459,8 +488,8 @@
         }
     }
 
-    private void build(final Column column,
-                       final VariableDescr variableDescr) {
+    private void build(final FieldConstraintDescr fieldConstraintDescr,
+                       final VariableRestrictionDescr variableRestrictionDescr) {
         if ( variableDescr.getIdentifier() == null || variableDescr.getIdentifier().equals( "" ) ) {
             this.errors.add( new RuleError( this.rule,
                                             variableDescr,
@@ -500,8 +529,8 @@
                                                            evaluator ) );
     }
 
-    private void build(final Column column,
-                       final LiteralDescr literalDescr) {
+    private void build(final FieldConstraintDescr fieldConstraintDescr,
+                       final LiteralRestrictionDescr literalRestrictionDescr) {
 
         final Class clazz = ((ClassObjectType) column.getObjectType()).getClassType();
 




More information about the jboss-svn-commits mailing list