[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