/** * set the value, update apform and the platform, notify managers and propagates to the members, * recursively * * @param com the component on which ot set the attribute * @param attr attribute name * @param value attribute value */ private void propagate(String attr, Object value) { if (value == null) { return; } Object oldValue = get(attr); if (oldValue != null && oldValue.equals(value.toString())) { return; } // Change value put(attr, value); // Notify the execution platform if (get(attr) == value) { getApformComponent().setProperty(attr, value.toString()); } /* * notify property managers */ if (oldValue == null) { ApamManagers.notifyAttributeAdded(this, attr, value.toString()); } else { ApamManagers.notifyAttributeChanged(this, attr, value.toString(), oldValue.toString()); } // Propagate to members recursively for (Component member : getMembers()) { ((ComponentImpl) member).propagate(attr, value); } }