You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by ms...@apache.org on 2006/07/27 23:14:24 UTC

svn commit: r426244 - /incubator/ode/scratch/pxe-iapi/bpel-dd/src/main/java/com/fs/pxe/bpel/dd/EventFilterValidator.java

Author: mszefler
Date: Thu Jul 27 14:14:23 2006
New Revision: 426244

URL: http://svn.apache.org/viewvc?rev=426244&view=rev
Log:
Added missing file: EventFilterValidator.java

Added:
    incubator/ode/scratch/pxe-iapi/bpel-dd/src/main/java/com/fs/pxe/bpel/dd/EventFilterValidator.java

Added: incubator/ode/scratch/pxe-iapi/bpel-dd/src/main/java/com/fs/pxe/bpel/dd/EventFilterValidator.java
URL: http://svn.apache.org/viewvc/incubator/ode/scratch/pxe-iapi/bpel-dd/src/main/java/com/fs/pxe/bpel/dd/EventFilterValidator.java?rev=426244&view=auto
==============================================================================
--- incubator/ode/scratch/pxe-iapi/bpel-dd/src/main/java/com/fs/pxe/bpel/dd/EventFilterValidator.java (added)
+++ incubator/ode/scratch/pxe-iapi/bpel-dd/src/main/java/com/fs/pxe/bpel/dd/EventFilterValidator.java Thu Jul 27 14:14:23 2006
@@ -0,0 +1,34 @@
+package com.fs.pxe.bpel.dd;
+
+import com.fs.pxe.bpel.o.OBase;
+import com.fs.pxe.bpel.o.OProcess;
+import com.fs.pxe.bpel.o.OScope;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Validates event filters declared on scopes.
+ */
+public class EventFilterValidator implements DDValidator {
+
+  public void validate(TDeploymentDescriptor dd, OProcess process) throws DDValidationException {
+    List<String> scopeNames = getProcessScopeNames(process);
+    if (dd.getProcessEvents() != null && dd.getProcessEvents().getScopeEventsList().size() > 0) {
+      for (TDeploymentDescriptor.ProcessEvents.ScopeEvents scopeEvents : dd.getProcessEvents().getScopeEventsList()) {
+        if (!scopeNames.contains(scopeEvents.getName()))
+          throw new DDValidationException("Event filters are declared for scope " +
+                  scopeEvents.getName() + " in your deployment descriptor but this scope " +
+                  "can't be found in the process definition.");
+      }
+    }
+  }
+
+  private List<String> getProcessScopeNames(OProcess process) {
+    ArrayList<String> names = new ArrayList<String>();
+    for (OBase oBase : process.getChildren()) {
+      if (oBase instanceof OScope) names.add(((OScope)oBase).name);
+    }
+    return names;
+  }
+}