[jbpm-commits] JBoss JBPM SVN: r3662 - in jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal: model and 1 other directory.
do-not-reply at jboss.org
do-not-reply at jboss.org
Fri Jan 16 10:37:10 EST 2009
Author: tom.baeyens at jboss.com
Date: 2009-01-16 10:37:10 -0500 (Fri, 16 Jan 2009)
New Revision: 3662
Added:
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/ObservableBuilder.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/TimerBuilder.java
Modified:
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/CompositeBuilder.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/EventBuilder.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/FlowBuilder.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ScopeInstanceImpl.java
Log:
timer builder stuff
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/CompositeBuilder.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/CompositeBuilder.java 2009-01-16 10:30:08 UTC (rev 3661)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/CompositeBuilder.java 2009-01-16 15:37:10 UTC (rev 3662)
@@ -55,6 +55,14 @@
return startVariable(name, type).endVariable();
}
+ public TimerBuilder startTimer() {
+ return new TimerBuilder(this, null);
+ }
+
+ public TimerBuilder startTimer(String eventName) {
+ return new TimerBuilder(this, eventName);
+ }
+
public VariableBuilder startVariable(String name, String type) {
return new VariableBuilder(this);
}
@@ -94,7 +102,7 @@
}
public EventBuilder startEvent(String eventName) {
- return new EventBuilder(this, compositeElement, eventName);
+ return new EventBuilder(this, eventName);
}
public CompositeBuilder endActivity() {
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/EventBuilder.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/EventBuilder.java 2009-01-16 10:30:08 UTC (rev 3661)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/EventBuilder.java 2009-01-16 15:37:10 UTC (rev 3662)
@@ -21,52 +21,53 @@
*/
package org.jbpm.pvm.internal.builder;
-import org.jbpm.JbpmException;
import org.jbpm.listener.EventListener;
-import org.jbpm.pvm.internal.model.EventImpl;
-import org.jbpm.pvm.internal.model.EventListenerReference;
-import org.jbpm.pvm.internal.model.ObservableElementImpl;
+import org.jbpm.pvm.internal.wire.Descriptor;
/**
* @author Tom Baeyens
*/
-public class EventBuilder {
+public class EventBuilder extends ObservableBuilder {
protected CompositeBuilder compositeBuilder;
- protected ObservableElementImpl observableElement;
- protected String eventName;
- protected EventImpl event = null;
- public EventBuilder(CompositeBuilder compositeBuilder, ObservableElementImpl observableElement, String eventName) {
+ public EventBuilder(CompositeBuilder compositeBuilder, String eventName) {
+ super(compositeBuilder.compositeElement, eventName);
this.compositeBuilder = compositeBuilder;
- this.observableElement = observableElement;
- this.eventName = eventName;
}
public EventBuilder listener(EventListener eventListener) {
- getEvent().createEventListenerReference(eventListener);
+ addListener(eventListener);
return this;
}
public EventBuilder listener(EventListener eventListener, boolean propagation) {
- EventListenerReference eventListenerReference = getEvent().createEventListenerReference(eventListener);
- eventListenerReference.setPropagationEnabled(propagation);
+ addListener(eventListener, propagation);
return this;
}
- private EventImpl getEvent() {
- if (event==null) {
- this.event = observableElement.createEvent(eventName);
- }
- return event;
+ public EventBuilder listener(Descriptor descriptor) {
+ addListener(descriptor);
+ return this;
}
+ public EventBuilder listener(Descriptor descriptor, boolean propagation) {
+ addListener(descriptor, propagation);
+ return this;
+ }
+
+ public EventBuilder listener(String expression) {
+ addListener(expression);
+ return this;
+ }
+
+ public EventBuilder listener(String expression, boolean propagation) {
+ addListener(expression, propagation);
+ return this;
+ }
+
public CompositeBuilder endEvent() {
return compositeBuilder;
}
-
- public ActivityBuilder endFlow() {
- throw new JbpmException("endFlow is only allowed on flows");
- }
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/FlowBuilder.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/FlowBuilder.java 2009-01-16 10:30:08 UTC (rev 3661)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/FlowBuilder.java 2009-01-16 15:37:10 UTC (rev 3662)
@@ -21,20 +21,22 @@
*/
package org.jbpm.pvm.internal.builder;
+import org.jbpm.listener.EventListener;
import org.jbpm.model.Event;
import org.jbpm.pvm.internal.model.TransitionImpl;
+import org.jbpm.pvm.internal.wire.Descriptor;
/**
* @author Tom Baeyens
*/
-public class FlowBuilder extends EventBuilder {
+public class FlowBuilder extends ObservableBuilder {
protected ActivityBuilder activityBuilder;
protected TransitionImpl transition;
public FlowBuilder(ActivityBuilder nodeBuilder, TransitionImpl transition) {
- super(nodeBuilder, transition, Event.TRANSITION_TAKE);
+ super(transition, Event.TRANSITION_TAKE);
this.activityBuilder = nodeBuilder;
this.transition = transition;
}
@@ -49,6 +51,36 @@
return this;
}
+ public FlowBuilder listener(EventListener eventListener) {
+ addListener(eventListener);
+ return this;
+ }
+
+ public FlowBuilder listener(EventListener eventListener, boolean propagation) {
+ addListener(eventListener, propagation);
+ return this;
+ }
+
+ public FlowBuilder listener(Descriptor descriptor) {
+ addListener(descriptor);
+ return this;
+ }
+
+ public FlowBuilder listener(Descriptor descriptor, boolean propagation) {
+ addListener(descriptor, propagation);
+ return this;
+ }
+
+ public FlowBuilder listener(String expression) {
+ addListener(expression);
+ return this;
+ }
+
+ public FlowBuilder listener(String expression, boolean propagation) {
+ addListener(expression, propagation);
+ return this;
+ }
+
public ActivityBuilder endFlow() {
return (ActivityBuilder) activityBuilder;
}
Added: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/ObservableBuilder.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/ObservableBuilder.java (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/ObservableBuilder.java 2009-01-16 15:37:10 UTC (rev 3662)
@@ -0,0 +1,78 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.pvm.internal.builder;
+
+import org.jbpm.listener.EventListener;
+import org.jbpm.pvm.internal.model.EventImpl;
+import org.jbpm.pvm.internal.model.EventListenerReference;
+import org.jbpm.pvm.internal.model.ObservableElementImpl;
+import org.jbpm.pvm.internal.wire.Descriptor;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class ObservableBuilder {
+
+ protected ObservableElementImpl observableElement;
+ protected String eventName;
+ protected EventImpl event = null;
+
+ public ObservableBuilder(ObservableElementImpl observableElement, String eventName) {
+ this.observableElement = observableElement;
+ this.eventName = eventName;
+ }
+
+ protected void addListener(EventListener eventListener) {
+ getEvent().createEventListenerReference(eventListener);
+ }
+
+ protected void addListener(EventListener eventListener, boolean propagation) {
+ EventListenerReference eventListenerReference = getEvent().createEventListenerReference(eventListener);
+ eventListenerReference.setPropagationEnabled(propagation);
+ }
+
+ protected void addListener(Descriptor descriptor) {
+ getEvent().createEventListenerReference(descriptor);
+ }
+
+ protected void addListener(Descriptor descriptor, boolean propagation) {
+ EventListenerReference eventListenerReference = getEvent().createEventListenerReference(descriptor);
+ eventListenerReference.setPropagationEnabled(propagation);
+ }
+
+ protected void addListener(String expression) {
+ getEvent().createEventListenerReference(expression);
+ }
+
+ protected void addListener(String expression, boolean propagation) {
+ EventListenerReference eventListenerReference = getEvent().createEventListenerReference(expression);
+ eventListenerReference.setPropagationEnabled(propagation);
+ }
+
+ private EventImpl getEvent() {
+ if (event==null) {
+ this.event = observableElement.createEvent(eventName);
+ }
+ return event;
+ }
+}
Property changes on: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/ObservableBuilder.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/TimerBuilder.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/TimerBuilder.java (rev 0)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/TimerBuilder.java 2009-01-16 15:37:10 UTC (rev 3662)
@@ -0,0 +1,108 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.pvm.internal.builder;
+
+import java.util.Date;
+
+import org.jbpm.listener.EventListener;
+import org.jbpm.pvm.internal.model.TimerDefinitionImpl;
+import org.jbpm.pvm.internal.wire.Descriptor;
+
+/**
+ * @author Tom Baeyens
+ */
+public class TimerBuilder extends ObservableBuilder {
+
+ protected CompositeBuilder compositeBuilder;
+ protected TimerDefinitionImpl timerDefinition;
+
+ public TimerBuilder(CompositeBuilder compositeBuilder, String eventName) {
+ super(compositeBuilder.compositeElement, eventName);
+ this.compositeBuilder = compositeBuilder;
+
+ timerDefinition = compositeBuilder.compositeElement.createTimerDefinition();
+ }
+
+ public TimerBuilder dueDate(String dueDateCalendarExpression) {
+ timerDefinition.setDueDateDescription(dueDateCalendarExpression);
+ return this;
+ }
+
+ public TimerBuilder dueDate(Date dueDate) {
+ timerDefinition.setDueDate(dueDate);
+ return this;
+ }
+
+ public TimerBuilder repeat(String repeatCalendarExpression) {
+ timerDefinition.setRepeat(repeatCalendarExpression);
+ return this;
+ }
+
+ public TimerBuilder retries(int retries) {
+ timerDefinition.setRetries(retries);
+ return this;
+ }
+
+ public TimerBuilder signal(String signalName) {
+ timerDefinition.setSignalName(signalName);
+ return this;
+ }
+
+ public TimerBuilder exclusive() {
+ timerDefinition.setExclusive(true);
+ return this;
+ }
+
+ public TimerBuilder listener(EventListener eventListener) {
+ addListener(eventListener);
+ return this;
+ }
+
+ public TimerBuilder listener(EventListener eventListener, boolean propagation) {
+ addListener(eventListener, propagation);
+ return this;
+ }
+
+ public TimerBuilder listener(Descriptor descriptor) {
+ addListener(descriptor);
+ return this;
+ }
+
+ public TimerBuilder listener(Descriptor descriptor, boolean propagation) {
+ addListener(descriptor, propagation);
+ return this;
+ }
+
+ public TimerBuilder listener(String expression) {
+ addListener(expression);
+ return this;
+ }
+
+ public TimerBuilder listener(String expression, boolean propagation) {
+ addListener(expression, propagation);
+ return this;
+ }
+
+ public CompositeBuilder endTimer() {
+ return compositeBuilder;
+ }
+}
Property changes on: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/builder/TimerBuilder.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ScopeInstanceImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ScopeInstanceImpl.java 2009-01-16 10:30:08 UTC (rev 3661)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ScopeInstanceImpl.java 2009-01-16 15:37:10 UTC (rev 3662)
@@ -358,35 +358,35 @@
}
// instantiate the timer
- TimerImpl timerImpl = instantiateTimer();
+ TimerImpl timer = instantiateTimer();
// create the bidirectional reference
- timerImpl.setExecution(getTimerExecution());
- timers.add(timerImpl);
+ timer.setExecution(getTimerExecution());
+ timers.add(timer);
hasTimers = true;
// setInverseReference(timerImpl);
// initialise all the timer properties
- timerImpl.setEventName(eventName);
- timerImpl.setSignalName(signalName);
+ timer.setEventName(eventName);
+ timer.setSignalName(signalName);
if (dueDate!=null) {
- timerImpl.setDueDate(dueDate);
+ timer.setDueDate(dueDate);
} else {
- timerImpl.setDueDateDescription(dueDateDescription);
+ timer.setDueDateDescription(dueDateDescription);
}
// the if is added to keep the original default
if (isExclusive!=null) {
- timerImpl.setExclusive(isExclusive);
+ timer.setExclusive(isExclusive);
}
// the if is added to keep the original default
if (retries!=null) {
- timerImpl.setRetries(retries);
+ timer.setRetries(retries);
}
// the if is added to keep the original default
if (repeat!=null) {
- timerImpl.setRepeat(repeat);
+ timer.setRepeat(repeat);
}
// get the TimerSession from the environment
@@ -400,7 +400,7 @@
}
// schedule the timer with the TimerSession
- timerSession.schedule(timerImpl);
+ timerSession.schedule(timer);
}
public boolean hasTimers() {
More information about the jbpm-commits
mailing list