[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