summaryrefslogtreecommitdiff
path: root/java/src/IceGrid/TreeNode/Service.java
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2005-09-27 14:57:58 +0000
committerBernard Normier <bernard@zeroc.com>2005-09-27 14:57:58 +0000
commit731b70f3de99ecc9be2137a383d087a0f51c8553 (patch)
treeafa4de6f5748a2609297a65a205107869fbb72ca /java/src/IceGrid/TreeNode/Service.java
parentFixed bug 495 - assertion on server side udp shutdown (diff)
downloadice-731b70f3de99ecc9be2137a383d087a0f51c8553.tar.bz2
ice-731b70f3de99ecc9be2137a383d087a0f51c8553.tar.xz
ice-731b70f3de99ecc9be2137a383d087a0f51c8553.zip
Service templates editing + refactoring
Diffstat (limited to 'java/src/IceGrid/TreeNode/Service.java')
-rwxr-xr-xjava/src/IceGrid/TreeNode/Service.java100
1 files changed, 56 insertions, 44 deletions
diff --git a/java/src/IceGrid/TreeNode/Service.java b/java/src/IceGrid/TreeNode/Service.java
index 187532df994..b35da57e1f2 100755
--- a/java/src/IceGrid/TreeNode/Service.java
+++ b/java/src/IceGrid/TreeNode/Service.java
@@ -66,9 +66,7 @@ class Service extends Parent
_instanceDescriptor.parameterValues = sd.parameterValues;
if(_instanceDescriptor.descriptor != null)
{
- _instanceDescriptor.descriptor.adapters = sd.descriptor.adapters;
_instanceDescriptor.descriptor.properties = sd.descriptor.properties;
- _instanceDescriptor.descriptor.dbEnvs = sd.descriptor.properties;
_instanceDescriptor.descriptor.description = sd.descriptor.description;
_instanceDescriptor.descriptor.name = sd.descriptor.name;
@@ -83,26 +81,8 @@ class Service extends Parent
public boolean destroy()
{
- if(isEphemeral() || isEditable() && _model.canUpdate())
- {
- Services services = (Services)_parent;
-
- if(isEphemeral())
- {
- services.removeChild(this, true);
- }
- else
- {
- services.removeDescriptor(_instanceDescriptor);
- getEditable().markModified();
- getApplication().applySafeUpdate();
- }
- return true;
- }
- else
- {
- return false;
- }
+ return _parent == null ? false :
+ ((ListParent)_parent).destroyChild(this);
}
public void displayProperties()
@@ -140,7 +120,7 @@ class Service extends Parent
}
else
{
- return _id;
+ return super.toString();
}
}
@@ -149,14 +129,6 @@ class Service extends Parent
return _propertiesHolder;
}
- public void unregister()
- {
- if(_adapters != null)
- {
- _adapters.unregister();
- }
- }
-
public void moveUp()
{
move(true);
@@ -167,6 +139,33 @@ class Service extends Parent
move(false);
}
+ //
+ // child == _adapters or _dbEnvs
+ //
+ public java.util.List findAllInstances(Object child)
+ {
+ assert getIndex(child) != -1;
+
+ java.util.List result = new java.util.LinkedList();
+
+ //
+ // First find all instances of the enclosing Services
+ //
+ java.util.List servicesList = _parent.getParent().findAllInstances(_parent);
+
+ //
+ // And then their children with the appropriate type
+ //
+ java.util.Iterator p = servicesList.iterator();
+ while(p.hasNext())
+ {
+ Services services = (Services)p.next();
+ result.addAll(services.findChildrenWithType(child.getClass()));
+ }
+ return result;
+ }
+
+
private void move(boolean up)
{
if(!_ephemeral)
@@ -181,9 +180,8 @@ class Service extends Parent
ServiceDescriptor serviceDescriptor,
boolean isEditable,
Utils.Resolver resolver,
- Application application,
Model model)
- throws DuplicateIdException
+ throws UpdateFailedException
{
super(name, model);
_displayString = displayString;
@@ -197,15 +195,22 @@ class Service extends Parent
boolean areChildrenEditable = _instanceDescriptor.template.length() == 0
&& isEditable;
- _adapters = new Adapters(serviceDescriptor.adapters,
- areChildrenEditable, false, resolver,
- application,
- _model);
- addChild(_adapters);
-
- _dbEnvs = new DbEnvs(serviceDescriptor.dbEnvs,
- areChildrenEditable, resolver, _model);
- addChild(_dbEnvs);
+ try
+ {
+ _adapters = new Adapters(serviceDescriptor.adapters,
+ areChildrenEditable, false, resolver,
+ _model);
+ addChild(_adapters);
+
+ _dbEnvs = new DbEnvs(serviceDescriptor.dbEnvs,
+ areChildrenEditable, resolver, _model);
+ addChild(_dbEnvs);
+ }
+ catch(UpdateFailedException e)
+ {
+ e.addParent(this);
+ throw e;
+ }
}
//
@@ -215,7 +220,7 @@ class Service extends Parent
ServiceInstanceDescriptor instanceDescriptor,
Model model)
{
- super("*" + name, model);
+ super(name, model);
_instanceDescriptor = instanceDescriptor;
_serviceDescriptor = instanceDescriptor.descriptor;
_ephemeral = true;
@@ -239,7 +244,14 @@ class Service extends Parent
boolean isEditable()
{
- return ((Services)_parent).isEditable();
+ if(_parent == null)
+ {
+ return false;
+ }
+ else
+ {
+ return ((Services)_parent).isEditable();
+ }
}
public boolean isEphemeral()