blob: 04477c2fb29582bade97cd4b811df2428a19e4d7 [file] [log] [blame]
package org.eclipse.epf.library.edit.meta.internal;
import org.eclipse.epf.library.edit.meta.IMetaDef;
import org.eclipse.epf.library.edit.meta.TypeDefException;
import org.eclipse.epf.uma.MethodElement;
import org.eclipse.epf.uma.ecore.util.OppositeFeature;
import org.eclipse.epf.uma.util.ExtendedOpposite;
import org.eclipse.epf.uma.util.ExtendedReference;
import org.eclipse.epf.uma.util.MetaElement;
import org.w3c.dom.Element;
public class ExtendedOppositeImpl extends MetaElementImpl implements ExtendedOpposite {
private boolean publish;
private OppositeFeature oFeature;
public ExtendedOppositeImpl(MetaElement parent) {
super(parent);
}
public ExtendedReference getTargetReference() {
return (ExtendedReference) getParent();
}
public void parseElement(Element element) throws TypeDefException {
super.parseElement(element);
if (element == null) {
return;
}
if (super.publish()) { //Default value for super is true, but we want it to be false here
String str = element.getAttribute(IMetaDef.publish);
publish = str == null ? true : Boolean.parseBoolean(str.trim());
}
}
public boolean publish() {
return publish;
}
public OppositeFeature getOFeature() {
if (oFeature == null) {
ExtendedReference eRef = getTargetReference();
if (eRef != null) {
oFeature = new OppositeFeature(MethodElement.class, getName(), eRef.getReference(), true);
}
}
return oFeature;
}
}