[jboss-svn-commits] JBL Code SVN: r17438 - in labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl: configuration and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Dec 29 13:07:06 EST 2007
Author: mark.proctor at jboss.com
Date: 2007-12-29 13:07:05 -0500 (Sat, 29 Dec 2007)
New Revision: 17438
Added:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/CreateNewNodeConf.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/ReuseNodeConf.java
Removed:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/ActionNodeConf.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/EndNodeConf.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/JoinNodeConf.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/MilestoneNodeConf.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/SplitNodeConf.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/StartNodeConf.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/SubFlowNodeConf.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/TaskNodeConf.java
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/RuleFlowProcessInstanceImpl.java
Log:
JBRULES-1394 RuleFlow Nodes should be pluggable
-Deleted a number of node configurations, and replaced with re-usable ones. As mostly it either uses an existing one or creates a new one.
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/RuleFlowProcessInstanceImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/RuleFlowProcessInstanceImpl.java 2007-12-29 17:39:42 UTC (rev 17437)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/RuleFlowProcessInstanceImpl.java 2007-12-29 18:07:05 UTC (rev 17438)
@@ -41,16 +41,8 @@
import org.drools.event.RuleFlowStartedEvent;
import org.drools.ruleflow.common.instance.WorkItem;
import org.drools.ruleflow.common.instance.impl.ProcessInstanceImpl;
-import org.drools.ruleflow.core.ActionNode;
-import org.drools.ruleflow.core.EndNode;
-import org.drools.ruleflow.core.Join;
-import org.drools.ruleflow.core.MilestoneNode;
import org.drools.ruleflow.core.Node;
import org.drools.ruleflow.core.RuleFlowProcess;
-import org.drools.ruleflow.core.RuleSetNode;
-import org.drools.ruleflow.core.Split;
-import org.drools.ruleflow.core.StartNode;
-import org.drools.ruleflow.core.SubFlowNode;
import org.drools.ruleflow.core.WorkItemNode;
import org.drools.ruleflow.core.impl.ActionNodeImpl;
import org.drools.ruleflow.core.impl.EndNodeImpl;
@@ -62,15 +54,9 @@
import org.drools.ruleflow.core.impl.SubFlowNodeImpl;
import org.drools.ruleflow.instance.RuleFlowNodeInstance;
import org.drools.ruleflow.instance.RuleFlowProcessInstance;
-import org.drools.ruleflow.instance.impl.configuration.ActionNodeConf;
-import org.drools.ruleflow.instance.impl.configuration.EndNodeConf;
-import org.drools.ruleflow.instance.impl.configuration.JoinNodeConf;
-import org.drools.ruleflow.instance.impl.configuration.MilestoneNodeConf;
+import org.drools.ruleflow.instance.impl.configuration.CreateNewNodeConf;
+import org.drools.ruleflow.instance.impl.configuration.ReuseNodeConf;
import org.drools.ruleflow.instance.impl.configuration.RuleSetNodeConf;
-import org.drools.ruleflow.instance.impl.configuration.SplitNodeConf;
-import org.drools.ruleflow.instance.impl.configuration.StartNodeConf;
-import org.drools.ruleflow.instance.impl.configuration.SubFlowNodeConf;
-import org.drools.ruleflow.instance.impl.configuration.TaskNodeConf;
/**
* Default implementation of a RuleFlow process instance.
@@ -79,12 +65,14 @@
*/
public class RuleFlowProcessInstanceImpl extends ProcessInstanceImpl
implements
- RuleFlowProcessInstance, AgendaEventListener, RuleFlowEventListener {
+ RuleFlowProcessInstance,
+ AgendaEventListener,
+ RuleFlowEventListener {
- private static final long serialVersionUID = 400L;
+ private static final long serialVersionUID = 400L;
- private InternalWorkingMemory workingMemory;
- private final List nodeInstances = new ArrayList();
+ private InternalWorkingMemory workingMemory;
+ private final List nodeInstances = new ArrayList();
public RuleFlowProcess getRuleFlowProcess() {
return (RuleFlowProcess) getProcess();
@@ -100,7 +88,7 @@
}
public Collection getNodeInstances() {
- return Collections.unmodifiableCollection( new ArrayList(this.nodeInstances) );
+ return Collections.unmodifiableCollection( new ArrayList( this.nodeInstances ) );
}
public RuleFlowNodeInstance getFirstNodeInstance(final long nodeId) {
@@ -114,51 +102,71 @@
}
public Agenda getAgenda() {
- if (this.workingMemory == null) {
- return null;
- }
+ if ( this.workingMemory == null ) {
+ return null;
+ }
return this.workingMemory.getAgenda();
}
public void setWorkingMemory(final InternalWorkingMemory workingMemory) {
- if (this.workingMemory != null) {
- throw new IllegalArgumentException("A working memory can only be set once.");
- }
+ if ( this.workingMemory != null ) {
+ throw new IllegalArgumentException( "A working memory can only be set once." );
+ }
this.workingMemory = workingMemory;
- workingMemory.addEventListener((AgendaEventListener) this);
- workingMemory.addEventListener((RuleFlowEventListener) this);
+ workingMemory.addEventListener( (AgendaEventListener) this );
+ workingMemory.addEventListener( (RuleFlowEventListener) this );
}
-
+
public WorkingMemory getWorkingMemory() {
- return this.workingMemory;
- }
-
+ return this.workingMemory;
+ }
+
private static PvmNodeRegistry nodeRegistry = new PvmNodeRegistry();
static {
- nodeRegistry.register(RuleSetNodeImpl.class, new RuleSetNodeConf() );
- nodeRegistry.register(SplitImpl.class, new SplitNodeConf() );
- nodeRegistry.register(JoinImpl.class, new JoinNodeConf() );
- nodeRegistry.register(StartNodeImpl.class, new StartNodeConf() );
- nodeRegistry.register(EndNodeImpl.class, new EndNodeConf() );
- nodeRegistry.register(MilestoneNodeImpl.class, new MilestoneNodeConf() );
- nodeRegistry.register(SubFlowNodeImpl.class, new SubFlowNodeConf() );
- nodeRegistry.register(ActionNodeImpl.class, new ActionNodeConf() );
- nodeRegistry.register(WorkItemNode.class, new TaskNodeConf() );
-
+ // nodeRegistry.register(RuleSetNodeImpl.class, new RuleSetNodeConf() );
+ // nodeRegistry.register(SplitImpl.class, new SplitNodeConf() );
+ // nodeRegistry.register(JoinImpl.class, new JoinNodeConf() );
+ // nodeRegistry.register(StartNodeImpl.class, new StartNodeConf() );
+ // nodeRegistry.register(EndNodeImpl.class, new EndNodeConf() );
+ // nodeRegistry.register(MilestoneNodeImpl.class, new MilestoneNodeConf() );
+ // nodeRegistry.register(SubFlowNodeImpl.class, new SubFlowNodeConf() );
+ // nodeRegistry.register(ActionNodeImpl.class, new ActionNodeConf() );
+ // nodeRegistry.register(WorkItemNode.class, new TaskNodeConf() );
+
+ nodeRegistry.register( RuleSetNodeImpl.class,
+ new RuleSetNodeConf() );
+ nodeRegistry.register( SplitImpl.class,
+ new ReuseNodeConf( RuleFlowSplitInstanceImpl.class ) );
+ nodeRegistry.register( JoinImpl.class,
+ new ReuseNodeConf( RuleFlowJoinInstanceImpl.class ) );
+ nodeRegistry.register( StartNodeImpl.class,
+ new CreateNewNodeConf( StartNodeInstanceImpl.class ) );
+ nodeRegistry.register( EndNodeImpl.class,
+ new CreateNewNodeConf( EndNodeInstanceImpl.class ) );
+ nodeRegistry.register( MilestoneNodeImpl.class,
+ new CreateNewNodeConf( MilestoneNodeInstanceImpl.class ) );
+ nodeRegistry.register( SubFlowNodeImpl.class,
+ new CreateNewNodeConf( SubFlowNodeInstanceImpl.class ) );
+ nodeRegistry.register( ActionNodeImpl.class,
+ new CreateNewNodeConf( ActionNodeInstanceImpl.class ) );
+ nodeRegistry.register( WorkItemNode.class,
+ new CreateNewNodeConf( TaskNodeInstanceImpl.class ) );
+
}
public RuleFlowNodeInstance getNodeInstance(final Node node) {
- PvmNodeConf conf = this.nodeRegistry.getRuleFlowNodeConf( node );
- if ( conf == null ) {
- throw new IllegalArgumentException( "Illegal node type: " + node.getClass() );
- }
-
- RuleFlowNodeInstance nodeInstance = conf.getNodeInstance( node, this );
-
- if ( nodeInstance == null ) {
- throw new IllegalArgumentException( "Illegal node type: " + node.getClass() );
- }
- return nodeInstance;
+ PvmNodeConf conf = this.nodeRegistry.getRuleFlowNodeConf( node );
+ if ( conf == null ) {
+ throw new IllegalArgumentException( "Illegal node type: " + node.getClass() );
+ }
+
+ RuleFlowNodeInstance nodeInstance = conf.getNodeInstance( node,
+ this );
+
+ if ( nodeInstance == null ) {
+ throw new IllegalArgumentException( "Illegal node type: " + node.getClass() );
+ }
+ return nodeInstance;
}
public void start() {
@@ -168,24 +176,22 @@
setState( ProcessInstanceImpl.STATE_ACTIVE );
getNodeInstance( getRuleFlowProcess().getStart() ).trigger( null );
}
-
+
public void setState(final int state) {
- super.setState(state);
- if (state == ProcessInstanceImpl.STATE_COMPLETED) {
- ((EventSupport) this.workingMemory)
- .getRuleFlowEventSupport()
- .fireBeforeRuleFlowProcessCompleted(this, this.workingMemory);
+ super.setState( state );
+ if ( state == ProcessInstanceImpl.STATE_COMPLETED ) {
+ ((EventSupport) this.workingMemory).getRuleFlowEventSupport().fireBeforeRuleFlowProcessCompleted( this,
+ this.workingMemory );
// deactivate all node instances of this process instance
- while (!nodeInstances.isEmpty()) {
- RuleFlowNodeInstance nodeInstance = (RuleFlowNodeInstance) nodeInstances.get(0);
- nodeInstance.cancel();
+ while ( !nodeInstances.isEmpty() ) {
+ RuleFlowNodeInstance nodeInstance = (RuleFlowNodeInstance) nodeInstances.get( 0 );
+ nodeInstance.cancel();
}
- workingMemory.removeEventListener((AgendaEventListener) this);
- workingMemory.removeEventListener((RuleFlowEventListener) this);
- workingMemory.removeProcessInstance(this);
- ((EventSupport) this.workingMemory)
- .getRuleFlowEventSupport()
- .fireAfterRuleFlowProcessCompleted(this, this.workingMemory);
+ workingMemory.removeEventListener( (AgendaEventListener) this );
+ workingMemory.removeEventListener( (RuleFlowEventListener) this );
+ workingMemory.removeProcessInstance( this );
+ ((EventSupport) this.workingMemory).getRuleFlowEventSupport().fireAfterRuleFlowProcessCompleted( this,
+ this.workingMemory );
}
}
@@ -200,105 +206,120 @@
return sb.toString();
}
- public void activationCreated(ActivationCreatedEvent event, WorkingMemory workingMemory) {
- // TODO group all milestone related code in milestone instance impl?
- // check whether this activation is from the DROOLS_SYSTEM agenda group
- String ruleFlowGroup = event.getActivation().getRule().getRuleFlowGroup();
- if ("DROOLS_SYSTEM".equals(ruleFlowGroup)) {
- // new activations of the rule associate with a milestone node
- // trigger node instances of that milestone node
- String ruleName = event.getActivation().getRule().getName();
- for (Iterator iterator = getNodeInstances().iterator(); iterator.hasNext(); ) {
- RuleFlowNodeInstance nodeInstance = (RuleFlowNodeInstance) iterator.next();
- if (nodeInstance instanceof MilestoneNodeInstanceImpl) {
- String milestoneName = "RuleFlow-Milestone-" + getProcess().getId()
- + "-" + nodeInstance.getNodeId();
- if (milestoneName.equals(ruleName)) {
- ((MilestoneNodeInstanceImpl) nodeInstance).triggerCompleted();
- }
- }
-
- }
- }
- }
+ public void activationCreated(ActivationCreatedEvent event,
+ WorkingMemory workingMemory) {
+ // TODO group all milestone related code in milestone instance impl?
+ // check whether this activation is from the DROOLS_SYSTEM agenda group
+ String ruleFlowGroup = event.getActivation().getRule().getRuleFlowGroup();
+ if ( "DROOLS_SYSTEM".equals( ruleFlowGroup ) ) {
+ // new activations of the rule associate with a milestone node
+ // trigger node instances of that milestone node
+ String ruleName = event.getActivation().getRule().getName();
+ for ( Iterator iterator = getNodeInstances().iterator(); iterator.hasNext(); ) {
+ RuleFlowNodeInstance nodeInstance = (RuleFlowNodeInstance) iterator.next();
+ if ( nodeInstance instanceof MilestoneNodeInstanceImpl ) {
+ String milestoneName = "RuleFlow-Milestone-" + getProcess().getId() + "-" + nodeInstance.getNodeId();
+ if ( milestoneName.equals( ruleName ) ) {
+ ((MilestoneNodeInstanceImpl) nodeInstance).triggerCompleted();
+ }
+ }
- public void activationCancelled(ActivationCancelledEvent event, WorkingMemory workingMemory) {
- // Do nothing
- }
+ }
+ }
+ }
- public void afterActivationFired(AfterActivationFiredEvent event, WorkingMemory workingMemory) {
- // Do nothing
- }
+ public void activationCancelled(ActivationCancelledEvent event,
+ WorkingMemory workingMemory) {
+ // Do nothing
+ }
- public void agendaGroupPopped(AgendaGroupPoppedEvent event, WorkingMemory workingMemory) {
- // Do nothing
- }
+ public void afterActivationFired(AfterActivationFiredEvent event,
+ WorkingMemory workingMemory) {
+ // Do nothing
+ }
- public void agendaGroupPushed(AgendaGroupPushedEvent event, WorkingMemory workingMemory) {
- // Do nothing
- }
+ public void agendaGroupPopped(AgendaGroupPoppedEvent event,
+ WorkingMemory workingMemory) {
+ // Do nothing
+ }
- public void beforeActivationFired(BeforeActivationFiredEvent event, WorkingMemory workingMemory) {
- // Do nothing
- }
+ public void agendaGroupPushed(AgendaGroupPushedEvent event,
+ WorkingMemory workingMemory) {
+ // Do nothing
+ }
- public void beforeRuleFlowGroupActivated(RuleFlowGroupActivatedEvent event, WorkingMemory workingMemory) {
- // Do nothing
- }
+ public void beforeActivationFired(BeforeActivationFiredEvent event,
+ WorkingMemory workingMemory) {
+ // Do nothing
+ }
- public void afterRuleFlowGroupActivated(RuleFlowGroupActivatedEvent event, WorkingMemory workingMemory) {
+ public void beforeRuleFlowGroupActivated(RuleFlowGroupActivatedEvent event,
+ WorkingMemory workingMemory) {
// Do nothing
}
- public void beforeRuleFlowGroupDeactivated(RuleFlowGroupDeactivatedEvent event, WorkingMemory workingMemory) {
- // Do nothing
- }
+ public void afterRuleFlowGroupActivated(RuleFlowGroupActivatedEvent event,
+ WorkingMemory workingMemory) {
+ // Do nothing
+ }
- public void afterRuleFlowGroupDeactivated(RuleFlowGroupDeactivatedEvent event, WorkingMemory workingMemory) {
+ public void beforeRuleFlowGroupDeactivated(RuleFlowGroupDeactivatedEvent event,
+ WorkingMemory workingMemory) {
// Do nothing
}
- public void beforeRuleFlowStarted(RuleFlowStartedEvent event, WorkingMemory workingMemory) {
- // Do nothing
- }
+ public void afterRuleFlowGroupDeactivated(RuleFlowGroupDeactivatedEvent event,
+ WorkingMemory workingMemory) {
+ // Do nothing
+ }
- public void afterRuleFlowStarted(RuleFlowStartedEvent event, WorkingMemory workingMemory) {
+ public void beforeRuleFlowStarted(RuleFlowStartedEvent event,
+ WorkingMemory workingMemory) {
// Do nothing
}
- public void beforeRuleFlowCompleted(RuleFlowCompletedEvent event, WorkingMemory workingMemory) {
+ public void afterRuleFlowStarted(RuleFlowStartedEvent event,
+ WorkingMemory workingMemory) {
// Do nothing
}
- public void beforeRuleFlowNodeTriggered(RuleFlowNodeTriggeredEvent event, WorkingMemory workingMemory) {
+ public void beforeRuleFlowCompleted(RuleFlowCompletedEvent event,
+ WorkingMemory workingMemory) {
// Do nothing
}
- public void afterRuleFlowNodeTriggered(RuleFlowNodeTriggeredEvent event, WorkingMemory workingMemory) {
+ public void beforeRuleFlowNodeTriggered(RuleFlowNodeTriggeredEvent event,
+ WorkingMemory workingMemory) {
// Do nothing
}
- public void afterRuleFlowCompleted(RuleFlowCompletedEvent event, WorkingMemory workingMemory) {
- // TODO group all subflow related code in subflow instance impl?
- for (Iterator iterator = getNodeInstances().iterator(); iterator.hasNext(); ) {
- RuleFlowNodeInstance nodeInstance = (RuleFlowNodeInstance) iterator.next();
- if (nodeInstance instanceof SubFlowNodeInstanceImpl) {
- SubFlowNodeInstanceImpl subFlowInstance = (SubFlowNodeInstanceImpl) nodeInstance;
- if (event.getRuleFlowProcessInstance().getId() == subFlowInstance.getProcessInstanceId()) {
- subFlowInstance.triggerCompleted();
- }
- }
-
- }
- }
+ public void afterRuleFlowNodeTriggered(RuleFlowNodeTriggeredEvent event,
+ WorkingMemory workingMemory) {
+ // Do nothing
+ }
+ public void afterRuleFlowCompleted(RuleFlowCompletedEvent event,
+ WorkingMemory workingMemory) {
+ // TODO group all subflow related code in subflow instance impl?
+ for ( Iterator iterator = getNodeInstances().iterator(); iterator.hasNext(); ) {
+ RuleFlowNodeInstance nodeInstance = (RuleFlowNodeInstance) iterator.next();
+ if ( nodeInstance instanceof SubFlowNodeInstanceImpl ) {
+ SubFlowNodeInstanceImpl subFlowInstance = (SubFlowNodeInstanceImpl) nodeInstance;
+ if ( event.getRuleFlowProcessInstance().getId() == subFlowInstance.getProcessInstanceId() ) {
+ subFlowInstance.triggerCompleted();
+ }
+ }
+
+ }
+ }
+
public void taskCompleted(WorkItem taskInstance) {
- for (Iterator iterator = getNodeInstances().iterator(); iterator.hasNext(); ) {
+ for ( Iterator iterator = getNodeInstances().iterator(); iterator.hasNext(); ) {
RuleFlowNodeInstance nodeInstance = (RuleFlowNodeInstance) iterator.next();
- if (nodeInstance instanceof TaskNodeInstanceImpl) {
+ if ( nodeInstance instanceof TaskNodeInstanceImpl ) {
TaskNodeInstanceImpl taskNodeInstance = (TaskNodeInstanceImpl) nodeInstance;
WorkItem nodeTaskInstance = taskNodeInstance.getTaskInstance();
- if (nodeTaskInstance != null && nodeTaskInstance.getId() == taskInstance.getId()) {
+ if ( nodeTaskInstance != null && nodeTaskInstance.getId() == taskInstance.getId() ) {
taskNodeInstance.triggerCompleted();
}
}
@@ -306,12 +327,12 @@
}
public void taskAborted(WorkItem taskInstance) {
- for (Iterator iterator = getNodeInstances().iterator(); iterator.hasNext(); ) {
+ for ( Iterator iterator = getNodeInstances().iterator(); iterator.hasNext(); ) {
RuleFlowNodeInstance nodeInstance = (RuleFlowNodeInstance) iterator.next();
- if (nodeInstance instanceof TaskNodeInstanceImpl) {
+ if ( nodeInstance instanceof TaskNodeInstanceImpl ) {
TaskNodeInstanceImpl taskNodeInstance = (TaskNodeInstanceImpl) nodeInstance;
WorkItem nodeTaskInstance = taskNodeInstance.getTaskInstance();
- if (nodeTaskInstance != null && nodeTaskInstance.getId() == taskInstance.getId()) {
+ if ( nodeTaskInstance != null && nodeTaskInstance.getId() == taskInstance.getId() ) {
taskNodeInstance.triggerCompleted();
}
}
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/ActionNodeConf.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/ActionNodeConf.java 2007-12-29 17:39:42 UTC (rev 17437)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/ActionNodeConf.java 2007-12-29 18:07:05 UTC (rev 17438)
@@ -1,24 +0,0 @@
-package org.drools.ruleflow.instance.impl.configuration;
-
-import org.drools.ruleflow.core.Node;
-import org.drools.ruleflow.core.RuleSetNode;
-import org.drools.ruleflow.instance.RuleFlowNodeInstance;
-import org.drools.ruleflow.instance.impl.ActionNodeInstanceImpl;
-import org.drools.ruleflow.instance.impl.MilestoneNodeInstanceImpl;
-import org.drools.ruleflow.instance.impl.PvmNodeConf;
-import org.drools.ruleflow.instance.impl.RuleFlowJoinInstanceImpl;
-import org.drools.ruleflow.instance.impl.RuleFlowProcessInstanceImpl;
-import org.drools.ruleflow.instance.impl.RuleFlowSplitInstanceImpl;
-import org.drools.ruleflow.instance.impl.StartNodeInstanceImpl;
-import org.drools.ruleflow.instance.impl.SubFlowNodeInstanceImpl;
-
-public class ActionNodeConf implements PvmNodeConf {
-
- public RuleFlowNodeInstance getNodeInstance(Node node, RuleFlowProcessInstanceImpl processInstance ) {
- final RuleFlowNodeInstance result = new ActionNodeInstanceImpl();
- result.setNodeId( node.getId() );
- processInstance.addNodeInstance( result );
- return result;
- }
-
-}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/CreateNewNodeConf.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/CreateNewNodeConf.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/CreateNewNodeConf.java 2007-12-29 18:07:05 UTC (rev 17438)
@@ -0,0 +1,37 @@
+package org.drools.ruleflow.instance.impl.configuration;
+
+import org.drools.ruleflow.core.Node;
+import org.drools.ruleflow.core.RuleSetNode;
+import org.drools.ruleflow.instance.RuleFlowNodeInstance;
+import org.drools.ruleflow.instance.impl.ActionNodeInstanceImpl;
+import org.drools.ruleflow.instance.impl.MilestoneNodeInstanceImpl;
+import org.drools.ruleflow.instance.impl.PvmNodeConf;
+import org.drools.ruleflow.instance.impl.RuleFlowJoinInstanceImpl;
+import org.drools.ruleflow.instance.impl.RuleFlowProcessInstanceImpl;
+import org.drools.ruleflow.instance.impl.RuleFlowSplitInstanceImpl;
+import org.drools.ruleflow.instance.impl.StartNodeInstanceImpl;
+import org.drools.ruleflow.instance.impl.SubFlowNodeInstanceImpl;
+
+public class CreateNewNodeConf implements PvmNodeConf {
+ public final Class<? extends RuleFlowNodeInstance> cls;
+
+ public CreateNewNodeConf(Class<? extends RuleFlowNodeInstance> cls){
+ this.cls = cls;
+// if ( RuleFlowNodeInstance.class.isAssignableFrom( this.cls ) ) {
+// throw new IllegalArgumentException("Node must be of the type RuleFlowNodeInstance." );
+// }
+ }
+
+ public RuleFlowNodeInstance getNodeInstance(Node node, RuleFlowProcessInstanceImpl processInstance ) {
+ RuleFlowNodeInstance result;
+ try {
+ result = this.cls.newInstance();
+ } catch ( Exception e ) {
+ throw new RuntimeException("Unable to instance RuleFlow Node: '" + this.cls.getName() );
+ }
+ result.setNodeId( node.getId() );
+ processInstance.addNodeInstance( result );
+ return result;
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/EndNodeConf.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/EndNodeConf.java 2007-12-29 17:39:42 UTC (rev 17437)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/EndNodeConf.java 2007-12-29 18:07:05 UTC (rev 17438)
@@ -1,22 +0,0 @@
-package org.drools.ruleflow.instance.impl.configuration;
-
-import org.drools.ruleflow.core.Node;
-import org.drools.ruleflow.core.RuleSetNode;
-import org.drools.ruleflow.instance.RuleFlowNodeInstance;
-import org.drools.ruleflow.instance.impl.EndNodeInstanceImpl;
-import org.drools.ruleflow.instance.impl.PvmNodeConf;
-import org.drools.ruleflow.instance.impl.RuleFlowJoinInstanceImpl;
-import org.drools.ruleflow.instance.impl.RuleFlowProcessInstanceImpl;
-import org.drools.ruleflow.instance.impl.RuleFlowSplitInstanceImpl;
-import org.drools.ruleflow.instance.impl.StartNodeInstanceImpl;
-
-public class EndNodeConf implements PvmNodeConf {
-
- public RuleFlowNodeInstance getNodeInstance(Node node, RuleFlowProcessInstanceImpl processInstance ) {
- final RuleFlowNodeInstance result = new EndNodeInstanceImpl();
- result.setNodeId( node.getId() );
- processInstance.addNodeInstance( result );
- return result;
- }
-
-}
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/JoinNodeConf.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/JoinNodeConf.java 2007-12-29 17:39:42 UTC (rev 17437)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/JoinNodeConf.java 2007-12-29 18:07:05 UTC (rev 17438)
@@ -1,23 +0,0 @@
-package org.drools.ruleflow.instance.impl.configuration;
-
-import org.drools.ruleflow.core.Node;
-import org.drools.ruleflow.core.RuleSetNode;
-import org.drools.ruleflow.instance.RuleFlowNodeInstance;
-import org.drools.ruleflow.instance.impl.PvmNodeConf;
-import org.drools.ruleflow.instance.impl.RuleFlowJoinInstanceImpl;
-import org.drools.ruleflow.instance.impl.RuleFlowProcessInstanceImpl;
-import org.drools.ruleflow.instance.impl.RuleFlowSplitInstanceImpl;
-
-public class JoinNodeConf implements PvmNodeConf {
-
- public RuleFlowNodeInstance getNodeInstance(Node node, RuleFlowProcessInstanceImpl processInstance ) {
- RuleFlowNodeInstance result = processInstance.getFirstNodeInstance( node.getId() );
- if ( result == null ) {
- result = new RuleFlowJoinInstanceImpl();
- result.setNodeId( node.getId() );
- processInstance.addNodeInstance( result );
- }
- return result;
- }
-
-}
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/MilestoneNodeConf.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/MilestoneNodeConf.java 2007-12-29 17:39:42 UTC (rev 17437)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/MilestoneNodeConf.java 2007-12-29 18:07:05 UTC (rev 17438)
@@ -1,22 +0,0 @@
-package org.drools.ruleflow.instance.impl.configuration;
-
-import org.drools.ruleflow.core.Node;
-import org.drools.ruleflow.core.RuleSetNode;
-import org.drools.ruleflow.instance.RuleFlowNodeInstance;
-import org.drools.ruleflow.instance.impl.MilestoneNodeInstanceImpl;
-import org.drools.ruleflow.instance.impl.PvmNodeConf;
-import org.drools.ruleflow.instance.impl.RuleFlowJoinInstanceImpl;
-import org.drools.ruleflow.instance.impl.RuleFlowProcessInstanceImpl;
-import org.drools.ruleflow.instance.impl.RuleFlowSplitInstanceImpl;
-import org.drools.ruleflow.instance.impl.StartNodeInstanceImpl;
-
-public class MilestoneNodeConf implements PvmNodeConf {
-
- public RuleFlowNodeInstance getNodeInstance(Node node, RuleFlowProcessInstanceImpl processInstance ) {
- final RuleFlowNodeInstance result = new MilestoneNodeInstanceImpl();
- result.setNodeId( node.getId() );
- processInstance.addNodeInstance( result );
- return result;
- }
-
-}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/ReuseNodeConf.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/ReuseNodeConf.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/ReuseNodeConf.java 2007-12-29 18:07:05 UTC (rev 17438)
@@ -0,0 +1,32 @@
+package org.drools.ruleflow.instance.impl.configuration;
+
+import org.drools.ruleflow.core.Node;
+import org.drools.ruleflow.instance.RuleFlowNodeInstance;
+import org.drools.ruleflow.instance.impl.PvmNodeConf;
+import org.drools.ruleflow.instance.impl.RuleFlowProcessInstanceImpl;
+
+public class ReuseNodeConf implements PvmNodeConf {
+ public final Class<? extends RuleFlowNodeInstance> cls;
+
+ public ReuseNodeConf(Class<? extends RuleFlowNodeInstance> cls){
+ this.cls = cls;
+// if ( RuleFlowNodeInstance.class.isAssignableFrom( this.cls ) ) {
+// throw new IllegalArgumentException("Node must be of the type RuleFlowNodeInstance." );
+// }
+ }
+
+ public RuleFlowNodeInstance getNodeInstance(Node node, RuleFlowProcessInstanceImpl processInstance ) {
+ RuleFlowNodeInstance result = processInstance.getFirstNodeInstance( node.getId() );
+ if ( result == null ) {
+ try {
+ result = ( RuleFlowNodeInstance ) cls.newInstance();
+ } catch ( Exception e ) {
+ throw new RuntimeException("Unable to instance RuleFlow Node: '" + this.cls.getName() );
+ }
+ result.setNodeId( node.getId() );
+ processInstance.addNodeInstance( result );
+ }
+ return result;
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/SplitNodeConf.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/SplitNodeConf.java 2007-12-29 17:39:42 UTC (rev 17437)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/SplitNodeConf.java 2007-12-29 18:07:05 UTC (rev 17438)
@@ -1,22 +0,0 @@
-package org.drools.ruleflow.instance.impl.configuration;
-
-import org.drools.ruleflow.core.Node;
-import org.drools.ruleflow.core.RuleSetNode;
-import org.drools.ruleflow.instance.RuleFlowNodeInstance;
-import org.drools.ruleflow.instance.impl.PvmNodeConf;
-import org.drools.ruleflow.instance.impl.RuleFlowProcessInstanceImpl;
-import org.drools.ruleflow.instance.impl.RuleFlowSplitInstanceImpl;
-
-public class SplitNodeConf implements PvmNodeConf {
-
- public RuleFlowNodeInstance getNodeInstance(Node node, RuleFlowProcessInstanceImpl processInstance ) {
- RuleFlowNodeInstance result = processInstance.getFirstNodeInstance( node.getId() );
- if ( result == null ) {
- result = new RuleFlowSplitInstanceImpl();
- result.setNodeId( node.getId() );
- processInstance.addNodeInstance( result );
- }
- return result;
- }
-
-}
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/StartNodeConf.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/StartNodeConf.java 2007-12-29 17:39:42 UTC (rev 17437)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/StartNodeConf.java 2007-12-29 18:07:05 UTC (rev 17438)
@@ -1,21 +0,0 @@
-package org.drools.ruleflow.instance.impl.configuration;
-
-import org.drools.ruleflow.core.Node;
-import org.drools.ruleflow.core.RuleSetNode;
-import org.drools.ruleflow.instance.RuleFlowNodeInstance;
-import org.drools.ruleflow.instance.impl.PvmNodeConf;
-import org.drools.ruleflow.instance.impl.RuleFlowJoinInstanceImpl;
-import org.drools.ruleflow.instance.impl.RuleFlowProcessInstanceImpl;
-import org.drools.ruleflow.instance.impl.RuleFlowSplitInstanceImpl;
-import org.drools.ruleflow.instance.impl.StartNodeInstanceImpl;
-
-public class StartNodeConf implements PvmNodeConf {
-
- public RuleFlowNodeInstance getNodeInstance(Node node, RuleFlowProcessInstanceImpl processInstance ) {
- final RuleFlowNodeInstance result = new StartNodeInstanceImpl();
- result.setNodeId( node.getId() );
- processInstance.addNodeInstance( result );
- return result;
- }
-
-}
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/SubFlowNodeConf.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/SubFlowNodeConf.java 2007-12-29 17:39:42 UTC (rev 17437)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/SubFlowNodeConf.java 2007-12-29 18:07:05 UTC (rev 17438)
@@ -1,23 +0,0 @@
-package org.drools.ruleflow.instance.impl.configuration;
-
-import org.drools.ruleflow.core.Node;
-import org.drools.ruleflow.core.RuleSetNode;
-import org.drools.ruleflow.instance.RuleFlowNodeInstance;
-import org.drools.ruleflow.instance.impl.MilestoneNodeInstanceImpl;
-import org.drools.ruleflow.instance.impl.PvmNodeConf;
-import org.drools.ruleflow.instance.impl.RuleFlowJoinInstanceImpl;
-import org.drools.ruleflow.instance.impl.RuleFlowProcessInstanceImpl;
-import org.drools.ruleflow.instance.impl.RuleFlowSplitInstanceImpl;
-import org.drools.ruleflow.instance.impl.StartNodeInstanceImpl;
-import org.drools.ruleflow.instance.impl.SubFlowNodeInstanceImpl;
-
-public class SubFlowNodeConf implements PvmNodeConf {
-
- public RuleFlowNodeInstance getNodeInstance(Node node, RuleFlowProcessInstanceImpl processInstance ) {
- final RuleFlowNodeInstance result = new SubFlowNodeInstanceImpl();
- result.setNodeId( node.getId() );
- processInstance.addNodeInstance( result );
- return result;
- }
-
-}
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/TaskNodeConf.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/TaskNodeConf.java 2007-12-29 17:39:42 UTC (rev 17437)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/configuration/TaskNodeConf.java 2007-12-29 18:07:05 UTC (rev 17438)
@@ -1,24 +0,0 @@
-package org.drools.ruleflow.instance.impl.configuration;
-
-import org.drools.ruleflow.core.Node;
-import org.drools.ruleflow.core.RuleSetNode;
-import org.drools.ruleflow.instance.RuleFlowNodeInstance;
-import org.drools.ruleflow.instance.impl.MilestoneNodeInstanceImpl;
-import org.drools.ruleflow.instance.impl.PvmNodeConf;
-import org.drools.ruleflow.instance.impl.RuleFlowJoinInstanceImpl;
-import org.drools.ruleflow.instance.impl.RuleFlowProcessInstanceImpl;
-import org.drools.ruleflow.instance.impl.RuleFlowSplitInstanceImpl;
-import org.drools.ruleflow.instance.impl.StartNodeInstanceImpl;
-import org.drools.ruleflow.instance.impl.SubFlowNodeInstanceImpl;
-import org.drools.ruleflow.instance.impl.TaskNodeInstanceImpl;
-
-public class TaskNodeConf implements PvmNodeConf {
-
- public RuleFlowNodeInstance getNodeInstance(Node node, RuleFlowProcessInstanceImpl processInstance ) {
- final RuleFlowNodeInstance result = new TaskNodeInstanceImpl();
- result.setNodeId( node.getId() );
- processInstance.addNodeInstance( result );
- return result;
- }
-
-}
More information about the jboss-svn-commits
mailing list