package org.eclipse.uml2.diagram.clazz.parser;
import java.util.Collections;
import java.util.List;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.uml2.uml.InstanceSpecification;
import org.eclipse.uml2.uml.UMLPackage;
import org.eclipse.uml2.uml.ValueSpecification;
public class InstanceSpecificationValueParser extends ValueSpecificationParser {
@Override
public boolean isAffectingEvent(Object notification, int flags) {
if (notification instanceof Notification) {
Object feature = ((Notification) notification).getFeature();
return UMLPackage.eINSTANCE.getInstanceSpecification_Specification().equals(feature) || super.isAffectingEvent(notification, flags);
}
return false;
}
@Override
public List<?> getSemanticElementsBeingParsed(EObject element) {
if (false == element instanceof InstanceSpecification) {
return Collections.emptyList();
}
ValueSpecification spec = ((InstanceSpecification) element).getSpecification();
return spec == null ? Collections.emptyList() : Collections.singletonList(spec);
}
@Override
protected ValueSpecification getValueSpecification(IAdaptable adaptable) {
InstanceSpecification is = (InstanceSpecification) adaptable.getAdapter(EObject.class);
return is.getSpecification();
}
}