[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