[jboss-svn-commits] JBL Code SVN: r26901 - in labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools: xml and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jun 10 07:59:36 EDT 2009


Author: dsotty
Date: 2009-06-10 07:59:35 -0400 (Wed, 10 Jun 2009)
New Revision: 26901

Modified:
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/AndDescr.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/DescrFactory.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/EqvDescr.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/OrDescr.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/XorDescr.java
   labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/xml/RuleMLDumper.java
Log:


Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/AndDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/AndDescr.java	2009-06-10 11:59:23 UTC (rev 26900)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/AndDescr.java	2009-06-10 11:59:35 UTC (rev 26901)
@@ -31,20 +31,36 @@
     public AndDescr() {
     }
 
-    public void addDescr(final BaseDescr baseDescr) {
-        this.descrs.add( baseDescr );
-    }
     
     public void addDescrFirst(final BaseDescr baseDescr) {
         this.descrs.add( 0 , baseDescr );
     }
 
+    public void addDescr(final BaseDescr baseDescr) {
+        this.descrs.add( baseDescr );
+        if( baseDescr instanceof FieldBindingDescr ) {
+            FieldBindingDescr fbd = (FieldBindingDescr) baseDescr;
+            if( fbd.getFieldConstraint() != null ) {
+                this.descrs.add( fbd.getFieldConstraint() );
+                fbd.setFieldConstraint( null );
+            }
+        }
+    }
+
     public void insertDescr(int index,
                             final BaseDescr baseDescr) {
+        if( baseDescr instanceof FieldBindingDescr ) {
+            FieldBindingDescr fbd = (FieldBindingDescr) baseDescr;
+            if( fbd.getFieldConstraint() != null ) {
+                this.descrs.add(index, fbd.getFieldConstraint() );
+                fbd.setFieldConstraint( null );
+            }
+        }
         this.descrs.add( index,
                          baseDescr );
     }
 
+
     public void insertBeforeLast(final Class clazz,
                              final BaseDescr baseDescr) {
         if ( this.descrs.isEmpty() ) {
@@ -69,7 +85,10 @@
 
     public void addOrMerge(final BaseDescr baseDescr) {
         if ( baseDescr instanceof AndDescr && ! overrides(this,baseDescr) ) {
-            this.descrs.addAll( ((AndDescr) baseDescr).getDescrs() );
+        	for( BaseDescr descr : (List<BaseDescr>)((AndDescr) baseDescr).getDescrs() ) {
+                addDescr( descr );
+            }
+        	//this.descrs.addAll( ((AndDescr) baseDescr).getDescrs() );
         } else {
             addDescr( baseDescr );
         }

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/DescrFactory.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/DescrFactory.java	2009-06-10 11:59:23 UTC (rev 26900)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/DescrFactory.java	2009-06-10 11:59:35 UTC (rev 26901)
@@ -1091,32 +1091,43 @@
 		pattern.setEndCharacter(dataType.getEndCharacter());
 		pattern.setObjectType(dataType.getText());
 
+//		if (null != exprList && exprList.size() > 0) {
+//			
+//			if (exprList.size() == 1) {
+//				if (exprList.get(0) instanceof FieldBindingDescr
+//						&& ((FieldBindingDescr) exprList.get(0))
+//								.getFieldConstraint().getRestriction()
+//								.getRestrictions().size() > 0) {
+//					pattern.getConstraint().addDescr(exprList.get(0));
+//					pattern.getConstraint().addDescr(
+//							((FieldBindingDescr) exprList.get(0))
+//									.getFieldConstraint());
+//				} else {
+//					pattern.getConstraint().addOrMerge(exprList.get(0));
+//				}
+//			} else {
+//				for (BaseDescr constraint : exprList) {
+//					pattern.getConstraint().addDescr(constraint);
+//					if (constraint instanceof FieldBindingDescr
+//							&& ((FieldBindingDescr) constraint)
+//									.getFieldConstraint().getRestriction()
+//									.getRestrictions().size() > 0) {
+//						pattern.getConstraint().addDescr(
+//								((FieldBindingDescr) constraint)
+//										.getFieldConstraint());
+//					}
+//				}
+//			}
+			
 		if (null != exprList && exprList.size() > 0) {
 			if (exprList.size() == 1) {
-				if (exprList.get(0) instanceof FieldBindingDescr
-						&& ((FieldBindingDescr) exprList.get(0))
-								.getFieldConstraint().getRestriction()
-								.getRestrictions().size() > 0) {
-					pattern.getConstraint().addDescr(exprList.get(0));
-					pattern.getConstraint().addDescr(
-							((FieldBindingDescr) exprList.get(0))
-									.getFieldConstraint());
-				} else {
-					pattern.getConstraint().addOrMerge(exprList.get(0));
-				}
+                pattern.getConstraint().addOrMerge(exprList.get(0));
 			} else {
 				for (BaseDescr constraint : exprList) {
 					pattern.getConstraint().addDescr(constraint);
-					if (constraint instanceof FieldBindingDescr
-							&& ((FieldBindingDescr) constraint)
-									.getFieldConstraint().getRestriction()
-									.getRestrictions().size() > 0) {
-						pattern.getConstraint().addDescr(
-								((FieldBindingDescr) constraint)
-										.getFieldConstraint());
-					}
 				}
 			}
+									
 			pattern.setEndCharacter(exprList.get(exprList.size() - 1)
 					.getEndCharacter());
 		}
@@ -1210,7 +1221,12 @@
 	 */
 	public FieldConstraintDescr setupFieldConstraint(
 			FieldConstraintDescr field, BaseDescr descr) {
-		return setupFieldConstraint(field, descr, new ArrayList<AttributeDescr>());
+		//return setupFieldConstraint(field, descr, new ArrayList<AttributeDescr>());
+		if (null != descr && descr instanceof RestrictionDescr) {
+			field.getRestriction().addOrMerge((RestrictionDescr) descr);
+		}
+		return field;
+
 	}
 	
 	public FieldConstraintDescr setupFieldConstraint(

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/EqvDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/EqvDescr.java	2009-06-10 11:59:23 UTC (rev 26900)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/EqvDescr.java	2009-06-10 11:59:35 UTC (rev 26901)
@@ -34,26 +34,38 @@
     }
 
     public void addDescr(final BaseDescr baseDescr) {
-    	if (this.descrs.size() >= 2)
-        	throw new RuntimeDroolsException("Eqv is Binary");
-    	
         this.descrs.add( baseDescr );
+        if( baseDescr instanceof FieldBindingDescr ) {
+            FieldBindingDescr fbd = (FieldBindingDescr) baseDescr;
+            if( fbd.getFieldConstraint() != null ) {
+                this.descrs.add( fbd.getFieldConstraint() );
+                fbd.setFieldConstraint( null );
+            }
+        }
     }
-    
-    public void addDescrFirst(final BaseDescr baseDescr) {
-    	if (this.descrs.size() >= 2)
-        	throw new RuntimeDroolsException("Eqv is Binary");
-    	
-        this.descrs.add( 0 , baseDescr );
-    }
 
-        
     public void insertDescr(int index,
                             final BaseDescr baseDescr) {
+        if( baseDescr instanceof FieldBindingDescr ) {
+            FieldBindingDescr fbd = (FieldBindingDescr) baseDescr;
+            if( fbd.getFieldConstraint() != null ) {
+                this.descrs.add(index, fbd.getFieldConstraint() );
+                fbd.setFieldConstraint( null );
+            }
+        }
         this.descrs.add( index,
                          baseDescr );
     }
 
+    
+    public void addDescrFirst(final BaseDescr baseDescr) {
+//    	if (this.descrs.size() >= 2)
+//        	throw new RuntimeDroolsException("Eqv is Binary");
+    	
+        this.descrs.add( 0 , baseDescr );
+    }
+
+      
     public void insertBeforeLast(final Class clazz,
                              final BaseDescr baseDescr) {
         if ( this.descrs.isEmpty() ) {
@@ -77,8 +89,11 @@
     }
 
     public void addOrMerge(final BaseDescr baseDescr) {
-        if ( baseDescr instanceof EqvDescr ) {
-            this.descrs.addAll( ((EqvDescr) baseDescr).getDescrs() );
+        if ( baseDescr instanceof EqvDescr && ! overrides(this,baseDescr)) {
+        	for( BaseDescr descr : (List<BaseDescr>)((EqvDescr) baseDescr).getDescrs() ) {
+                addDescr( descr );
+            }
+            //this.descrs.addAll( ((EqvDescr) baseDescr).getDescrs() );
         } else {
             addDescr( baseDescr );
         }

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/OrDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/OrDescr.java	2009-06-10 11:59:23 UTC (rev 26900)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/OrDescr.java	2009-06-10 11:59:35 UTC (rev 26901)
@@ -47,30 +47,54 @@
         addDescr( baseDescr );
     }
     
-    public void insertDescr(int index, final BaseDescr baseDescr) {
-        this.descrs.add( index, baseDescr );
-    }    
+       
 
     public void addDescr(final BaseDescr baseDescr) {
         this.descrs.add( baseDescr );
+        if( baseDescr instanceof FieldBindingDescr ) {
+            FieldBindingDescr fbd = (FieldBindingDescr) baseDescr;
+            if( fbd.getFieldConstraint() != null ) {
+                this.descrs.add( fbd.getFieldConstraint() );
+                fbd.setFieldConstraint( null );
+            }
+        }
     }
 
-    
-    public void addDescrFirst(final BaseDescr baseDescr) {    	    
-        this.descrs.add( 0 , baseDescr );
+    public void insertDescr(int index,
+                            final BaseDescr baseDescr) {
+        if( baseDescr instanceof FieldBindingDescr ) {
+            FieldBindingDescr fbd = (FieldBindingDescr) baseDescr;
+            if( fbd.getFieldConstraint() != null ) {
+                this.descrs.add(index, fbd.getFieldConstraint() );
+                fbd.setFieldConstraint( null );
+            }
+        }
+        this.descrs.add( index,
+                         baseDescr );
     }
 
+
     public List getDescrs() {
         return this.descrs;
     }
 
     public void addOrMerge(final BaseDescr baseDescr) {
         if( baseDescr instanceof OrDescr && ! overrides(this,baseDescr)) {
-            this.descrs.addAll( ((OrDescr)baseDescr).getDescrs() );
+           // this.descrs.addAll( ((OrDescr)baseDescr).getDescrs() );
+        	for( BaseDescr descr : (List<BaseDescr>)((OrDescr) baseDescr).getDescrs() ) {
+                addDescr( descr );
+            }
         } else {
             this.descrs.add( baseDescr );
         }
     }
+
+	public void addDescrFirst(BaseDescr baseDescr) {
+		// TODO Auto-generated method stub
+		
+	}
+
+
     
     
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/XorDescr.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/XorDescr.java	2009-06-10 11:59:23 UTC (rev 26900)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/lang/descr/XorDescr.java	2009-06-10 11:59:35 UTC (rev 26901)
@@ -34,26 +34,39 @@
     }
 
     public void addDescr(final BaseDescr baseDescr) {
-    	if (this.descrs.size() >= 2)
-        	throw new RuntimeDroolsException("Xor is Binary");
-    	
         this.descrs.add( baseDescr );
+        if( baseDescr instanceof FieldBindingDescr ) {
+            FieldBindingDescr fbd = (FieldBindingDescr) baseDescr;
+            if( fbd.getFieldConstraint() != null ) {
+                this.descrs.add( fbd.getFieldConstraint() );
+                fbd.setFieldConstraint( null );
+            }
+        }
     }
-    
 
-    public void addDescrFirst(final BaseDescr baseDescr) {
-        if (this.descrs.size() >= 2)
-        	throw new RuntimeDroolsException("Xor is Binary");
-        
-        this.descrs.add( 0 , baseDescr );
-    }
-
     public void insertDescr(int index,
                             final BaseDescr baseDescr) {
+        if( baseDescr instanceof FieldBindingDescr ) {
+            FieldBindingDescr fbd = (FieldBindingDescr) baseDescr;
+            if( fbd.getFieldConstraint() != null ) {
+                this.descrs.add(index, fbd.getFieldConstraint() );
+                fbd.setFieldConstraint( null );
+            }
+        }
         this.descrs.add( index,
                          baseDescr );
     }
 
+   
+
+    public void addDescrFirst(final BaseDescr baseDescr) {
+//        if (this.descrs.size() >= 2)
+//        	throw new RuntimeDroolsException("Xor is Binary");
+        
+        this.descrs.add( 0 , baseDescr );
+    }
+
+   
     public void insertBeforeLast(final Class clazz,
                              final BaseDescr baseDescr) {
         if ( this.descrs.isEmpty() ) {
@@ -77,8 +90,11 @@
     }
 
     public void addOrMerge(final BaseDescr baseDescr) {
-        if ( baseDescr instanceof XorDescr ) {
-            this.descrs.addAll( ((XorDescr) baseDescr).getDescrs() );
+        if ( baseDescr instanceof XorDescr && ! overrides(this,baseDescr)) {
+//        	this.descrs.addAll( ((XorDescr) baseDescr).getDescrs() );
+        	for( BaseDescr descr : (List<BaseDescr>)((XorDescr) baseDescr).getDescrs() ) {
+                addDescr( descr );
+            }            
         } else {
             addDescr( baseDescr );
         }

Modified: labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/xml/RuleMLDumper.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/xml/RuleMLDumper.java	2009-06-10 11:59:23 UTC (rev 26900)
+++ labs/jbossrules/branches/DroolsChance/drools-compiler/src/main/java/org/drools/xml/RuleMLDumper.java	2009-06-10 11:59:35 UTC (rev 26901)
@@ -428,44 +428,44 @@
 
 	public void visitFieldBindingDescr(final FieldBindingDescr descr) {
 
-		String varName = context.currentObjectVariable + "."
-				+ descr.getIdentifier();
+//		String varName = context.currentObjectVariable + "."
+//				+ descr.getIdentifier();
+//
+//		context.setCurrentField(descr.getFieldConstraint().getFieldName());
+//		context.trySetCurrentFieldVariable(varName);
+//
+//		// bypass the fieldConstraint
+//		List<? extends BaseDescr> list = checkListType(descr
+//				.getFieldConstraint().getRestrictions());
+//			
+////			for (BaseDescr d : list) {
+////				inheritDecorations(d,descr);
+////			}
+//		
+//		if (list.size() > 0) {
+//			visitChildren(context.getCurrentElement(), list);
+//		} else {
+//			// Unconstrained field binding		Object( $var : field )
+//			Element atom = dox.createElement("Atom");
+//				decorateWithAttribs(atom,descr);
+//			Element rel = dox.createElement("Rel");
+//			attachAsOp(atom, rel);
+//
+//			Element slot = dox.createElement("slot");
+//			Element field = dox.createElement("Ind");
+//				field.setAttribute("type",context.getCurrentFieldType());
+//			field.setTextContent(context.getCurrentField());
+//			slot.appendChild(field);
+//
+//			Element value = dox.createElement("Var");
+//			value.setTextContent(context.getCurrentFieldVariable());
+//			slot.appendChild(value);
+//
+//			atom.appendChild(slot);
+//
+//			context.getCurrentElement().appendChild(atom);
+//		}
 
-		context.setCurrentField(descr.getFieldConstraint().getFieldName());
-		context.trySetCurrentFieldVariable(varName);
-
-		// bypass the fieldConstraint
-		List<? extends BaseDescr> list = checkListType(descr
-				.getFieldConstraint().getRestrictions());
-			
-//			for (BaseDescr d : list) {
-//				inheritDecorations(d,descr);
-//			}
-		
-		if (list.size() > 0) {
-			visitChildren(context.getCurrentElement(), list);
-		} else {
-			// Unconstrained field binding		Object( $var : field )
-			Element atom = dox.createElement("Atom");
-				decorateWithAttribs(atom,descr);
-			Element rel = dox.createElement("Rel");
-			attachAsOp(atom, rel);
-
-			Element slot = dox.createElement("slot");
-			Element field = dox.createElement("Ind");
-				field.setAttribute("type",context.getCurrentFieldType());
-			field.setTextContent(context.getCurrentField());
-			slot.appendChild(field);
-
-			Element value = dox.createElement("Var");
-			value.setTextContent(context.getCurrentFieldVariable());
-			slot.appendChild(value);
-
-			atom.appendChild(slot);
-
-			context.getCurrentElement().appendChild(atom);
-		}
-
 	}
 
 	private BaseDescr inheritDecorations(BaseDescr target, BaseDescr source) {




More information about the jboss-svn-commits mailing list