[jboss-svn-commits] JBL Code SVN: r8838 - labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jan 12 07:53:53 EST 2007


Author: michael.neale at jboss.com
Date: 2007-01-12 07:53:51 -0500 (Fri, 12 Jan 2007)
New Revision: 8838

Modified:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java
Log:
uses new objects to mock RPC

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java	2007-01-12 11:43:15 UTC (rev 8837)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java	2007-01-12 12:53:51 UTC (rev 8838)
@@ -1,11 +1,27 @@
 package org.drools.brms.client.rpc.mock;
 
 import java.util.Date;
+import java.util.HashMap;
 
+import org.drools.brms.client.common.AssetFormats;
+import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.brms.client.modeldriven.brxml.ActionAssertFact;
+import org.drools.brms.client.modeldriven.brxml.ActionFieldValue;
+import org.drools.brms.client.modeldriven.brxml.ActionRetractFact;
+import org.drools.brms.client.modeldriven.brxml.ActionSetField;
+import org.drools.brms.client.modeldriven.brxml.CompositeFactPattern;
+import org.drools.brms.client.modeldriven.brxml.Constraint;
+import org.drools.brms.client.modeldriven.brxml.DSLSentence;
+import org.drools.brms.client.modeldriven.brxml.DSLSentenceFragment;
+import org.drools.brms.client.modeldriven.brxml.FactPattern;
+import org.drools.brms.client.modeldriven.brxml.IAction;
+import org.drools.brms.client.modeldriven.brxml.IPattern;
+import org.drools.brms.client.modeldriven.brxml.RuleModel;
 import org.drools.brms.client.rpc.MetaData;
 import org.drools.brms.client.rpc.RepositoryServiceAsync;
 import org.drools.brms.client.rpc.RuleAsset;
 import org.drools.brms.client.rpc.RuleContentText;
+import org.drools.brms.client.rpc.RuleModelData;
 import org.drools.brms.client.rpc.TableConfig;
 import org.drools.brms.client.rpc.TableDataResult;
 import org.drools.brms.client.rpc.TableDataRow;
@@ -151,7 +167,11 @@
             text.content = "rule la\n\twhen\n\t\tSomething() ...";
             
         } else {
-            meta.format = "DSL";
+            meta.format = AssetFormats.BUSINESS_RULE;
+            RuleModelData data = new RuleModelData();
+            data.completionEngine = getDummySuggestionEngine();
+            data.model = getDummyData();
+            asset.content = data;
         }
         
         asset.metaData = meta;
@@ -170,7 +190,136 @@
     }
 
 
+    private SuggestionCompletionEngine getDummySuggestionEngine() {
+        SuggestionCompletionEngine com = new SuggestionCompletionEngine();
+        
+        com.factTypes = new String[] {"Person", "Vehicle"};
+        com.fieldTypes = new HashMap() {{
+            put("Person.age", SuggestionCompletionEngine.TYPE_NUMERIC);
+            put("Person.name", "String");
+            put("Vehicle.type", "String");
+            put("Vehcile.make", "String");
+        }};
 
+        com.fieldsForType = new HashMap() {{
+           put("Person", new String[] {"age", "name"});
+           put("Vehicle", new String[] {"type", "make"});
+        }};
+        
+        
+        DSLSentence sen = new DSLSentence();
+        sen.elements = new DSLSentenceFragment[2];
+        sen.elements[0] = new DSLSentenceFragment("This is a dsl expression", false);
+        sen.elements[1] = new DSLSentenceFragment("(something)", true);
+        com.conditionDSLSentences = new DSLSentence[] {sen};
+
+        
+        sen = new DSLSentence();
+        sen.elements = new DSLSentenceFragment[3];
+        sen.elements[0] = new DSLSentenceFragment("Send an email to [", false);
+        sen.elements[1] = new DSLSentenceFragment("(someone)", true);
+        sen.elements[2] = new DSLSentenceFragment("]", false);
+        
+        
+        DSLSentence sen2 = new DSLSentence();
+        sen2.elements = new DSLSentenceFragment[1];
+        sen2.elements[0] = new DSLSentenceFragment("do nothing", false);        
+        
+        com.actionDSLSentences = new DSLSentence[] {sen, sen2};
+        
+        
+        return com;
+    }
+
+
+    private RuleModel getDummyData() {
+        RuleModel model = new RuleModel();
+        
+        model.lhs = new IPattern[3];
+        
+        FactPattern p1 = new FactPattern();
+        FactPattern p2 = new FactPattern();
+        CompositeFactPattern p3 = new CompositeFactPattern();
+        
+        
+        model.lhs[0] = p1;
+        model.lhs[1] = p2;
+        model.lhs[2] = p3;
+        
+        DSLSentence dsl = new DSLSentence();
+        dsl.elements = new DSLSentenceFragment[2];
+        dsl.elements[0] = new DSLSentenceFragment("There is a Storm alert of type", false);
+        dsl.elements[1] = new DSLSentenceFragment("(code here)", true);
+        
+        model.addLhsItem( dsl );
+        
+        dsl = new DSLSentence();
+        dsl.elements = new DSLSentenceFragment[2];
+        dsl.elements[0] = new DSLSentenceFragment("- severity rating is not more than", false);
+        dsl.elements[1] = new DSLSentenceFragment("(code here)", true);
+        
+        model.addLhsItem( dsl );
+            
+        
+        
+        
+        p1.factType = "Person";
+        p1.constraints = new Constraint[2];
+        p1.constraints[0] = new Constraint();
+        p1.constraints[1] = new Constraint();
+        p1.constraints[0].fieldName = "age";
+        p1.constraints[0].operator = "<";
+        p1.constraints[0].value = "42";
+
+        p1.constraints[1].fieldName = "name";
+        p1.constraints[1].operator = "==";
+        p1.constraints[1].value = "Bob";
+        p1.constraints[1].fieldBinding = "n";
+  
+        
+        
+        p2.factType = "Vehicle";
+        p2.boundName = "car1";
+        p2.constraints = new Constraint[1];
+        p2.constraints[0] = new Constraint();
+        p2.constraints[0].fieldName = "type";
+        p2.constraints[0].operator = "!=";
+        
+        p3.type = "not";
+        p3.patterns = new FactPattern[1];
+        FactPattern i1 = new FactPattern("Vehicle");
+        i1.constraints = new Constraint[1];
+        i1.constraints[0] = new Constraint();
+        i1.constraints[0].fieldName = "type";
+        i1.constraints[0].operator = "==";
+        
+        p3.patterns[0] = i1;
+        
+        ActionSetField set = new ActionSetField();
+        set.variable = "car1";
+        set.fieldValues = new ActionFieldValue[1];
+        set.fieldValues[0] = new ActionFieldValue();
+        set.fieldValues[0].field = "type";
+        
+        ActionAssertFact fact = new ActionAssertFact();
+        fact.factType = "Person";
+        fact.fieldValues = new ActionFieldValue[2];
+        fact.fieldValues[0] = new ActionFieldValue("name", "Mike");
+        fact.fieldValues[1] = new ActionFieldValue("age", "42");
+        
+        ActionRetractFact retract = new ActionRetractFact("car1");
+        
+        model.rhs = new IAction[3];
+        model.rhs[0] = set;
+        model.rhs[1] = fact;
+        model.rhs[2] = retract;
+        
+        return model;
+        
+    }
+
+    
+
     public void checkinVersion(RuleAsset a,
                                AsyncCallback cb) {
         if (a.metaData.coverage.equals( "fail" )) {




More information about the jboss-svn-commits mailing list