summaryrefslogtreecommitdiff
path: root/java/src/IceGrid/TreeNode/Node.java
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2005-09-20 23:46:57 +0000
committerBernard Normier <bernard@zeroc.com>2005-09-20 23:46:57 +0000
commit9ab49898e47f7dbccff8b95d84bfdd2a6fa73db6 (patch)
tree745f5986b4e6b5a1a7436678971fc21f34afc417 /java/src/IceGrid/TreeNode/Node.java
parentBug 467. (diff)
downloadice-9ab49898e47f7dbccff8b95d84bfdd2a6fa73db6.tar.bz2
ice-9ab49898e47f7dbccff8b95d84bfdd2a6fa73db6.tar.xz
ice-9ab49898e47f7dbccff8b95d84bfdd2a6fa73db6.zip
It's now possible to edit/add/remove services (but not service instances or
templates)
Diffstat (limited to 'java/src/IceGrid/TreeNode/Node.java')
-rwxr-xr-xjava/src/IceGrid/TreeNode/Node.java51
1 files changed, 48 insertions, 3 deletions
diff --git a/java/src/IceGrid/TreeNode/Node.java b/java/src/IceGrid/TreeNode/Node.java
index b4f67e3fa37..e8ef087755d 100755
--- a/java/src/IceGrid/TreeNode/Node.java
+++ b/java/src/IceGrid/TreeNode/Node.java
@@ -552,9 +552,13 @@ class Node extends EditableParent
server.setParent(this);
}
}
- //
- // Otherwise this template-instance will most likely be deleted
- //
+ else
+ {
+ //
+ // The child will be deleted through purgeChildren, and the descriptor
+ // will be deleted (later) through cascadeDeleteServerInstance
+ //
+ }
}
//
@@ -596,6 +600,47 @@ class Node extends EditableParent
purgeChildren(serverIdSet);
}
+ void cascadeDeleteServerInstance(String templateId)
+ {
+ if(_descriptor == null)
+ {
+ //
+ // Nothing to do
+ //
+ return;
+ }
+
+ java.util.Iterator p = _descriptor.serverInstances.iterator();
+ while(p.hasNext())
+ {
+ ServerInstanceDescriptor instanceDescriptor =
+ (ServerInstanceDescriptor)p.next();
+
+ if(instanceDescriptor.template.equals(templateId))
+ {
+ p.remove();
+ }
+ }
+ }
+
+ void cascadeDeleteServiceInstance(String templateId)
+ {
+ if(_descriptor == null)
+ {
+ //
+ // Nothing to do
+ //
+ return;
+ }
+
+ java.util.Iterator p = _children.iterator();
+ while(p.hasNext())
+ {
+ Server server = (Server)p.next();
+ server.cascadeDeleteServiceInstance(templateId);
+ }
+ }
+
private NodeDescriptor _descriptor;
private Utils.Resolver _resolver;