blob: f08946627e169cd336c2d140e34390d9062f8305 [file] [log] [blame]
package org.eclipse.epf.library.realization.impl;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.epf.library.edit.realization.IRealizedElement;
import org.eclipse.epf.uma.MethodConfiguration;
import org.eclipse.epf.uma.MethodElement;
import org.eclipse.epf.uma.UmaPackage;
import org.eclipse.epf.uma.ecore.util.OppositeFeature;
public class RealizedElement implements IRealizedElement {
private MethodElement element;
private RealizationManager mgr;
private Map<EStructuralFeature, Object> featureValueMap = new HashMap<EStructuralFeature, Object>();
public RealizedElement(MethodElement element) {
this.element = element;
}
public MethodElement getElement() {
return element;
}
public String getName() {
return (String) getFeatureValue(UmaPackage.eINSTANCE.getNamedElement_Name());
}
public String getPresentationName() {
return (String) getFeatureValue(UmaPackage.eINSTANCE.getMethodElement_PresentationName());
}
public String getBriefDescription() {
return (String) getFeatureValue(UmaPackage.eINSTANCE.getMethodElement_BriefDescription());
}
protected Object getCachedValue(EStructuralFeature feature) {
return getMgr().isCaching() ? featureValueMap.get(feature) : null;
}
protected void storeCachedValue(EStructuralFeature feature, Object value) {
if (getMgr().isCaching()) {
featureValueMap.put(feature, value);
}
}
public boolean handle(Object featureOrOFeature) {
if (featureOrOFeature instanceof EStructuralFeature) {
return handleFeature((EStructuralFeature) featureOrOFeature);
}
if (featureOrOFeature instanceof OppositeFeature) {
return handleOFeature((OppositeFeature) featureOrOFeature);
}
return false;
}
public boolean handleFeature(EStructuralFeature feature) {
return false;
}
public boolean handleOFeature(OppositeFeature ofeature) {
return false;
}
public Object getFeatureValue(EStructuralFeature feature) {
throw new UnsupportedOperationException();
}
public Object getOFeatureValue(OppositeFeature ofeature) {
throw new UnsupportedOperationException();
}
protected MethodConfiguration getConfig() {
return getMgr().getConfig();
}
public RealizationManager getMgr() {
// System.out.println("getMgr(), this: " + this);
// System.out.println("getMgr(): " + mgr);
// System.out.println("");
return mgr;
}
public void setMgr(RealizationManager mgr) {
// System.out.println("setMgr(), this: " + this);
// System.out.println("setMgr(), this.mgr: " + this.mgr);
// System.out.println("setMgr(), mgr: " + mgr);
// System.out.println("");
this.mgr = mgr;
}
public void dispose() {
featureValueMap = null;
mgr = null;
}
}