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;
+ }
+}