/** * {@inheritDoc} */ @Override public <A extends Attribute> A removeAttributeInstance(Class<A> attribute) { synchronized (attributesInstancesLock) { A ai = (A) attributesInstances.remove(attribute); if (ai != null) { ai.removeObserver(attsInstancesObserver); this.notifyElementUpdated(ContextEvent.ATTINSTANCE_REMOVED, ai); } return ai; } }
/** * {@inheritDoc} */ @Override public void removeAllAttributesInstances() { synchronized (attributesInstancesLock) { if (!attributesInstances.isEmpty()) { Map<Class<? extends Attribute>, Attribute> oldAttInstances = getAllAttributesInstances(); for (Attribute ai : oldAttInstances.values()) ai.removeObserver(attsInstancesObserver); attributesInstances.clear(); this.notifyElementUpdated(ContextEvent.ALL_ATTINSTANCES_REMOVED, oldAttInstances); } } }
alter.removeAlternative(observer); if (alter.countAlternatives() == 0) { attributeInstance.removeObserver(alter); alternativeObservers.remove(attributeInstance.getId());