From f4f1bdf44c2b42b2ff67b4d6922d07b10adcb888 Mon Sep 17 00:00:00 2001
From: floblanc <floblanc@localhost>
Date: Wed, 04 Mar 2009 16:03:05 +0000
Subject: [PATCH] Fix 3846 WorkflowElement class should provide routines to retrieve child workflow elements
---
opends/src/server/org/opends/server/workflowelement/WorkflowElement.java | 31 ++++++++++++++++++++++++++++++-
opends/src/server/org/opends/server/workflowelement/LeafWorkflowElement.java | 13 +++++++++++--
2 files changed, 41 insertions(+), 3 deletions(-)
diff --git a/opends/src/server/org/opends/server/workflowelement/LeafWorkflowElement.java b/opends/src/server/org/opends/server/workflowelement/LeafWorkflowElement.java
index b5659f8..7c697bd 100644
--- a/opends/src/server/org/opends/server/workflowelement/LeafWorkflowElement.java
+++ b/opends/src/server/org/opends/server/workflowelement/LeafWorkflowElement.java
@@ -22,12 +22,13 @@
* CDDL HEADER END
*
*
- * Copyright 2008 Sun Microsystems, Inc.
+ * Copyright 2008-2009 Sun Microsystems, Inc.
*/
package org.opends.server.workflowelement;
+import java.util.ArrayList;
import org.opends.server.admin.std.server.WorkflowElementCfg;
-
+import java.util.List;
/**
@@ -43,4 +44,12 @@
public abstract class LeafWorkflowElement <T extends WorkflowElementCfg>
extends WorkflowElement<WorkflowElementCfg>
{
+ /**
+ * {@inheritDoc}
+ */
+ public List<WorkflowElement<?>> getChildWorkflowElements() {
+ // A leaf workflow element has no child
+ return new ArrayList<WorkflowElement<?>>();
+ }
+
}
diff --git a/opends/src/server/org/opends/server/workflowelement/WorkflowElement.java b/opends/src/server/org/opends/server/workflowelement/WorkflowElement.java
index 70d9a3b..32f5fd7 100644
--- a/opends/src/server/org/opends/server/workflowelement/WorkflowElement.java
+++ b/opends/src/server/org/opends/server/workflowelement/WorkflowElement.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Copyright 2008 Sun Microsystems, Inc.
+ * Copyright 2008-2009 Sun Microsystems, Inc.
*/
package org.opends.server.workflowelement;
@@ -431,4 +431,33 @@
{
observableStatus.deleteObserver(observer);
}
+
+ /**
+ * Retrieves the list of child workflow elements, ie the
+ * WorkflowElements below this one in the topology tree.
+ *
+ * @return child workflow elements
+ */
+ public abstract List<WorkflowElement<?>> getChildWorkflowElements();
+
+ /**
+ * Checks whether the tree of workflow elements below this one
+ * contains the provided workflow element.
+ *
+ * @param element The WorkflowElement we are looking for in the topology
+ * below this object.
+ * @return boolean
+ */
+ public boolean hasChildWorkflowElement(WorkflowElement element) {
+ if (this.getChildWorkflowElements().size() == 0) {
+ return (this.equals(element));
+ }
+
+ for (WorkflowElement subElement:this.getChildWorkflowElements()) {
+ if (subElement.hasChildWorkflowElement(element)) {
+ return true;
+ }
+ }
+ return false;
+ }
}
--
Gitblit v1.10.0