[jbpm-commits] JBoss JBPM SVN: r6144 - in jbpm4/trunk/modules: pvm/src/main/java/org/jbpm/pvm/internal/builder and 1 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Jan 28 04:50:19 EST 2010


Author: tom.baeyens at jboss.com
Date: 2010-01-28 04:50:19 -0500 (Thu, 28 Jan 2010)
New Revision: 6144

Modified:
   jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/VariableBuilder.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/VariableDefinitionImpl.java
Log:
JBPM-2776 finished variable declarations

Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java	2010-01-28 09:13:45 UTC (rev 6143)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java	2010-01-28 09:50:19 UTC (rev 6144)
@@ -39,6 +39,7 @@
 import org.jbpm.jpdl.internal.activity.JpdlBinding;
 import org.jbpm.jpdl.internal.activity.MailListener;
 import org.jbpm.jpdl.internal.model.JpdlProcessDefinition;
+import org.jbpm.pvm.internal.el.Expression;
 import org.jbpm.pvm.internal.email.impl.MailProducerImpl;
 import org.jbpm.pvm.internal.email.impl.MailTemplate;
 import org.jbpm.pvm.internal.email.impl.MailTemplateRegistry;
@@ -241,6 +242,9 @@
         }
       }
 
+      // variable declarations
+      parseVariableDefinitions(documentElement, parse, processDefinition);
+
       // on events
       parseOnEvents(documentElement, parse, processDefinition);
       
@@ -298,6 +302,7 @@
         activity.setType(activityBinding.getTagName());
         activityBinding.parseName(nestedElement, activity, parse);
         parseTransitions(nestedElement, activity, parse);
+        parseVariableDefinitions(nestedElement, parse, activity);
 
         Element descriptionElement = XmlUtil.element(documentElement, "description");
         if (descriptionElement!=null) {
@@ -572,41 +577,41 @@
     return taskDefinition;
   }
 
-  public List<VariableDefinitionImpl> parseVariableDefinitions(Element element, Parse parse, boolean initRequired) {
+  public void parseVariableDefinitions(Element element, Parse parse, ScopeElementImpl scopeElement) {
     List<VariableDefinitionImpl> variableDefinitions = new ArrayList<VariableDefinitionImpl>();
     
-    for (Element inElement: XmlUtil.elements(element, "variable")) {
-      VariableDefinitionImpl variableDefinition = new VariableDefinitionImpl();
+    for (Element variableElement: XmlUtil.elements(element, "variable")) {
+      VariableDefinitionImpl variableDefinition = scopeElement.createVariableDefinition();
 
-      String name = XmlUtil.attribute(inElement, "name", true, parse);
+      String name = XmlUtil.attribute(variableElement, "name", true, parse);
       variableDefinition.setName(name);
       
+      String type = XmlUtil.attribute(variableElement, "type", true, parse);
+      variableDefinition.setTypeName(type);
+      
       int sources = 0;
       
-      String initExpr = XmlUtil.attribute(inElement, "init");
+      String initExpr = XmlUtil.attribute(variableElement, "init-expr");
+      String initExprType = XmlUtil.attribute(variableElement, "init-expr-type");
       if (initExpr!=null) {
-        variableDefinition.setInitExpression(initExpr);
+        Expression initExpression = new Expression(initExpr, initExprType);
+        variableDefinition.setInitExpression(initExpression);
         sources++;
       }
       
-      Element valueElement = XmlUtil.element(inElement);
-      if (valueElement!=null) {
-        Descriptor initValueDescriptor = (Descriptor) WireParser.getInstance().parseElement(valueElement, parse);
+      Element initDescriptorElement = XmlUtil.element(variableElement);
+      if (initDescriptorElement!=null) {
+        Descriptor initValueDescriptor = (Descriptor) wireParser.parseElement(initDescriptorElement, parse);
         variableDefinition.setInitDescriptor(initValueDescriptor);
         sources++;
       }
 
-      if (initRequired && sources==0) {
-        parse.addProblem("no init specified", inElement);
-      }
       if (sources>1) {
-        parse.addProblem("init attribute and init element are mutually exclusive on element variable", inElement);
+        parse.addProblem("init attribute and init element are mutually exclusive on element variable", variableElement);
       }
       
       variableDefinitions.add(variableDefinition);
     }
-
-    return variableDefinitions;
   }
 
   public VariableOutDefinitionSet parseVariableOutDefinitionSet(Element element, Parse parse) {

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/VariableBuilder.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/VariableBuilder.java	2010-01-28 09:13:45 UTC (rev 6143)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/VariableBuilder.java	2010-01-28 09:50:19 UTC (rev 6144)
@@ -21,6 +21,7 @@
  */
 package org.jbpm.pvm.internal.builder;
 
+import org.jbpm.pvm.internal.el.Expression;
 import org.jbpm.pvm.internal.model.VariableDefinitionImpl;
 import org.jbpm.pvm.internal.wire.Descriptor;
 
@@ -54,7 +55,7 @@
   }
 
   public VariableBuilder initialExpression(String initialExpression) {
-    variableDefinition.setInitExpression(initialExpression);
+    variableDefinition.setInitExpression(new Expression(initialExpression, null));
     return this;
   }
 

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/VariableDefinitionImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/VariableDefinitionImpl.java	2010-01-28 09:13:45 UTC (rev 6143)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/VariableDefinitionImpl.java	2010-01-28 09:50:19 UTC (rev 6144)
@@ -23,8 +23,7 @@
 
 import java.io.Serializable;
 
-import org.jbpm.pvm.internal.env.EnvironmentImpl;
-import org.jbpm.pvm.internal.script.ScriptManager;
+import org.jbpm.pvm.internal.el.Expression;
 import org.jbpm.pvm.internal.wire.Descriptor;
 import org.jbpm.pvm.internal.wire.WireContext;
 
@@ -45,8 +44,7 @@
   protected String typeName;
   protected boolean isHistoryEnabled;
 
-  protected String initExpression;
-  protected String initLanguage;
+  protected Expression initExpression;
   protected Descriptor initDescriptor;
 
   public Object getInitValue(ExecutionImpl execution) {
@@ -54,8 +52,7 @@
       return WireContext.create(initDescriptor);
     }
     if (initExpression!=null) {
-      ScriptManager scriptManager = EnvironmentImpl.getFromCurrent(ScriptManager.class);
-      return scriptManager.evaluateExpression(initExpression, initLanguage);
+      return initExpression.evaluate(execution);
     }
     return null;
   }
@@ -66,10 +63,10 @@
   public void setName(String name) {
     this.name = name;
   }
-  public String getInitExpression() {
+  public Expression getInitExpression() {
     return initExpression;
   }
-  public void setInitExpression(String initExpression) {
+  public void setInitExpression(Expression initExpression) {
     this.initExpression = initExpression;
   }
   public Descriptor getInitDescriptor() {
@@ -84,12 +81,6 @@
   public void setTypeName(String typeName) {
     this.typeName = typeName;
   }
-  public String getInitLanguage() {
-    return initLanguage;
-  }
-  public void setInitLanguage(String initLanguage) {
-    this.initLanguage = initLanguage;
-  }
   public boolean isHistoryEnabled() {
     return isHistoryEnabled;
   }



More information about the jbpm-commits mailing list