/**
* <copyright>
* </copyright>
*
* $Id$
*/
package org.eclipse.gmf.codegen.gmfgen.impl;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
import org.eclipse.emf.codegen.util.CodeGenUtil;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.impl.EObjectImpl;
import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
import org.eclipse.emf.ecore.util.EObjectResolvingEList;
import org.eclipse.emf.ecore.util.InternalEList;
import org.eclipse.gmf.codegen.gmfgen.Behaviour;
import org.eclipse.gmf.codegen.gmfgen.ElementType;
import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage;
import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
import org.eclipse.gmf.codegen.gmfgen.SharedBehaviour;
import org.eclipse.gmf.codegen.gmfgen.Viewmap;
import org.eclipse.gmf.codegen.gmfgen.ViewmapLayoutType;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Gen Common Base</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenCommonBaseImpl#getDiagramRunTimeClass <em>Diagram Run Time Class</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenCommonBaseImpl#getVisualID <em>Visual ID</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenCommonBaseImpl#getElementType <em>Element Type</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenCommonBaseImpl#getEditPartClassName <em>Edit Part Class Name</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenCommonBaseImpl#getItemSemanticEditPolicyClassName <em>Item Semantic Edit Policy Class Name</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenCommonBaseImpl#getNotationViewFactoryClassName <em>Notation View Factory Class Name</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenCommonBaseImpl#getViewmap <em>Viewmap</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenCommonBaseImpl#getStyles <em>Styles</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenCommonBaseImpl#getBehaviour <em>Behaviour</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenCommonBaseImpl#isSansDomain <em>Sans Domain</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public abstract class GenCommonBaseImpl extends EObjectImpl implements GenCommonBase {
/**
* The cached value of the '{@link #getDiagramRunTimeClass() <em>Diagram Run Time Class</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getDiagramRunTimeClass()
* @generated
* @ordered
*/
protected GenClass diagramRunTimeClass;
/**
* The default value of the '{@link #getVisualID() <em>Visual ID</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getVisualID()
* @generated
* @ordered
*/
protected static final int VISUAL_ID_EDEFAULT = 0;
/**
* The cached value of the '{@link #getVisualID() <em>Visual ID</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getVisualID()
* @generated
* @ordered
*/
protected int visualID = VISUAL_ID_EDEFAULT;
/**
* The cached value of the '{@link #getElementType() <em>Element Type</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getElementType()
* @generated
* @ordered
*/
protected ElementType elementType;
/**
* The default value of the '{@link #getEditPartClassName() <em>Edit Part Class Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getEditPartClassName()
* @generated
* @ordered
*/
protected static final String EDIT_PART_CLASS_NAME_EDEFAULT = null;
/**
* The cached value of the '{@link #getEditPartClassName() <em>Edit Part Class Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getEditPartClassName()
* @generated
* @ordered
*/
protected String editPartClassName = EDIT_PART_CLASS_NAME_EDEFAULT;
/**
* The default value of the '{@link #getItemSemanticEditPolicyClassName() <em>Item Semantic Edit Policy Class Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getItemSemanticEditPolicyClassName()
* @generated
* @ordered
*/
protected static final String ITEM_SEMANTIC_EDIT_POLICY_CLASS_NAME_EDEFAULT = null;
/**
* The cached value of the '{@link #getItemSemanticEditPolicyClassName() <em>Item Semantic Edit Policy Class Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getItemSemanticEditPolicyClassName()
* @generated
* @ordered
*/
protected String itemSemanticEditPolicyClassName = ITEM_SEMANTIC_EDIT_POLICY_CLASS_NAME_EDEFAULT;
/**
* The default value of the '{@link #getNotationViewFactoryClassName() <em>Notation View Factory Class Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getNotationViewFactoryClassName()
* @generated
* @ordered
*/
protected static final String NOTATION_VIEW_FACTORY_CLASS_NAME_EDEFAULT = null;
/**
* The cached value of the '{@link #getNotationViewFactoryClassName() <em>Notation View Factory Class Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getNotationViewFactoryClassName()
* @generated
* @ordered
*/
protected String notationViewFactoryClassName = NOTATION_VIEW_FACTORY_CLASS_NAME_EDEFAULT;
/**
* The cached value of the '{@link #getViewmap() <em>Viewmap</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getViewmap()
* @generated
* @ordered
*/
protected Viewmap viewmap;
/**
* The cached value of the '{@link #getStyles() <em>Styles</em>}' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getStyles()
* @generated
* @ordered
*/
protected EList<GenClass> styles;
/**
* The cached value of the '{@link #getBehaviour() <em>Behaviour</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getBehaviour()
* @generated
* @ordered
*/
protected EList<Behaviour> behaviour;
/**
* The default value of the '{@link #isSansDomain() <em>Sans Domain</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isSansDomain()
* @generated
* @ordered
*/
protected static final boolean SANS_DOMAIN_EDEFAULT = false;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected GenCommonBaseImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return GMFGenPackage.eINSTANCE.getGenCommonBase();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public GenClass getDiagramRunTimeClass() {
if (diagramRunTimeClass != null && diagramRunTimeClass.eIsProxy()) {
InternalEObject oldDiagramRunTimeClass = (InternalEObject)diagramRunTimeClass;
diagramRunTimeClass = (GenClass)eResolveProxy(oldDiagramRunTimeClass);
if (diagramRunTimeClass != oldDiagramRunTimeClass) {
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.RESOLVE, GMFGenPackage.GEN_COMMON_BASE__DIAGRAM_RUN_TIME_CLASS, oldDiagramRunTimeClass, diagramRunTimeClass));
}
}
return diagramRunTimeClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public GenClass basicGetDiagramRunTimeClass() {
return diagramRunTimeClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setDiagramRunTimeClass(GenClass newDiagramRunTimeClass) {
GenClass oldDiagramRunTimeClass = diagramRunTimeClass;
diagramRunTimeClass = newDiagramRunTimeClass;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, GMFGenPackage.GEN_COMMON_BASE__DIAGRAM_RUN_TIME_CLASS, oldDiagramRunTimeClass, diagramRunTimeClass));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public int getVisualID() {
return visualID;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setVisualID(int newVisualID) {
int oldVisualID = visualID;
visualID = newVisualID;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, GMFGenPackage.GEN_COMMON_BASE__VISUAL_ID, oldVisualID, visualID));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ElementType getElementType() {
return elementType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public NotificationChain basicSetElementType(ElementType newElementType, NotificationChain msgs) {
ElementType oldElementType = elementType;
elementType = newElementType;
if (eNotificationRequired()) {
ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, GMFGenPackage.GEN_COMMON_BASE__ELEMENT_TYPE, oldElementType, newElementType);
if (msgs == null) msgs = notification; else msgs.add(notification);
}
return msgs;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setElementType(ElementType newElementType) {
if (newElementType != elementType) {
NotificationChain msgs = null;
if (elementType != null)
msgs = ((InternalEObject)elementType).eInverseRemove(this, GMFGenPackage.ELEMENT_TYPE__DIAGRAM_ELEMENT, ElementType.class, msgs);
if (newElementType != null)
msgs = ((InternalEObject)newElementType).eInverseAdd(this, GMFGenPackage.ELEMENT_TYPE__DIAGRAM_ELEMENT, ElementType.class, msgs);
msgs = basicSetElementType(newElementType, msgs);
if (msgs != null) msgs.dispatch();
}
else if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, GMFGenPackage.GEN_COMMON_BASE__ELEMENT_TYPE, newElementType, newElementType));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getEditPartClassNameGen() {
return editPartClassName;
}
public String getEditPartClassName() {
return getValidClassName(getEditPartClassNameGen(), this, EDIT_PART_SUFFIX);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setEditPartClassName(String newEditPartClassName) {
String oldEditPartClassName = editPartClassName;
editPartClassName = newEditPartClassName;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, GMFGenPackage.GEN_COMMON_BASE__EDIT_PART_CLASS_NAME, oldEditPartClassName, editPartClassName));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getItemSemanticEditPolicyClassNameGen() {
return itemSemanticEditPolicyClassName;
}
public String getItemSemanticEditPolicyClassName() {
return getValidClassName(getItemSemanticEditPolicyClassNameGen(), this, ITEM_SEMANTIC_EDIT_POLICY_SUFFIX);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setItemSemanticEditPolicyClassName(String newItemSemanticEditPolicyClassName) {
String oldItemSemanticEditPolicyClassName = itemSemanticEditPolicyClassName;
itemSemanticEditPolicyClassName = newItemSemanticEditPolicyClassName;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, GMFGenPackage.GEN_COMMON_BASE__ITEM_SEMANTIC_EDIT_POLICY_CLASS_NAME, oldItemSemanticEditPolicyClassName, itemSemanticEditPolicyClassName));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getNotationViewFactoryClassNameGen() {
return notationViewFactoryClassName;
}
public String getNotationViewFactoryClassName() {
return getValidClassName(getNotationViewFactoryClassNameGen(), this, NOTATION_VIEW_FACTORY_SUFFIX);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setNotationViewFactoryClassName(String newNotationViewFactoryClassName) {
String oldNotationViewFactoryClassName = notationViewFactoryClassName;
notationViewFactoryClassName = newNotationViewFactoryClassName;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, GMFGenPackage.GEN_COMMON_BASE__NOTATION_VIEW_FACTORY_CLASS_NAME, oldNotationViewFactoryClassName, notationViewFactoryClassName));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Viewmap getViewmap() {
return viewmap;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public NotificationChain basicSetViewmap(Viewmap newViewmap, NotificationChain msgs) {
Viewmap oldViewmap = viewmap;
viewmap = newViewmap;
if (eNotificationRequired()) {
ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, GMFGenPackage.GEN_COMMON_BASE__VIEWMAP, oldViewmap, newViewmap);
if (msgs == null) msgs = notification; else msgs.add(notification);
}
return msgs;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setViewmap(Viewmap newViewmap) {
if (newViewmap != viewmap) {
NotificationChain msgs = null;
if (viewmap != null)
msgs = ((InternalEObject)viewmap).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - GMFGenPackage.GEN_COMMON_BASE__VIEWMAP, null, msgs);
if (newViewmap != null)
msgs = ((InternalEObject)newViewmap).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - GMFGenPackage.GEN_COMMON_BASE__VIEWMAP, null, msgs);
msgs = basicSetViewmap(newViewmap, msgs);
if (msgs != null) msgs.dispatch();
}
else if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, GMFGenPackage.GEN_COMMON_BASE__VIEWMAP, newViewmap, newViewmap));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<GenClass> getStyles() {
if (styles == null) {
styles = new EObjectResolvingEList<GenClass>(GenClass.class, this, GMFGenPackage.GEN_COMMON_BASE__STYLES);
}
return styles;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<Behaviour> getBehaviour() {
if (behaviour == null) {
behaviour = new EObjectContainmentWithInverseEList<Behaviour>(Behaviour.class, this, GMFGenPackage.GEN_COMMON_BASE__BEHAVIOUR, GMFGenPackage.BEHAVIOUR__SUBJECT);
}
return behaviour;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
public abstract boolean isSansDomain();
static boolean isEmpty(String s) {
return s == null || s.trim().length() == 0;
}
static String getValidClassName(String s) {
assert !isEmpty(s);
s = CodeGenUtil.validJavaIdentifier(s);
return Character.toUpperCase(s.charAt(0)) + s.substring(1);
}
static String getValidClassName(String s, GenCommonBase genElement, String suffixPart) {
assert genElement != null;
assert suffixPart != null;
if (isEmpty(s)) {
String prefixPart = genElement.getClassNamePrefix();
if (isEmpty(prefixPart)) {
prefixPart = DEFAULT_CLASS_NAME_PREFIX;
}
s = prefixPart + suffixPart;
}
return s;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
public abstract String getClassNamePrefix();
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
public final String getClassNameSuffux() {
return "";
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
public final String getUniqueIdentifier() {
String prefixPart = isEmpty(getClassNamePrefix()) ? DEFAULT_CLASS_NAME_PREFIX : getClassNamePrefix();
return prefixPart + '_' + getVisualID();
}
/**
* @generated NOT
*/
public ViewmapLayoutType getLayoutType() {
Viewmap viewmap = getViewmap();
return viewmap == null ? ViewmapLayoutType.UNKNOWN_LITERAL : viewmap.getLayoutType();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@SuppressWarnings("unchecked")
@Override
public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
case GMFGenPackage.GEN_COMMON_BASE__ELEMENT_TYPE:
if (elementType != null)
msgs = ((InternalEObject)elementType).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - GMFGenPackage.GEN_COMMON_BASE__ELEMENT_TYPE, null, msgs);
return basicSetElementType((ElementType)otherEnd, msgs);
case GMFGenPackage.GEN_COMMON_BASE__BEHAVIOUR:
return ((InternalEList<InternalEObject>)(InternalEList<?>)getBehaviour()).basicAdd(otherEnd, msgs);
}
return super.eInverseAdd(otherEnd, featureID, msgs);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
case GMFGenPackage.GEN_COMMON_BASE__ELEMENT_TYPE:
return basicSetElementType(null, msgs);
case GMFGenPackage.GEN_COMMON_BASE__VIEWMAP:
return basicSetViewmap(null, msgs);
case GMFGenPackage.GEN_COMMON_BASE__BEHAVIOUR:
return ((InternalEList<?>)getBehaviour()).basicRemove(otherEnd, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case GMFGenPackage.GEN_COMMON_BASE__DIAGRAM_RUN_TIME_CLASS:
if (resolve) return getDiagramRunTimeClass();
return basicGetDiagramRunTimeClass();
case GMFGenPackage.GEN_COMMON_BASE__VISUAL_ID:
return getVisualID();
case GMFGenPackage.GEN_COMMON_BASE__ELEMENT_TYPE:
return getElementType();
case GMFGenPackage.GEN_COMMON_BASE__EDIT_PART_CLASS_NAME:
return getEditPartClassName();
case GMFGenPackage.GEN_COMMON_BASE__ITEM_SEMANTIC_EDIT_POLICY_CLASS_NAME:
return getItemSemanticEditPolicyClassName();
case GMFGenPackage.GEN_COMMON_BASE__NOTATION_VIEW_FACTORY_CLASS_NAME:
return getNotationViewFactoryClassName();
case GMFGenPackage.GEN_COMMON_BASE__VIEWMAP:
return getViewmap();
case GMFGenPackage.GEN_COMMON_BASE__STYLES:
return getStyles();
case GMFGenPackage.GEN_COMMON_BASE__BEHAVIOUR:
return getBehaviour();
case GMFGenPackage.GEN_COMMON_BASE__SANS_DOMAIN:
return isSansDomain();
}
return super.eGet(featureID, resolve, coreType);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@SuppressWarnings("unchecked")
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
case GMFGenPackage.GEN_COMMON_BASE__DIAGRAM_RUN_TIME_CLASS:
setDiagramRunTimeClass((GenClass)newValue);
return;
case GMFGenPackage.GEN_COMMON_BASE__VISUAL_ID:
setVisualID((Integer)newValue);
return;
case GMFGenPackage.GEN_COMMON_BASE__ELEMENT_TYPE:
setElementType((ElementType)newValue);
return;
case GMFGenPackage.GEN_COMMON_BASE__EDIT_PART_CLASS_NAME:
setEditPartClassName((String)newValue);
return;
case GMFGenPackage.GEN_COMMON_BASE__ITEM_SEMANTIC_EDIT_POLICY_CLASS_NAME:
setItemSemanticEditPolicyClassName((String)newValue);
return;
case GMFGenPackage.GEN_COMMON_BASE__NOTATION_VIEW_FACTORY_CLASS_NAME:
setNotationViewFactoryClassName((String)newValue);
return;
case GMFGenPackage.GEN_COMMON_BASE__VIEWMAP:
setViewmap((Viewmap)newValue);
return;
case GMFGenPackage.GEN_COMMON_BASE__STYLES:
getStyles().clear();
getStyles().addAll((Collection<? extends GenClass>)newValue);
return;
case GMFGenPackage.GEN_COMMON_BASE__BEHAVIOUR:
getBehaviour().clear();
getBehaviour().addAll((Collection<? extends Behaviour>)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case GMFGenPackage.GEN_COMMON_BASE__DIAGRAM_RUN_TIME_CLASS:
setDiagramRunTimeClass((GenClass)null);
return;
case GMFGenPackage.GEN_COMMON_BASE__VISUAL_ID:
setVisualID(VISUAL_ID_EDEFAULT);
return;
case GMFGenPackage.GEN_COMMON_BASE__ELEMENT_TYPE:
setElementType((ElementType)null);
return;
case GMFGenPackage.GEN_COMMON_BASE__EDIT_PART_CLASS_NAME:
setEditPartClassName(EDIT_PART_CLASS_NAME_EDEFAULT);
return;
case GMFGenPackage.GEN_COMMON_BASE__ITEM_SEMANTIC_EDIT_POLICY_CLASS_NAME:
setItemSemanticEditPolicyClassName(ITEM_SEMANTIC_EDIT_POLICY_CLASS_NAME_EDEFAULT);
return;
case GMFGenPackage.GEN_COMMON_BASE__NOTATION_VIEW_FACTORY_CLASS_NAME:
setNotationViewFactoryClassName(NOTATION_VIEW_FACTORY_CLASS_NAME_EDEFAULT);
return;
case GMFGenPackage.GEN_COMMON_BASE__VIEWMAP:
setViewmap((Viewmap)null);
return;
case GMFGenPackage.GEN_COMMON_BASE__STYLES:
getStyles().clear();
return;
case GMFGenPackage.GEN_COMMON_BASE__BEHAVIOUR:
getBehaviour().clear();
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case GMFGenPackage.GEN_COMMON_BASE__DIAGRAM_RUN_TIME_CLASS:
return diagramRunTimeClass != null;
case GMFGenPackage.GEN_COMMON_BASE__VISUAL_ID:
return visualID != VISUAL_ID_EDEFAULT;
case GMFGenPackage.GEN_COMMON_BASE__ELEMENT_TYPE:
return elementType != null;
case GMFGenPackage.GEN_COMMON_BASE__EDIT_PART_CLASS_NAME:
return EDIT_PART_CLASS_NAME_EDEFAULT == null ? editPartClassName != null : !EDIT_PART_CLASS_NAME_EDEFAULT.equals(editPartClassName);
case GMFGenPackage.GEN_COMMON_BASE__ITEM_SEMANTIC_EDIT_POLICY_CLASS_NAME:
return ITEM_SEMANTIC_EDIT_POLICY_CLASS_NAME_EDEFAULT == null ? itemSemanticEditPolicyClassName != null : !ITEM_SEMANTIC_EDIT_POLICY_CLASS_NAME_EDEFAULT.equals(itemSemanticEditPolicyClassName);
case GMFGenPackage.GEN_COMMON_BASE__NOTATION_VIEW_FACTORY_CLASS_NAME:
return NOTATION_VIEW_FACTORY_CLASS_NAME_EDEFAULT == null ? notationViewFactoryClassName != null : !NOTATION_VIEW_FACTORY_CLASS_NAME_EDEFAULT.equals(notationViewFactoryClassName);
case GMFGenPackage.GEN_COMMON_BASE__VIEWMAP:
return viewmap != null;
case GMFGenPackage.GEN_COMMON_BASE__STYLES:
return styles != null && !styles.isEmpty();
case GMFGenPackage.GEN_COMMON_BASE__BEHAVIOUR:
return behaviour != null && !behaviour.isEmpty();
case GMFGenPackage.GEN_COMMON_BASE__SANS_DOMAIN:
return isSansDomain() != SANS_DOMAIN_EDEFAULT;
}
return super.eIsSet(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
public String getEditPartQualifiedClassName() {
return getDiagram().getEditPartsPackageName() + '.' + getEditPartClassName();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
public String getItemSemanticEditPolicyQualifiedClassName() {
return getDiagram().getEditPoliciesPackageName() + '.' + getItemSemanticEditPolicyClassName();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
public String getNotationViewFactoryQualifiedClassName() {
return getDiagram().getNotationViewFactoriesPackageName() + '.' + getNotationViewFactoryClassName();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
public abstract GenDiagram getDiagram();
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public String toString() {
if (eIsProxy()) return super.toString();
StringBuffer result = new StringBuffer(super.toString());
result.append(" (visualID: ");
result.append(visualID);
result.append(", editPartClassName: ");
result.append(editPartClassName);
result.append(", itemSemanticEditPolicyClassName: ");
result.append(itemSemanticEditPolicyClassName);
result.append(", notationViewFactoryClassName: ");
result.append(notationViewFactoryClassName);
result.append(')');
return result.toString();
}
protected static String asJavaConstantName(String name) {
name = name.toUpperCase();
return CodeGenUtil.capName(CodeGenUtil.validJavaIdentifier(name));
}
public <T extends Behaviour> List<T> getBehaviour(Class<T> behaviourClass) {
ArrayList<T> rv = new ArrayList<T>(getBehaviour().size());
for (Iterator<Behaviour> it = getBehaviour().iterator(); it.hasNext(); ) {
Object next = it.next();
if (next instanceof SharedBehaviour) {
next = ((SharedBehaviour) next).getDelegate();
}
if (behaviourClass.isInstance(next)) {
@SuppressWarnings("unchecked")
T tt = (T) next;
rv.add(tt);
}
}
return rv;
}
} //GenCommonBaseImpl