[jboss-svn-commits] JBL Code SVN: r25809 - labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/event.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Mar 24 22:09:35 EDT 2009
Author: stampy88
Date: 2009-03-24 22:09:35 -0400 (Tue, 24 Mar 2009)
New Revision: 25809
Modified:
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/event/TaskEventSupport.java
Log:
Refactored rest of event support classes per JBRULES-2028
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/event/TaskEventSupport.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/event/TaskEventSupport.java 2009-03-25 01:53:31 UTC (rev 25808)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/event/TaskEventSupport.java 2009-03-25 02:09:35 UTC (rev 25809)
@@ -16,101 +16,64 @@
* limitations under the License.
*/
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.util.Collections;
-import java.util.List;
-import java.util.concurrent.CopyOnWriteArrayList;
+import org.drools.event.AbstractEventSupport;
+import java.util.Iterator;
-public class TaskEventSupport implements Externalizable {
+/**
+ * @author <a href="mailto:stampy88 at yahoo.com">dave sinclair</a>
+ */
+public class TaskEventSupport extends AbstractEventSupport<TaskEventListener> {
- private static final long serialVersionUID = 400L;
+ public void fireTaskClaimed(final long taskId, final String userId) {
+ final Iterator<TaskEventListener> iter = getEventListenersIterator();
- private List<TaskEventListener> listeners = new CopyOnWriteArrayList<TaskEventListener>();
+ if (iter.hasNext()) {
+ final TaskClaimedEvent event = new TaskClaimedEvent(taskId, userId);
- @SuppressWarnings("unchecked")
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- listeners = (List<TaskEventListener>)in.readObject();
- }
-
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(listeners);
- }
-
- public void addEventListener(final TaskEventListener listener) {
- if ( !this.listeners.contains( listener ) ) {
- this.listeners.add( listener );
+ do {
+ iter.next().taskClaimed(event);
+ } while (iter.hasNext());
}
}
- public void removeEventListener(final TaskEventListener listener) {
- this.listeners.remove( listener );
- }
+ public void fireTaskCompleted(final long taskId, final String userId) {
+ final Iterator<TaskEventListener> iter = getEventListenersIterator();
- public List<TaskEventListener> getEventListeners() {
- return Collections.unmodifiableList( this.listeners );
- }
+ if (iter.hasNext()) {
+ final TaskCompletedEvent event = new TaskCompletedEvent(taskId, userId);
- public int size() {
- return this.listeners.size();
+ do {
+ iter.next().taskCompleted(event);
+ } while (iter.hasNext());
+ }
}
- public boolean isEmpty() {
- return this.listeners.isEmpty();
- }
-
- public void fireTaskClaimed(final long taskId, final String userId) {
- if (this.listeners.isEmpty()) {
- return;
- }
+ public void fireTaskFailed(final long taskId, final String userId) {
+ final Iterator<TaskEventListener> iter = getEventListenersIterator();
- final TaskClaimedEvent event = new TaskClaimedEvent(taskId, userId);
+ if (iter.hasNext()) {
+ final TaskFailedEvent event = new TaskFailedEvent(taskId, userId);
- for (TaskEventListener listener : listeners) {
- listener.taskClaimed(event);
- }
- }
-
- public void fireTaskCompleted(final long taskId, final String userId) {
- if ( this.listeners.isEmpty() ) {
- return;
+ do {
+ iter.next().taskFailed(event);
+ } while (iter.hasNext());
}
+ }
- final TaskCompletedEvent event = new TaskCompletedEvent( taskId, userId );
-
- for ( TaskEventListener listener: listeners) {
- listener.taskCompleted( event );
- }
- }
-
- public void fireTaskFailed(final long taskId, final String userId) {
- if ( this.listeners.isEmpty() ) {
- return;
- }
-
- final TaskFailedEvent event = new TaskFailedEvent( taskId, userId );
-
- for ( TaskEventListener listener: listeners) {
- listener.taskFailed( event );
- }
- }
-
public void fireTaskSkipped(final long taskId, final String userId) {
- if ( this.listeners.isEmpty() ) {
- return;
- }
+ final Iterator<TaskEventListener> iter = getEventListenersIterator();
- final TaskSkippedEvent event = new TaskSkippedEvent( taskId, userId );
-
- for ( TaskEventListener listener: listeners) {
- listener.taskSkipped( event );
+ if (iter.hasNext()) {
+ final TaskSkippedEvent event = new TaskSkippedEvent(taskId, userId);
+
+ do {
+ iter.next().taskSkipped(event);
+ } while (iter.hasNext());
}
- }
-
+ }
+
public void reset() {
- this.listeners.clear();
+ this.clear();
}
}
\ No newline at end of file
More information about the jboss-svn-commits
mailing list