[jboss-svn-commits] JBL Code SVN: r32121 - in labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-factconstraint/src: main/java/org/drools/factconstraint/helper and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Mar 16 15:27:10 EDT 2010


Author: baunax
Date: 2010-03-16 15:27:10 -0400 (Tue, 16 Mar 2010)
New Revision: 32121

Modified:
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-factconstraint/src/main/java/org/drools/factconstraint/Constraint.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-factconstraint/src/main/java/org/drools/factconstraint/helper/ConstraintsConstrainer.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-factconstraint/src/test/java/org/drools/factconstraint/helper/ConstraintsConstrainerTest.java
Log:
added method for retrieving constrains by fact and field name

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-factconstraint/src/main/java/org/drools/factconstraint/Constraint.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-factconstraint/src/main/java/org/drools/factconstraint/Constraint.java	2010-03-16 18:52:10 UTC (rev 32120)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-factconstraint/src/main/java/org/drools/factconstraint/Constraint.java	2010-03-16 19:27:10 UTC (rev 32121)
@@ -5,7 +5,9 @@
  * @author esteban.aliverti at gmail.com
  */
 public interface Constraint {
+	public String getFactType();
     public void setFactType(String factType);
+    public String getFieldName();
     public void setFieldName(String fieldName);
     public String[] getArgumentKeys();
     public Object getArgumentValue(String key);

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-factconstraint/src/main/java/org/drools/factconstraint/helper/ConstraintsConstrainer.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-factconstraint/src/main/java/org/drools/factconstraint/helper/ConstraintsConstrainer.java	2010-03-16 18:52:10 UTC (rev 32120)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-factconstraint/src/main/java/org/drools/factconstraint/helper/ConstraintsConstrainer.java	2010-03-16 19:27:10 UTC (rev 32121)
@@ -1,5 +1,6 @@
 package org.drools.factconstraint.helper;
 
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.LinkedList;
@@ -11,6 +12,10 @@
 public class ConstraintsConstrainer {
 	Map<String, List<Constraint>> constraints = new HashMap<String, List<Constraint>>();
 	
+	public ConstraintsConstrainer(Constraint[] constraints) {
+		this(Arrays.asList(constraints));
+	}
+	
 	public ConstraintsConstrainer(Collection<Constraint> constraints) {
 		for (Constraint c : constraints) {
 			addConstraint(c);
@@ -30,10 +35,20 @@
 		list.add(c);
 	}
 
-	public List<Constraint> getConstraints(String FactType) {
-		return constraints.get(FactType);
+	public List<Constraint> getConstraints(String factType) {
+		return constraints.get(factType);
 	}
 	
+	public List<Constraint> getConstraints(String factType, String fieldName) {
+		List<Constraint> res = new LinkedList<Constraint>();
+		for (Constraint c : constraints.get(factType)) {
+			if (fieldName.equals(c.getFieldName())) {
+				res.add(c);
+			}
+		} 
+		return res;
+	}
+	
 	public boolean hasConstraints(String FactType) {
 		return constraints.containsKey(FactType);
 	}

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-factconstraint/src/test/java/org/drools/factconstraint/helper/ConstraintsConstrainerTest.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-factconstraint/src/test/java/org/drools/factconstraint/helper/ConstraintsConstrainerTest.java	2010-03-16 18:52:10 UTC (rev 32120)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-factconstraint/src/test/java/org/drools/factconstraint/helper/ConstraintsConstrainerTest.java	2010-03-16 19:27:10 UTC (rev 32121)
@@ -32,6 +32,9 @@
         
         cc.addConstraint(cons);
         assertEquals(2, cc.getConstraints("Person").size());
+        assertEquals(1, cc.getConstraints("Person", "age").size());
+        assertSame(cons, cc.getConstraints("Person", "name").get(0));
+        assertEquals(0, cc.getConstraints("Person", "toothCount").size());
         
         cons = new NotNullConstraint();
         cons.setFactType("Pet");
@@ -40,6 +43,8 @@
         cc.addConstraint(cons);
         
         assertEquals(1, cc.getConstraints("Pet").size());
+        
+        assertEquals(1, cc.getConstraints("Pet", "name").size());
 	}
 	
 }



More information about the jboss-svn-commits mailing list