[jboss-svn-commits] JBL Code SVN: r5457 - in labs/jbossrules/trunk/drools-core/src: main/java/org/drools/base main/java/org/drools/facttemplates main/java/org/drools/reteoo main/java/org/drools/rule main/java/org/drools/spi test/java/org/drools/facttemplates test/java/org/drools/reteoo

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Aug 3 20:23:01 EDT 2006


Author: mark.proctor at jboss.com
Date: 2006-08-03 20:22:52 -0400 (Thu, 03 Aug 2006)
New Revision: 5457

Added:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateFieldExtractor.java
Removed:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplatorFieldExtractor.java
Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassObjectType.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/Fact.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactImpl.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplate.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateImpl.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateObjectType.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FieldTemplateImpl.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ColumnExtractor.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/TestFactTemplate.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/TestFactTemplateFieldExtractor.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeTest.java
Log:
JBRULES-328 FactTemplates
-Rule/Package Builder now works FactTemplates

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassObjectType.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassObjectType.java	2006-08-04 00:22:41 UTC (rev 5456)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassObjectType.java	2006-08-04 00:22:52 UTC (rev 5457)
@@ -37,7 +37,7 @@
     /**
      * 
      */
-    private static final long serialVersionUID = -2527407693999309827L;
+    private static final long serialVersionUID = 320;
 
     /** Java object class. */
     protected Class           objectTypeClass;

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/Fact.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/Fact.java	2006-08-04 00:22:41 UTC (rev 5456)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/Fact.java	2006-08-04 00:22:52 UTC (rev 5457)
@@ -30,6 +30,12 @@
      * @return
      */
     Object getFieldValue(int index);
+    
+    Object getFieldValue(String name);
+    
+    void setFieldValue(String name, Object value);
+    
+    void setFieldValue(int index, Object value);
 
     /**
      * Return the unique ID for the fact

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactImpl.java	2006-08-04 00:22:41 UTC (rev 5456)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactImpl.java	2006-08-04 00:22:52 UTC (rev 5457)
@@ -77,6 +77,20 @@
         return this.values[ index ];
     }
     
+    public Object getFieldValue(String name){
+        return this.values[ this.factTemplate.getFieldTemplateIndex( name ) ];
+    }
+    
+    
+    
+    public void setFieldValue(String name, Object value) {
+        setFieldValue( this.factTemplate.getFieldTemplateIndex( name ),
+                       value );
+    }
+    
+    public void setFieldValue(int index, Object value) {
+        this.values[ index ] = value;
+    }
      
 
     /**
@@ -108,7 +122,6 @@
             int result = 1;
             result = PRIME * result + this.factTemplate.hashCode();
             result = PRIME * result + FactImpl.hashCode( this.values );
-            result = PRIME * result + (int) (this.id ^ (this.id >>> 32));
             hashCode = result;
             
         }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplate.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplate.java	2006-08-04 00:22:41 UTC (rev 5456)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplate.java	2006-08-04 00:22:52 UTC (rev 5457)
@@ -18,7 +18,9 @@
 
 import java.io.Serializable;
 
+import org.drools.rule.Package;
 
+
 /**
  * @author Peter Lin
  *
@@ -29,6 +31,9 @@
 public interface FactTemplate
     extends
     Serializable {
+    
+    Package getPackage();
+    
     /**
      * The name of the template may be the fully qualified
      * class name, or an alias.
@@ -68,4 +73,6 @@
      * @return
      */
     int getFieldTemplateIndex(String name);
+    
+    Fact createFact(long id);
 }

Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateFieldExtractor.java (from rev 5428, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplatorFieldExtractor.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplatorFieldExtractor.java	2006-08-03 09:46:02 UTC (rev 5428)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateFieldExtractor.java	2006-08-04 00:22:52 UTC (rev 5457)
@@ -0,0 +1,36 @@
+package org.drools.facttemplates;
+
+import org.drools.base.ValueType;
+import org.drools.spi.FieldExtractor;
+
+public class FactTemplateFieldExtractor
+    implements
+    FieldExtractor {
+
+    private static final long        serialVersionUID = 320;
+    private FactTemplate             factTemplate;
+    private int                      fieldIndex;
+
+    public FactTemplateFieldExtractor(final FactTemplate factTemplate,
+                                       final int fieldIndex) {
+        this.factTemplate = factTemplate;
+        this.fieldIndex = fieldIndex;
+    }
+    
+    
+    public ValueType getValueType() {
+        return this.factTemplate.getFieldTemplate( fieldIndex ).getValueType();
+    }
+
+    public Object getValue(Object object) {
+        return ((Fact) object).getFieldValue( this.fieldIndex );
+    }
+    
+    public int getIndex() {
+        return this.fieldIndex;
+    }
+    
+    public Class getExtractToClass() {
+        return Fact.class;//this.factTemplate.getFieldTemplate( fieldIndex ).getValueType().getClass();
+    }
+}

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateImpl.java	2006-08-04 00:22:41 UTC (rev 5456)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateImpl.java	2006-08-04 00:22:52 UTC (rev 5457)
@@ -16,10 +16,13 @@
  */
 package org.drools.facttemplates;
 
+import java.util.Arrays;
 import java.util.Iterator;
 import java.util.List;
 
+import org.drools.rule.Package;
 
+
 /**
  * @author Peter Lin
  * Deftemplate is equivalent to CLIPS deftemplate<br/>
@@ -38,20 +41,37 @@
  * undesirable.
  */
 public class FactTemplateImpl implements FactTemplate {
+    private static int hashCode(Object[] array) {
+        final int PRIME = 31;
+        if ( array == null ) return 0;
+        int result = 1;
+        for ( int index = 0; index < array.length; index++ ) {
+            result = PRIME * result + (array[index] == null ? 0 : array[index].hashCode());
+        }
+        return result;
+    }
+
     private FieldTemplate[] fields;
-    private String templateName = null;
+    private Package pkg;
+    private String name;    
 
-    public FactTemplateImpl(String name, FieldTemplate[] fields){
-        this.templateName = name;
+    public FactTemplateImpl(Package pkg, String name, FieldTemplate[] fields){
+        this.pkg = pkg;
+        this.name = name;
         this.fields = fields;
+        this.pkg.addFactTemplate( this );        
     }
+    
+    public Package getPackage() {
+        return this.pkg;
+    }
            
     /**
      * the template name is an alias for an object
      * @param name
      */
     public String getName(){
-        return this.templateName;
+        return this.name;
     }
 
     /**
@@ -124,7 +144,7 @@
      */
     public String toString(){
         StringBuffer buf = new StringBuffer();
-        buf.append("(" + this.templateName + " ");
+        buf.append("(" + this.name + " ");
 //        for (int idx=0; idx < this.slots.length; idx++){
 //            buf.append("(" + this.slots[idx].getName() + 
 //                    " (type " + ConversionUtils.getTypeName(
@@ -137,5 +157,32 @@
         buf.append(")");
         return buf.toString();
     }
+
+    public int hashCode() {
+        final int PRIME = 31;
+        int result = 1;
+        result = PRIME * result + FactTemplateImpl.hashCode( this.fields );
+        result = PRIME * result + this.name.hashCode();
+        result = PRIME * result + this.pkg.hashCode();
+        return result;
+    }
+
+    public boolean equals(Object object) {
+        if ( this == object ) {
+            return true;
+        }
+        
+        if ( object == null || getClass() != object.getClass() ) {
+            return false;
+        }
+        
+        final FactTemplateImpl other = (FactTemplateImpl) object;
+        if ( !Arrays.equals( this.fields,
+                             other.fields ) ) return false;
+        
+        return this.pkg.equals( other.pkg ) && this.name.equals( other.name );        
+    }
     
+    
+    
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateObjectType.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateObjectType.java	2006-08-04 00:22:41 UTC (rev 5456)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateObjectType.java	2006-08-04 00:22:52 UTC (rev 5457)
@@ -87,7 +87,11 @@
      *         object type, else <code>false</code>.
      */
     public boolean matches(final Object object) {
-        return this.factTemplate == object;
+        if ( object.getClass() == FactImpl.class ) {
+            return this.factTemplate.equals( ( (Fact) object ).getFactTemplate() );
+        } else {
+            return false;
+        }
     }
 
 
@@ -119,7 +123,7 @@
 
         FactTemplateObjectType other = ( FactTemplateObjectType ) object;
         
-        return this.factTemplate == other.factTemplate;
+        return this.factTemplate.equals( other.factTemplate );
     }
 
     public int hashCode() {

Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplatorFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplatorFieldExtractor.java	2006-08-04 00:22:41 UTC (rev 5456)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplatorFieldExtractor.java	2006-08-04 00:22:52 UTC (rev 5457)
@@ -1,36 +0,0 @@
-package org.drools.facttemplates;
-
-import org.drools.base.ValueType;
-import org.drools.spi.FieldExtractor;
-
-public class FactTemplatorFieldExtractor
-    implements
-    FieldExtractor {
-
-    private static final long        serialVersionUID = 320;
-    private FactTemplate             factTemplate;
-    private int                      fieldIndex;
-
-    public FactTemplatorFieldExtractor(final FactTemplate factTemplate,
-                                       final int fieldIndex) {
-        this.factTemplate = factTemplate;
-        this.fieldIndex = fieldIndex;
-    }
-    
-    
-    public ValueType getValueType() {
-        return this.factTemplate.getFieldTemplate( fieldIndex ).getValueType();
-    }
-
-    public Object getValue(Object object) {
-        return ((Fact) object).getFieldValue( this.fieldIndex );
-    }
-    
-    public int getIndex() {
-        return this.fieldIndex;
-    }
-    
-    public Class getExtractToClass() {
-        return this.factTemplate.getFieldTemplate( fieldIndex ).getValueType().getClass();
-    }
-}

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FieldTemplateImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FieldTemplateImpl.java	2006-08-04 00:22:41 UTC (rev 5456)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FieldTemplateImpl.java	2006-08-04 00:22:52 UTC (rev 5457)
@@ -7,23 +7,21 @@
 public class FieldTemplateImpl
     implements
     FieldTemplate {
-    
-    private static final long        serialVersionUID = 320;
-    
-    private final String name;
-    private final int    index;
-    private final ValueType    valueType;
 
+    private static final long serialVersionUID = 320;
+
+    private final String      name;
+    private final int         index;
+    private final ValueType   valueType;
+
     public FieldTemplateImpl(String name,
                              int index,
                              Class clazz) {
-        super();
         this.name = name;
         this.index = index;
         this.valueType = ValueType.determineValueType( clazz );
-    }    
+    }
 
-
     /* (non-Javadoc)
      * @see org.drools.facttemplates.FieldTemplate#getIndex()
      */
@@ -45,4 +43,28 @@
         return this.valueType;
     }
 
+    public int hashCode() {
+        final int PRIME = 31;
+        int result = 1;
+        result = PRIME * result + this.index;
+        result = PRIME * result + this.name.hashCode();
+        result = PRIME * result + this.valueType.hashCode();
+        return result;
+    }
+
+    public boolean equals(Object object) {
+        if ( this == object ) {
+            return true;
+        }
+        
+        if ( object == null || getClass() != object.getClass() ) {
+            return false;
+        }
+        
+        final FieldTemplateImpl other = (FieldTemplateImpl) object;
+        
+        return this.index == other.index && this.name.equals( other.name ) && this.valueType.equals( other.valueType );
+    }
+
+    
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.java	2006-08-04 00:22:41 UTC (rev 5456)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.java	2006-08-04 00:22:52 UTC (rev 5457)
@@ -28,6 +28,8 @@
 import org.drools.RuleBaseConfiguration;
 import org.drools.common.DefaultFactHandle;
 import org.drools.common.NodeMemory;
+import org.drools.facttemplates.Fact;
+import org.drools.facttemplates.FactImpl;
 import org.drools.spi.ObjectType;
 import org.drools.spi.ObjectTypeResolver;
 import org.drools.spi.PropagationContext;
@@ -109,10 +111,19 @@
 
         final Object object = handle.getObject();
 
-        ObjectTypeNode[] cachedNodes = (ObjectTypeNode[]) memory.get( object.getClass() );
+        
+        Object key = null;
+            
+        if  ( object.getClass() == FactImpl.class ) {
+            key = ( ( Fact ) object ).getFactTemplate().getName();
+        } else {
+            key = object.getClass();
+        }
+        
+        ObjectTypeNode[] cachedNodes = (ObjectTypeNode[]) memory.get( key );
         if ( cachedNodes == null ) {
             cachedNodes = getMatchingNodes( object );
-            memory.put( object.getClass(),
+            memory.put( key,
                         cachedNodes );
         }
 

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java	2006-08-04 00:22:41 UTC (rev 5456)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java	2006-08-04 00:22:52 UTC (rev 5457)
@@ -399,7 +399,7 @@
                                  final boolean removeIdentities) throws InvalidPatternException {
         final List constraints = column.getConstraints();
 
-        final Class thisClass = ((ClassObjectType) column.getObjectType()).getClassType();
+//        final Class thisClass = ((ClassObjectType) column.getObjectType()).getClassType();
 
         this.objectSource = attachNode( new ObjectTypeNode( this.id++,
                                                             this.sinklistFactory.newObjectSinkList( ObjectTypeNode.class ),
@@ -409,15 +409,15 @@
         final List predicateConstraints = new ArrayList();
 
         if ( removeIdentities ) {
-            // Check if this object type exists before
-            // If it does we need stop instance equals cross product
-            for ( final Iterator it = this.objectType.entrySet().iterator(); it.hasNext(); ) {
-                final Map.Entry entry = (Map.Entry) it.next();
-                final Class previousClass = ((ClassObjectType) entry.getKey()).getClassType();
-                if ( thisClass.isAssignableFrom( previousClass ) ) {
-                    predicateConstraints.add( new InstanceNotEqualsConstraint( ((Integer) entry.getValue()).intValue() ) );
-                }
-            }
+//            // Check if this object type exists before
+//            // If it does we need stop instance equals cross product
+//            for ( final Iterator it = this.objectType.entrySet().iterator(); it.hasNext(); ) {
+//                final Map.Entry entry = (Map.Entry) it.next();
+//                final Class previousClass = ((ClassObjectType) entry.getKey()).getClassType();
+//                if ( thisClass.isAssignableFrom( previousClass ) ) {
+//                    predicateConstraints.add( new InstanceNotEqualsConstraint( ((Integer) entry.getValue()).intValue() ) );
+//                }
+//            }
 
             // Must be added after the checking, otherwise it matches against itself
             this.objectType.put( column.getObjectType(),

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java	2006-08-04 00:22:41 UTC (rev 5456)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java	2006-08-04 00:22:52 UTC (rev 5457)
@@ -27,12 +27,14 @@
 import java.io.ObjectOutputStream;
 import java.io.ObjectStreamClass;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.drools.facttemplates.FactTemplate;
 import org.drools.spi.TypeResolver;
 
 /**
@@ -54,11 +56,8 @@
     /**
      * 
      */
-    private static final long      serialVersionUID = -3098171849409626501L;
+    private static final long      serialVersionUID = 320;
 
-    /** Empty <code>Package</code> array. */
-    public static final Package[]  EMPTY_ARRAY      = new Package[0];
-
     // ------------------------------------------------------------
     // Instance members
     // ------------------------------------------------------------
@@ -72,9 +71,9 @@
     private List                   imports;
 
     private Map                    globals;
+    
+    private Map                    factTemplates;
 
-    //private Map                    functions;
-
     // @todo: add attributes to Package
     //private Map                   attributes;
 
@@ -122,8 +121,8 @@
         this.name = name;
         this.imports = new ArrayList( 1 );
         this.rules = new LinkedHashMap();
-        this.globals = new HashMap();
-        //this.functions = new HashMap();
+        this.globals = Collections.EMPTY_MAP;
+        this.factTemplates = Collections.EMPTY_MAP;
         this.packageCompilationData = new PackageCompilationData( parentClassLoader );
     }
 
@@ -137,7 +136,6 @@
         stream.writeObject( this.name );
         stream.writeObject( this.imports );
         stream.writeObject( this.globals );
-        //stream.writeObject( functions );
 
         // Rules must be restored by an ObjectInputStream that can resolve using a given ClassLoader to handle seaprately by storing as
         // a byte[]
@@ -160,7 +158,6 @@
         this.name = (String) stream.readObject();
         this.imports = (List) stream.readObject();
         this.globals = (Map) stream.readObject();
-        //this.functions = (Map) stream.readObject( );
 
         // Return the rules stored as a byte[]
         final byte[] bytes = (byte[]) stream.readObject();
@@ -220,6 +217,9 @@
 
     public void addGlobal(final String identifier,
                           final Class clazz) {
+        if ( this.globals == Collections.EMPTY_MAP ) {
+            this.globals = new HashMap( 1 );
+        }
         this.globals.put( identifier,
                           clazz );
     }
@@ -235,6 +235,17 @@
     public void removeFunction(final String functionName) {
         this.packageCompilationData.remove( this.name + "." + ucFirst( functionName ) );
     }
+    
+    public FactTemplate getFactTemplate(final String name) {
+        return ( FactTemplate )  this.factTemplates.get( name );
+    }
+    
+    public void addFactTemplate(FactTemplate factTemplate) {
+        if ( this.factTemplates == Collections.EMPTY_MAP ) {
+            this.factTemplates = new HashMap( 1 );
+        }
+        this.factTemplates.put( factTemplate.getName(), factTemplate );
+    }
 
     /**
      * Add a <code>Rule</code> to this <code>Package</code>.

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ColumnExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ColumnExtractor.java	2006-08-04 00:22:41 UTC (rev 5456)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ColumnExtractor.java	2006-08-04 00:22:52 UTC (rev 5457)
@@ -2,6 +2,7 @@
 
 import org.drools.base.ClassObjectType;
 import org.drools.base.ValueType;
+import org.drools.facttemplates.Fact;
 import org.drools.facttemplates.FactTemplate;
 
 /*
@@ -47,7 +48,7 @@
         if ( objectType.getClass() == ClassObjectType.class ) {
             return ( ( ClassObjectType ) objectType ).getClassType();
         } else {
-            return FactTemplate.class;
+            return Fact.class;
         } 
     }
 

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/TestFactTemplate.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/TestFactTemplate.java	2006-08-04 00:22:41 UTC (rev 5456)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/TestFactTemplate.java	2006-08-04 00:22:52 UTC (rev 5457)
@@ -1,9 +1,12 @@
 package org.drools.facttemplates;
 
+import org.drools.rule.Package;
+
 import junit.framework.TestCase;
 
 public class TestFactTemplate extends TestCase {
     public void testFieldsAndGetters() {
+        Package pkg = new Package( "org.store" );
         FieldTemplate cheeseName = new FieldTemplateImpl( "name",
                                                           0,
                                                           String.class );
@@ -11,7 +14,7 @@
                                                            1,
                                                            Integer.class );
         FieldTemplate[] fields = new FieldTemplate[]{cheeseName, cheesePrice};
-        FactTemplate cheese = new FactTemplateImpl( "org.store",
+        FactTemplate cheese = new FactTemplateImpl( pkg,
                                                     "Cheese",
                                                     fields );
 
@@ -43,6 +46,8 @@
     }
 
     public void testEqualsAndHashCode() {
+        Package pkg = new Package( "org.store" );
+        
         // Create cheese1 with name and price fields
         FieldTemplate cheeseName = new FieldTemplateImpl( "name",
                                                           0,
@@ -51,7 +56,7 @@
                                                            1,
                                                            Integer.class );
         FieldTemplate[] fields1 = new FieldTemplate[]{cheeseName, cheesePrice};
-        FactTemplate cheese1 = new FactTemplateImpl( "org.store",
+        FactTemplate cheese1 = new FactTemplateImpl( pkg,
                                                      "Cheese",
                                                      fields1 );
 
@@ -60,7 +65,7 @@
                                                           0,
                                                           String.class );
         FieldTemplate[] fields2 = new FieldTemplate[]{cheeseType, cheesePrice};
-        FactTemplate cheese2 = new FactTemplateImpl( "org.store",
+        FactTemplate cheese2 = new FactTemplateImpl( pkg,
                                                      "Cheese",
                                                      fields2 );
 
@@ -80,7 +85,7 @@
                                                             1,
                                                             Integer.class );
         FieldTemplate[] fields3 = new FieldTemplate[]{cheeseName2, cheesePrice2};
-        FactTemplate cheese3 = new FactTemplateImpl( "org.store",
+        FactTemplate cheese3 = new FactTemplateImpl( pkg,
                                                      "Cheese",
                                                      fields3 );
         
@@ -91,6 +96,7 @@
     }
     
     public void testFacts() {
+        Package pkg = new Package( "org.store" );
         FieldTemplate cheeseName = new FieldTemplateImpl( "name",
                                                           0,
                                                           String.class );
@@ -98,7 +104,7 @@
                                                            1,
                                                            Integer.class );
         FieldTemplate[] fields1 = new FieldTemplate[]{cheeseName, cheesePrice};
-        FactTemplate cheese1 = new FactTemplateImpl( "org.store",
+        FactTemplate cheese1 = new FactTemplateImpl( pkg,
                                                      "Cheese",
                                                      fields1 );        
         

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/TestFactTemplateFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/TestFactTemplateFieldExtractor.java	2006-08-04 00:22:41 UTC (rev 5456)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/TestFactTemplateFieldExtractor.java	2006-08-04 00:22:52 UTC (rev 5457)
@@ -2,12 +2,15 @@
 
 import org.drools.Cheese;
 import org.drools.rule.Declaration;
+import org.drools.rule.Package;
 import org.drools.spi.Extractor;
 
 import junit.framework.TestCase;
 
 public class TestFactTemplateFieldExtractor extends TestCase {
     public void testExtractor() {
+        Package pkg = new Package( "org.store" );
+
         FieldTemplate cheeseName = new FieldTemplateImpl( "name",
                                                           0,
                                                           String.class );
@@ -15,7 +18,7 @@
                                                            1,
                                                            Integer.class );
         FieldTemplate[] fields = new FieldTemplate[]{cheeseName, cheesePrice};
-        FactTemplate cheese = new FactTemplateImpl( "org.store",
+        FactTemplate cheese = new FactTemplateImpl( pkg,
                                                     "Cheese",
                                                     fields );
 
@@ -48,8 +51,10 @@
         assertEquals( new Integer( 55 ),
                       extractPrice.getValue( brie ) );
     }
-    
+
     public void testDeclaration() {
+        Package pkg = new Package( "org.store" );
+
         FieldTemplate cheeseName = new FieldTemplateImpl( "name",
                                                           0,
                                                           String.class );
@@ -57,13 +62,13 @@
                                                            1,
                                                            Integer.class );
         FieldTemplate[] fields = new FieldTemplate[]{cheeseName, cheesePrice};
-        FactTemplate cheese = new FactTemplateImpl( "org.store",
+        FactTemplate cheese = new FactTemplateImpl( pkg,
                                                     "Cheese",
                                                     fields );
-        
+
         Extractor extractName = new FactTemplateFieldExtractor( cheese,
-                                                                0 );        
-        
+                                                                0 );
+
         final Declaration declaration = new Declaration( "typeOfCheese",
                                                          extractName,
                                                          0 );
@@ -74,8 +79,8 @@
         brie.setFieldValue( "price",
                             new Integer( 55 ) );
 
-        /* Check we can extract Declarations correctly */
+        // Check we can extract Declarations correctly 
         assertEquals( "brie",
-                      declaration.getValue( brie ) );        
+                      declaration.getValue( brie ) );
     }
 }

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeTest.java	2006-08-04 00:22:41 UTC (rev 5456)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeTest.java	2006-08-04 00:22:52 UTC (rev 5457)
@@ -29,6 +29,7 @@
 import org.drools.base.evaluators.Operator;
 import org.drools.common.DefaultFactHandle;
 import org.drools.common.PropagationContextImpl;
+import org.drools.facttemplates.FactTemplateFieldExtractor;
 import org.drools.rule.LiteralConstraint;
 import org.drools.rule.Rule;
 import org.drools.spi.Evaluator;
@@ -147,7 +148,7 @@
                     memory.contains( f0 ) );
 
     }
-
+    
     /*
      * dont need to test with and without memory on this, as it was already done
      * on the previous two tests. This just test AlphaNode With a different




More information about the jboss-svn-commits mailing list