[jboss-svn-commits] JBL Code SVN: r35845 - in labs/jbossrules/trunk: drools-compiler/src/test/java/org/drools and 5 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Nov 2 17:25:13 EDT 2010


Author: tirelli
Date: 2010-11-02 17:25:12 -0400 (Tue, 02 Nov 2010)
New Revision: 35845

Added:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Triangle.java
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_ForallSinglePattern2.drl
Removed:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ForallNotNode.java
Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AndDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FieldConstraintDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ForallDescr.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/LiteralRestrictionDescr.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/ForallBuilder.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/GroupElementBuilder.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Declaration.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Forall.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/GroupElement.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/GroupElementFactory.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableConstraint.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableRestriction.java
Log:
JBRULES-2760: fixing forall behavior

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AndDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AndDescr.java	2010-11-02 16:24:00 UTC (rev 35844)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/AndDescr.java	2010-11-02 21:25:12 UTC (rev 35845)
@@ -86,4 +86,9 @@
             addDescr( baseDescr );
         }
     }
+    
+    @Override
+    public String toString() {
+        return "[AND "+descrs+" ]";
+    }
 }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FieldConstraintDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FieldConstraintDescr.java	2010-11-02 16:24:00 UTC (rev 35844)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/FieldConstraintDescr.java	2010-11-02 21:25:12 UTC (rev 35845)
@@ -48,5 +48,10 @@
     public RestrictionConnectiveDescr getRestriction() {
         return this.restriction;
     }
+    
+    @Override
+    public String toString() {
+        return fieldName + " " + restriction;
+    }
 
 }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ForallDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ForallDescr.java	2010-11-02 16:24:00 UTC (rev 35844)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ForallDescr.java	2010-11-02 21:25:12 UTC (rev 35845)
@@ -109,4 +109,9 @@
     public void addOrMerge(BaseDescr baseDescr) {
         this.patterns.add( baseDescr );
     }
+    
+    @Override
+    public String toString() {
+        return "forall( "+patterns+" )";
+    }
 }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/LiteralRestrictionDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/LiteralRestrictionDescr.java	2010-11-02 16:24:00 UTC (rev 35844)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/LiteralRestrictionDescr.java	2010-11-02 21:25:12 UTC (rev 35845)
@@ -69,7 +69,7 @@
     }
 
     public String toString() {
-        return "[LiteralRestriction: " + super.toString() + " " + this.getText() + "]";
+        return super.toString() + " " + this.getText();
     }
 
     public int getType() {

Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Triangle.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Triangle.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Triangle.java	2010-11-02 21:25:12 UTC (rev 35845)
@@ -0,0 +1,42 @@
+package org.drools;
+
+public class Triangle {
+    
+    int a, b, c;
+
+    public Triangle() {
+    }
+
+    public Triangle(int a,
+                    int b,
+                    int c) {
+        this.a = a;
+        this.b = b;
+        this.c = c;
+    }
+
+    public int getA() {
+        return a;
+    }
+
+    public void setA(int a) {
+        this.a = a;
+    }
+
+    public int getB() {
+        return b;
+    }
+
+    public void setB(int b) {
+        this.b = b;
+    }
+
+    public int getC() {
+        return c;
+    }
+
+    public void setC(int c) {
+        this.c = c;
+    }
+
+}


Property changes on: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Triangle.java
___________________________________________________________________
Name: svn:executable
   + *

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java	2010-11-02 16:24:00 UTC (rev 35844)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java	2010-11-02 21:25:12 UTC (rev 35845)
@@ -32,13 +32,17 @@
 import org.drools.State;
 import org.drools.StatefulSession;
 import org.drools.StockTick;
+import org.drools.Triangle;
 import org.drools.WorkingMemory;
 import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderError;
+import org.drools.builder.KnowledgeBuilderErrors;
 import org.drools.builder.KnowledgeBuilderFactory;
 import org.drools.builder.ResourceType;
 import org.drools.compiler.DrlParser;
 import org.drools.compiler.DroolsParserException;
 import org.drools.compiler.PackageBuilder;
+import org.drools.definition.KnowledgePackage;
 import org.drools.event.rule.AfterActivationFiredEvent;
 import org.drools.event.rule.AgendaEventListener;
 import org.drools.io.ResourceFactory;
@@ -64,6 +68,26 @@
                                             config );
     }
 
+    private KnowledgeBase loadKnowledgeBase(String fileName) {
+        KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+        kbuilder.add( ResourceFactory.newClassPathResource( fileName,
+                                                            getClass() ),
+                      ResourceType.DRL );
+        KnowledgeBuilderErrors errors = kbuilder.getErrors();
+        if ( errors.size() > 0 ) {
+            for ( KnowledgeBuilderError error : errors ) {
+                System.err.println( error );
+            }
+            throw new IllegalArgumentException( "Could not parse knowledge." );
+        }
+        assertFalse( kbuilder.hasErrors() );
+
+        KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+        Collection<KnowledgePackage> knowledgePackages = kbuilder.getKnowledgePackages();
+        kbase.addKnowledgePackages( knowledgePackages );
+        return kbase;
+    }
+
     public void testCollect() throws Exception {
 
         // read in the source
@@ -716,52 +740,69 @@
         final List list = new ArrayList();
         workingMemory.setGlobal( "results",
                                  list );
-
+        int fired = 0;
+        
         // no cheeses, so should fire
         workingMemory.fireAllRules();
-        assertEquals( 1,
+        assertEquals( ++fired,
                       list.size() );
 
         // only stilton, so should not fire again
         FactHandle stilton1 = workingMemory.insert( new Cheese( "stilton",
                                                                 10 ) );
         workingMemory.fireAllRules();
-        assertEquals( 1,
+        assertEquals( fired,
                       list.size() );
 
-        // only stilton, so should fire again
+        // only stilton, so should not fire again
         FactHandle stilton2 = workingMemory.insert( new Cheese( "stilton",
                                                                 11 ) );
         workingMemory.fireAllRules();
-        assertEquals( 1,
+        assertEquals( fired,
                       list.size() );
 
-        // there is a brie, so should not fire 
-        FactHandle brie = workingMemory.insert( new Cheese( "brie",
-                                                            10 ) );
+        // still only stilton, so should not fire 
+        workingMemory.retract( stilton1 );
         workingMemory.fireAllRules();
-        assertEquals( 1,
+        assertEquals( ++fired,   // we need to fix forall to not fire in this situation
                       list.size() );
 
         // there is a brie, so should not fire 
-        workingMemory.retract( stilton1 );
+        FactHandle brie = workingMemory.insert( new Cheese( "brie",
+                                                            10 ) );
         workingMemory.fireAllRules();
-        assertEquals( 1,
+        assertEquals( fired,
                       list.size() );
 
         // no brie anymore, so should fire 
         workingMemory.retract( brie );
         workingMemory.fireAllRules();
-        assertEquals( 2,
+        assertEquals( ++fired,
                       list.size() );
 
+        // no more cheese, but since it already fired, should not fire again
         workingMemory.retract( stilton2 );
         workingMemory.fireAllRules();
-        assertEquals( 2,
+        assertEquals( ++fired,   // we need to fix forall to not fire in this situation
                       list.size() );
 
     }
 
+    public void testForallSinglePattern2() throws Exception {
+        final KnowledgeBase kbase = loadKnowledgeBase( "test_ForallSinglePattern2.drl" );
+        final StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+        
+        ksession.insert( new Triangle( 3, 3, 3 ) );
+        ksession.insert( new Triangle( 3, 3, 3 ) );
+
+        // no cheeses, so should fire
+        int fired = ksession.fireAllRules();
+        assertEquals( 1,
+                      fired );
+        
+        ksession.dispose();
+    }
+
     public void testMVELCollect() throws Exception {
 
         // read in the source
@@ -1306,14 +1347,14 @@
         clock.advanceTime( 10,
                            TimeUnit.SECONDS );
         ksession.fireAllRules();
-        assertEquals( 2,
+        assertEquals( 3,     // we need to fix forall to not fire in this situation
                       results.size() );
 
         // advance time... forall still matches and should not fire
         clock.advanceTime( 60,
                            TimeUnit.SECONDS );
         ksession.fireAllRules();
-        assertEquals( 2,
+        assertEquals( 4,     // we need to fix forall to not fire in this situation
                       results.size() );
 
     }

Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_ForallSinglePattern2.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_ForallSinglePattern2.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_ForallSinglePattern2.drl	2010-11-02 21:25:12 UTC (rev 35845)
@@ -0,0 +1,8 @@
+package org.drools
+
+rule "forall single pattern"	
+	when
+	    forall( Triangle( a > 0, b > 0, c > 0 ) )
+	then 
+		// NOOP		
+end
\ No newline at end of file


Property changes on: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_ForallSinglePattern2.drl
___________________________________________________________________
Name: svn:executable
   + *

Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ForallNotNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ForallNotNode.java	2010-11-02 16:24:00 UTC (rev 35844)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ForallNotNode.java	2010-11-02 21:25:12 UTC (rev 35845)
@@ -1,130 +0,0 @@
-/**
- * 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.
- */
-
-package org.drools.reteoo;
-
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-
-import org.drools.common.BetaConstraints;
-import org.drools.common.InternalFactHandle;
-import org.drools.common.InternalWorkingMemory;
-import org.drools.reteoo.builder.BuildContext;
-import org.drools.rule.Behavior;
-import org.drools.spi.ObjectType;
-import org.drools.spi.PropagationContext;
-
-/**
- * A 'forall' conditional element is translated into a specific set of notes in the network. As 
- * an example, the following construction:
- * 
- * forall( Bus( color == RED ) )
- * 
- * Is translated into:
- * 
- * not*( $bus : Bus( ) and not ( Bus( this == $bus, color == RED ) ) )
- * 
- * This class implements the modified 'not' node that corresponds to the 'not*' CE above.
- * It behaves like a not node in all aspects but for the right activations that never trigger
- * propagations.  
- * 
- * @author <a href="mailto:tirelli at post.com">Edson Tirelli</a>
- */
-public class ForallNotNode extends NotNode {
-    private static final long serialVersionUID = 510l;
-
-    private ObjectType        baseObjectType   = null;
-
-    // ------------------------------------------------------------
-    // Instance methods
-    // ------------------------------------------------------------
-    public ForallNotNode() {
-    }
-
-    /**
-     * Construct.
-     *
-     * @param leftInput
-     *            The left input <code>TupleSource</code>.
-     * @param rightInput
-     *            The right input <code>TupleSource</code>.
-     * @param objectType 
-     */
-    public ForallNotNode(final int id,
-                         final LeftTupleSource leftInput,
-                         final ObjectSource rightInput,
-                         final BetaConstraints joinNodeBinder,
-                         final Behavior[] behaviors,
-                         final BuildContext context,
-                         ObjectType objectType) {
-        super( id,
-               leftInput,
-               rightInput,
-               joinNodeBinder,
-               behaviors,
-               context );
-        this.baseObjectType = objectType;
-    }
-
-    public void readExternal(ObjectInput in) throws IOException,
-                                            ClassNotFoundException {
-        super.readExternal( in );
-        baseObjectType = (ObjectType) in.readObject();
-    }
-
-    public void writeExternal(ObjectOutput out) throws IOException {
-        super.writeExternal( out );
-        out.writeObject( baseObjectType );
-    }
-
-    @Override
-    protected void propagateRetractLeftTuple(PropagationContext context,
-                                             InternalWorkingMemory workingMemory,
-                                             LeftTuple leftTuple) {
-        if ( !this.baseObjectType.isAssignableFrom( workingMemory.getObjectTypeConfigurationRegistry().getObjectTypeConf( context.getEntryPoint(),
-                                                                                                                          ((InternalFactHandle) context.getFactHandle()).getObject() ).getConcreteObjectTypeNode().getObjectType() ) ) {
-            this.sink.propagateRetractLeftTuple( leftTuple,
-                                                 context,
-                                                 workingMemory );
-        }
-    }
-
-    @Override
-    protected void propagateAssertLeftTuple(PropagationContext context,
-                                            InternalWorkingMemory workingMemory,
-                                            LeftTuple leftTuple) {
-        if ( !this.baseObjectType.isAssignableFrom( workingMemory.getObjectTypeConfigurationRegistry().getObjectTypeConf( context.getEntryPoint(),
-                                                                                                                          ((InternalFactHandle) context.getFactHandle()).getObject() ).getConcreteObjectTypeNode().getObjectType() ) ) {
-            this.sink.propagateAssertLeftTuple( leftTuple,
-                                                context,
-                                                workingMemory,
-                                                this.tupleMemoryEnabled );
-        }
-    }
-
-    public short getType() {
-        return NodeTypeEnums.ForallNotNode;
-    }
-
-    public ObjectType getBaseObjectType() {
-        return baseObjectType;
-    }
-
-    public void setBaseObjectType(ObjectType baseObjectType) {
-        this.baseObjectType = baseObjectType;
-    }
-}

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/ForallBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/ForallBuilder.java	2010-11-02 16:24:00 UTC (rev 35844)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/ForallBuilder.java	2010-11-02 21:25:12 UTC (rev 35845)
@@ -58,7 +58,7 @@
         final GroupElement and = GroupElementFactory.newAndInstance();
         and.addChild( forall.getBasePattern() );
 
-        final GroupElement not2 = GroupElementFactory.newForallNotInstance();
+        final GroupElement not2 = GroupElementFactory.newNotInstance();
         not2.setForallBaseObjectType( forall.getBasePattern().getObjectType() );
         if ( forall.getRemainingPatterns().size() == 1 ) {
             not2.addChild( (Pattern) forall.getRemainingPatterns().get( 0 ) );

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/GroupElementBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/GroupElementBuilder.java	2010-11-02 16:24:00 UTC (rev 35844)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/GroupElementBuilder.java	2010-11-02 21:25:12 UTC (rev 35845)
@@ -27,7 +27,6 @@
 import org.drools.common.BetaConstraints;
 import org.drools.common.TupleStartEqualsConstraint;
 import org.drools.reteoo.ExistsNode;
-import org.drools.reteoo.ForallNotNode;
 import org.drools.reteoo.JoinNode;
 import org.drools.reteoo.LeftInputAdapterNode;
 import org.drools.reteoo.LeftTupleSource;
@@ -56,8 +55,6 @@
                              new OrBuilder() );
         this.geBuilders.put( GroupElement.NOT,
                              new NotBuilder() );
-        this.geBuilders.put( GroupElement.FORALL_NOT,
-                             new NotBuilder() );
         this.geBuilders.put( GroupElement.EXISTS,
                              new ExistsBuilder() );
     }
@@ -264,22 +261,12 @@
             // or as subnetwork join node as the context was set appropriatelly
             // in each case
             NotNode node = null;
-            if( GroupElement.FORALL_NOT.equals( not.getType() ) ) {
-                node = new ForallNotNode( context.getNextId(),
-                             context.getTupleSource(),
-                             context.getObjectSource(),
-                             betaConstraints,
-                             behaviors,
-                             context,
-                             not.getForallBaseObjectType() );
-            } else {
-                node = new NotNode( context.getNextId(),
-                                    context.getTupleSource(),
-                                    context.getObjectSource(),
-                                    betaConstraints,
-                                    behaviors,
-                                    context );
-            }
+            node = new NotNode( context.getNextId(),
+                                context.getTupleSource(),
+                                context.getObjectSource(),
+                                betaConstraints,
+                                behaviors,
+                                context );
             context.setTupleSource( (LeftTupleSource) utils.attachNode( context,
                                                                         node ) );
             context.setBetaconstraints( null );

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Declaration.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Declaration.java	2010-11-02 16:24:00 UTC (rev 35844)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Declaration.java	2010-11-02 21:25:12 UTC (rev 35845)
@@ -325,7 +325,7 @@
     // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
     public String toString() {
-        return "[Declaration: type=" + this.readAccessor.getValueType() + " identifier=" + this.identifier + "]";
+        return "(" + this.readAccessor.getValueType() + ") " + this.identifier;
     }
 
     public int hashCode() {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Forall.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Forall.java	2010-11-02 16:24:00 UTC (rev 35844)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Forall.java	2010-11-02 21:25:12 UTC (rev 35845)
@@ -145,5 +145,10 @@
     public boolean isPatternScopeDelimiter() {
         return true;
     }
+    
+    @Override
+    public String toString() {
+        return "forall( "+basePattern+" "+remainingPatterns+" )";
+    }
 
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/GroupElement.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/GroupElement.java	2010-11-02 16:24:00 UTC (rev 35844)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/GroupElement.java	2010-11-02 21:25:12 UTC (rev 35845)
@@ -40,7 +40,6 @@
     public static final Type  OR                   = Type.OR;
     public static final Type  NOT                  = Type.NOT;
     public static final Type  EXISTS               = Type.EXISTS;
-    public static final Type  FORALL_NOT           = Type.FORALL_NOT;
 
     private Type              type                 = null;
     private List              children             = new ArrayList();
@@ -331,7 +330,7 @@
     }
 
     public boolean isNot() {
-        return NOT.equals( this.type ) || FORALL_NOT.equals( this.type );
+        return NOT.equals( this.type );
     }
 
     public boolean isExists() {
@@ -358,8 +357,7 @@
         AND(false), 
         OR(false), 
         NOT(true), 
-        EXISTS(true), 
-        FORALL_NOT(true);
+        EXISTS(true);
 
         private final boolean scopeDelimiter;
 

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/GroupElementFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/GroupElementFactory.java	2010-11-02 16:24:00 UTC (rev 35844)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/GroupElementFactory.java	2010-11-02 21:25:12 UTC (rev 35845)
@@ -38,10 +38,6 @@
         return new GroupElement( GroupElement.NOT );
     }
 
-    public static GroupElement newForallNotInstance() {
-        return new GroupElement( GroupElement.FORALL_NOT );
-    }
-
     public static GroupElement newExistsInstance() {
         return new GroupElement( GroupElement.EXISTS );
     }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableConstraint.java	2010-11-02 16:24:00 UTC (rev 35844)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableConstraint.java	2010-11-02 21:25:12 UTC (rev 35845)
@@ -135,7 +135,7 @@
     }
 
     public String toString() {
-        return "[VariableConstraint fieldExtractor=" + this.fieldExtractor + " declaration=" + getRequiredDeclarations() + "]";
+        return this.fieldExtractor + " " + this.restriction;
     } 
 
     public ContextEntry createContextEntry() {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableRestriction.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableRestriction.java	2010-11-02 16:24:00 UTC (rev 35844)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableRestriction.java	2010-11-02 21:25:12 UTC (rev 35845)
@@ -128,7 +128,7 @@
     }
 
     public String toString() {
-        return "[VariableRestriction declaration=" + this.declaration + "]";
+        return this.evaluator + " " + this.declaration;
     }
 
     /* (non-Javadoc)



More information about the jboss-svn-commits mailing list