/**
* <copyright>
* </copyright>
*
* $Id$
*/
package com.sap.furcas.metamodel.FURCAS.TCS.impl;
import com.sap.furcas.metamodel.FURCAS.TCS.ClassTemplate;
import com.sap.furcas.metamodel.FURCAS.TCS.OperatorList;
import com.sap.furcas.metamodel.FURCAS.TCS.TCSPackage;
import com.sap.furcas.metamodel.FURCAS.TCS.TemplateModifiers;
import java.util.Collection;
import org.eclipse.emf.common.notify.Notification;
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.util.EDataTypeEList;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Class Template</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link com.sap.furcas.metamodel.FURCAS.TCS.impl.ClassTemplateImpl#getModifiers <em>Modifiers</em>}</li>
* <li>{@link com.sap.furcas.metamodel.FURCAS.TCS.impl.ClassTemplateImpl#isIsAbstract <em>Is Abstract</em>}</li>
* <li>{@link com.sap.furcas.metamodel.FURCAS.TCS.impl.ClassTemplateImpl#isIsDeep <em>Is Deep</em>}</li>
* <li>{@link com.sap.furcas.metamodel.FURCAS.TCS.impl.ClassTemplateImpl#isIsOperatored <em>Is Operatored</em>}</li>
* <li>{@link com.sap.furcas.metamodel.FURCAS.TCS.impl.ClassTemplateImpl#getOperatorList <em>Operator List</em>}</li>
* <li>{@link com.sap.furcas.metamodel.FURCAS.TCS.impl.ClassTemplateImpl#isIsMain <em>Is Main</em>}</li>
* <li>{@link com.sap.furcas.metamodel.FURCAS.TCS.impl.ClassTemplateImpl#isIsMulti <em>Is Multi</em>}</li>
* <li>{@link com.sap.furcas.metamodel.FURCAS.TCS.impl.ClassTemplateImpl#isIsNonPrimary <em>Is Non Primary</em>}</li>
* <li>{@link com.sap.furcas.metamodel.FURCAS.TCS.impl.ClassTemplateImpl#getMode <em>Mode</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public class ClassTemplateImpl extends ContextTemplateImpl implements ClassTemplate {
/**
* The cached value of the '{@link #getModifiers() <em>Modifiers</em>}' attribute list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getModifiers()
* @generated
* @ordered
*/
protected EList<TemplateModifiers> modifiers;
/**
* The default value of the '{@link #isIsAbstract() <em>Is Abstract</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isIsAbstract()
* @generated
* @ordered
*/
protected static final boolean IS_ABSTRACT_EDEFAULT = false;
/**
* The cached value of the '{@link #isIsAbstract() <em>Is Abstract</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isIsAbstract()
* @generated
* @ordered
*/
protected boolean isAbstract = IS_ABSTRACT_EDEFAULT;
/**
* The default value of the '{@link #isIsDeep() <em>Is Deep</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isIsDeep()
* @generated
* @ordered
*/
protected static final boolean IS_DEEP_EDEFAULT = false;
/**
* The cached value of the '{@link #isIsDeep() <em>Is Deep</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isIsDeep()
* @generated
* @ordered
*/
protected boolean isDeep = IS_DEEP_EDEFAULT;
/**
* The default value of the '{@link #isIsOperatored() <em>Is Operatored</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isIsOperatored()
* @generated
* @ordered
*/
protected static final boolean IS_OPERATORED_EDEFAULT = false;
/**
* The cached value of the '{@link #isIsOperatored() <em>Is Operatored</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isIsOperatored()
* @generated
* @ordered
*/
protected boolean isOperatored = IS_OPERATORED_EDEFAULT;
/**
* The cached value of the '{@link #getOperatorList() <em>Operator List</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getOperatorList()
* @generated
* @ordered
*/
protected OperatorList operatorList;
/**
* The default value of the '{@link #isIsMain() <em>Is Main</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isIsMain()
* @generated
* @ordered
*/
protected static final boolean IS_MAIN_EDEFAULT = false;
/**
* The cached value of the '{@link #isIsMain() <em>Is Main</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isIsMain()
* @generated
* @ordered
*/
protected boolean isMain = IS_MAIN_EDEFAULT;
/**
* The default value of the '{@link #isIsMulti() <em>Is Multi</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isIsMulti()
* @generated
* @ordered
*/
protected static final boolean IS_MULTI_EDEFAULT = false;
/**
* The cached value of the '{@link #isIsMulti() <em>Is Multi</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isIsMulti()
* @generated
* @ordered
*/
protected boolean isMulti = IS_MULTI_EDEFAULT;
/**
* The default value of the '{@link #isIsNonPrimary() <em>Is Non Primary</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isIsNonPrimary()
* @generated
* @ordered
*/
protected static final boolean IS_NON_PRIMARY_EDEFAULT = false;
/**
* The cached value of the '{@link #isIsNonPrimary() <em>Is Non Primary</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isIsNonPrimary()
* @generated
* @ordered
*/
protected boolean isNonPrimary = IS_NON_PRIMARY_EDEFAULT;
/**
* The default value of the '{@link #getMode() <em>Mode</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getMode()
* @generated
* @ordered
*/
protected static final String MODE_EDEFAULT = null;
/**
* The cached value of the '{@link #getMode() <em>Mode</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getMode()
* @generated
* @ordered
*/
protected String mode = MODE_EDEFAULT;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected ClassTemplateImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return TCSPackage.Literals.CLASS_TEMPLATE;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<TemplateModifiers> getModifiers() {
if (modifiers == null) {
modifiers = new EDataTypeEList<TemplateModifiers>(TemplateModifiers.class, this, TCSPackage.CLASS_TEMPLATE__MODIFIERS);
}
return modifiers;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean isIsAbstract() {
return isAbstract;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setIsAbstract(boolean newIsAbstract) {
boolean oldIsAbstract = isAbstract;
isAbstract = newIsAbstract;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, TCSPackage.CLASS_TEMPLATE__IS_ABSTRACT, oldIsAbstract, isAbstract));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean isIsDeep() {
return isDeep;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setIsDeep(boolean newIsDeep) {
boolean oldIsDeep = isDeep;
isDeep = newIsDeep;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, TCSPackage.CLASS_TEMPLATE__IS_DEEP, oldIsDeep, isDeep));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean isIsOperatored() {
return isOperatored;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setIsOperatored(boolean newIsOperatored) {
boolean oldIsOperatored = isOperatored;
isOperatored = newIsOperatored;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, TCSPackage.CLASS_TEMPLATE__IS_OPERATORED, oldIsOperatored, isOperatored));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public OperatorList getOperatorList() {
if (operatorList != null && operatorList.eIsProxy()) {
InternalEObject oldOperatorList = (InternalEObject)operatorList;
operatorList = (OperatorList)eResolveProxy(oldOperatorList);
if (operatorList != oldOperatorList) {
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.RESOLVE, TCSPackage.CLASS_TEMPLATE__OPERATOR_LIST, oldOperatorList, operatorList));
}
}
return operatorList;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public OperatorList basicGetOperatorList() {
return operatorList;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setOperatorList(OperatorList newOperatorList) {
OperatorList oldOperatorList = operatorList;
operatorList = newOperatorList;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, TCSPackage.CLASS_TEMPLATE__OPERATOR_LIST, oldOperatorList, operatorList));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean isIsMain() {
return isMain;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setIsMain(boolean newIsMain) {
boolean oldIsMain = isMain;
isMain = newIsMain;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, TCSPackage.CLASS_TEMPLATE__IS_MAIN, oldIsMain, isMain));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean isIsMulti() {
return isMulti;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setIsMulti(boolean newIsMulti) {
boolean oldIsMulti = isMulti;
isMulti = newIsMulti;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, TCSPackage.CLASS_TEMPLATE__IS_MULTI, oldIsMulti, isMulti));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean isIsNonPrimary() {
return isNonPrimary;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setIsNonPrimary(boolean newIsNonPrimary) {
boolean oldIsNonPrimary = isNonPrimary;
isNonPrimary = newIsNonPrimary;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, TCSPackage.CLASS_TEMPLATE__IS_NON_PRIMARY, oldIsNonPrimary, isNonPrimary));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getMode() {
return mode;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setMode(String newMode) {
String oldMode = mode;
mode = newMode;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, TCSPackage.CLASS_TEMPLATE__MODE, oldMode, mode));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case TCSPackage.CLASS_TEMPLATE__MODIFIERS:
return getModifiers();
case TCSPackage.CLASS_TEMPLATE__IS_ABSTRACT:
return isIsAbstract();
case TCSPackage.CLASS_TEMPLATE__IS_DEEP:
return isIsDeep();
case TCSPackage.CLASS_TEMPLATE__IS_OPERATORED:
return isIsOperatored();
case TCSPackage.CLASS_TEMPLATE__OPERATOR_LIST:
if (resolve) return getOperatorList();
return basicGetOperatorList();
case TCSPackage.CLASS_TEMPLATE__IS_MAIN:
return isIsMain();
case TCSPackage.CLASS_TEMPLATE__IS_MULTI:
return isIsMulti();
case TCSPackage.CLASS_TEMPLATE__IS_NON_PRIMARY:
return isIsNonPrimary();
case TCSPackage.CLASS_TEMPLATE__MODE:
return getMode();
}
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 TCSPackage.CLASS_TEMPLATE__MODIFIERS:
getModifiers().clear();
getModifiers().addAll((Collection<? extends TemplateModifiers>)newValue);
return;
case TCSPackage.CLASS_TEMPLATE__IS_ABSTRACT:
setIsAbstract((Boolean)newValue);
return;
case TCSPackage.CLASS_TEMPLATE__IS_DEEP:
setIsDeep((Boolean)newValue);
return;
case TCSPackage.CLASS_TEMPLATE__IS_OPERATORED:
setIsOperatored((Boolean)newValue);
return;
case TCSPackage.CLASS_TEMPLATE__OPERATOR_LIST:
setOperatorList((OperatorList)newValue);
return;
case TCSPackage.CLASS_TEMPLATE__IS_MAIN:
setIsMain((Boolean)newValue);
return;
case TCSPackage.CLASS_TEMPLATE__IS_MULTI:
setIsMulti((Boolean)newValue);
return;
case TCSPackage.CLASS_TEMPLATE__IS_NON_PRIMARY:
setIsNonPrimary((Boolean)newValue);
return;
case TCSPackage.CLASS_TEMPLATE__MODE:
setMode((String)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case TCSPackage.CLASS_TEMPLATE__MODIFIERS:
getModifiers().clear();
return;
case TCSPackage.CLASS_TEMPLATE__IS_ABSTRACT:
setIsAbstract(IS_ABSTRACT_EDEFAULT);
return;
case TCSPackage.CLASS_TEMPLATE__IS_DEEP:
setIsDeep(IS_DEEP_EDEFAULT);
return;
case TCSPackage.CLASS_TEMPLATE__IS_OPERATORED:
setIsOperatored(IS_OPERATORED_EDEFAULT);
return;
case TCSPackage.CLASS_TEMPLATE__OPERATOR_LIST:
setOperatorList((OperatorList)null);
return;
case TCSPackage.CLASS_TEMPLATE__IS_MAIN:
setIsMain(IS_MAIN_EDEFAULT);
return;
case TCSPackage.CLASS_TEMPLATE__IS_MULTI:
setIsMulti(IS_MULTI_EDEFAULT);
return;
case TCSPackage.CLASS_TEMPLATE__IS_NON_PRIMARY:
setIsNonPrimary(IS_NON_PRIMARY_EDEFAULT);
return;
case TCSPackage.CLASS_TEMPLATE__MODE:
setMode(MODE_EDEFAULT);
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case TCSPackage.CLASS_TEMPLATE__MODIFIERS:
return modifiers != null && !modifiers.isEmpty();
case TCSPackage.CLASS_TEMPLATE__IS_ABSTRACT:
return isAbstract != IS_ABSTRACT_EDEFAULT;
case TCSPackage.CLASS_TEMPLATE__IS_DEEP:
return isDeep != IS_DEEP_EDEFAULT;
case TCSPackage.CLASS_TEMPLATE__IS_OPERATORED:
return isOperatored != IS_OPERATORED_EDEFAULT;
case TCSPackage.CLASS_TEMPLATE__OPERATOR_LIST:
return operatorList != null;
case TCSPackage.CLASS_TEMPLATE__IS_MAIN:
return isMain != IS_MAIN_EDEFAULT;
case TCSPackage.CLASS_TEMPLATE__IS_MULTI:
return isMulti != IS_MULTI_EDEFAULT;
case TCSPackage.CLASS_TEMPLATE__IS_NON_PRIMARY:
return isNonPrimary != IS_NON_PRIMARY_EDEFAULT;
case TCSPackage.CLASS_TEMPLATE__MODE:
return MODE_EDEFAULT == null ? mode != null : !MODE_EDEFAULT.equals(mode);
}
return super.eIsSet(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public String toString() {
if (eIsProxy()) return super.toString();
StringBuffer result = new StringBuffer(super.toString());
result.append(" (modifiers: ");
result.append(modifiers);
result.append(", isAbstract: ");
result.append(isAbstract);
result.append(", isDeep: ");
result.append(isDeep);
result.append(", isOperatored: ");
result.append(isOperatored);
result.append(", isMain: ");
result.append(isMain);
result.append(", isMulti: ");
result.append(isMulti);
result.append(", isNonPrimary: ");
result.append(isNonPrimary);
result.append(", mode: ");
result.append(mode);
result.append(')');
return result.toString();
}
} //ClassTemplateImpl