Repository: stratos
Updated Branches:
  refs/heads/4.0.0-grouping ae08052c9 -> 2ca08d461


adding a method to get Group by alias in an Application recursively


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/2ca08d46
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/2ca08d46
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/2ca08d46

Branch: refs/heads/4.0.0-grouping
Commit: 2ca08d46112bf311dfb6bb61b91dee72e530c44f
Parents: ae08052
Author: Isuru Haththotuwa <[email protected]>
Authored: Wed Sep 17 14:50:44 2014 +0530
Committer: Isuru Haththotuwa <[email protected]>
Committed: Wed Sep 17 14:50:44 2014 +0530

----------------------------------------------------------------------
 .../messaging/domain/topology/Application.java  | 23 ++++++++++++++++++++
 .../messaging/domain/topology/Group.java        | 23 ++++++++++++++++++++
 .../domain/topology/ParentBehavior.java         |  2 ++
 3 files changed, 48 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/2ca08d46/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Application.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Application.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Application.java
index 1af8e3e..035b52a 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Application.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Application.java
@@ -65,6 +65,29 @@ public class Application implements ParentBehavior {
     }
 
     @Override
+    public Group getGroupRecursively(String groupAlias) {
+
+        return travereAndCheckRecursively(groupMap.values(), groupAlias);
+    }
+
+    private Group travereAndCheckRecursively (Collection<Group> groups, String 
groupAlias) {
+
+        for (Group group : groups) {
+            // check if alias is equal, if so, return
+            if (groupAlias.equals(group.getAlias())) {
+                return group;
+            } else {
+                // check if this Group has nested sub Groups. If so, traverse 
them as well
+                if (group.getGroups() != null) {
+                    return travereAndCheckRecursively(group.getGroups(), 
groupAlias);
+                }
+            }
+        }
+
+        return null;
+    }
+
+    @Override
     public Collection<Group> getGroups() {
         return groupMap.values();
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/2ca08d46/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Group.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Group.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Group.java
index 1d5244e..8640aca 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Group.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Group.java
@@ -67,6 +67,29 @@ public class Group implements ParentBehavior {
     }
 
     @Override
+    public Group getGroupRecursively(String groupAlias) {
+
+        return travereAndCheckRecursively(groupMap.values(), groupAlias);
+    }
+
+    private Group travereAndCheckRecursively (Collection<Group> groups, String 
groupAlias) {
+
+        for (Group group : groups) {
+            // check if alias is equal, if so, return
+            if (groupAlias.equals(group.getAlias())) {
+                return group;
+            } else {
+                // check if this Group has nested sub Groups. If so, traverse 
them as well
+                if (group.getGroups() != null) {
+                    return travereAndCheckRecursively(group.getGroups(), 
groupAlias);
+                }
+            }
+        }
+
+        return null;
+    }
+
+    @Override
     public Collection<Group> getGroups() {
         return groupMap.values();
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/2ca08d46/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/ParentBehavior.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/ParentBehavior.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/ParentBehavior.java
index 4daaa27..99a626b 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/ParentBehavior.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/ParentBehavior.java
@@ -31,6 +31,8 @@ public interface ParentBehavior extends Serializable {
 
     public Group getGroup (String groupName);
 
+    public Group getGroupRecursively (String groupAlias);
+
     public Collection<Group> getGroups ();
 
     public void setDependencyOrder (DependencyOrder dependencyOrder);

Reply via email to