blob: 09ee4a3b83cd6accd0a1b9b01be3bd8a6db79458 [file] [log] [blame]
<%
/**
* <copyright>
*
* Copyright (c) 2002-2007 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM - Initial API and implementation
*
* </copyright>
*/
%>
<%final GenClass genClass = (GenClass)((Object[])argument)[0]; final GenPackage genPackage = genClass.getGenPackage(); final GenModel genModel=genPackage.getGenModel();%>
<%final boolean isInterface = Boolean.TRUE.equals(((Object[])argument)[1]); final boolean isImplementation = Boolean.TRUE.equals(((Object[])argument)[2]);%>
<%final String publicStaticFinalFlag = isImplementation ? "public static final " : "";%>
<%final String singleWildcard = genModel.getComplianceLevel().getValue() >= GenJDKLevel.JDK50 ? "<?>" : "";%>
<%final String negativeOffsetCorrection = genClass.hasOffsetCorrection() ? " - " + genClass.getOffsetCorrectionField(null) : "";%>
<%final String positiveOffsetCorrection = genClass.hasOffsetCorrection() ? " + " + genClass.getOffsetCorrectionField(null) : "";%>
<%@ egf:patternCall patternId="platform:/plugin/org.eclipse.egf.emf.pattern.base/egf/EMF_Pattern_Base.fcore#LogicalName=org.eclipse.egf.emf.pattern.base.HeaderJava" args="parameter:argument"%>
<%if (isInterface) {%>
package <%=genPackage.getInterfacePackageName()%>;
<%} else {%>
package <%=genPackage.getClassPackageName()%>;
<%}%>
<%genModel.markImportLocation(stringBuffer, genPackage);%>
<%if (isInterface) {%>
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b><%=genClass.getFormattedName()%></b></em>'.
* <!-- end-user-doc -->
<%if (genClass.hasDocumentation()) {%>
*
* <!-- begin-model-doc -->
* <%=genClass.getDocumentation(genModel.getIndentation(stringBuffer))%>
* <!-- end-model-doc -->
<%}%>
*
<%if (!genClass.getGenFeatures().isEmpty()) {%>
* <p>
* The following features are supported:
* <ul>
<%for (GenFeature genFeature : genClass.getGenFeatures()) {%>
<%if (!genFeature.isSuppressedGetVisibility()) {%>
* <li>{@link <%=genClass.getQualifiedInterfaceName()%>#<%=genFeature.getGetAccessor()%> <em><%=genFeature.getFormattedName()%></em>}</li>
<%}%>
<%}%>
* </ul>
* </p>
<%}%>
*
<%if (!genModel.isSuppressEMFMetaData()) {%>
* @see <%=genPackage.getQualifiedPackageInterfaceName()%>#get<%=genClass.getClassifierAccessorName()%>()
<%}%>
<%if (!genModel.isSuppressEMFModelTags()) { boolean first = true; for (StringTokenizer stringTokenizer = new StringTokenizer(genClass.getModelInfo(), "\n\r"); stringTokenizer.hasMoreTokens(); ) { String modelInfo = stringTokenizer.nextToken(); if (first) { first = false;%>
* @model <%=modelInfo%>
<%} else {%>
* <%=modelInfo%>
<%}} if (first) {%>
* @model
<%}}%>
<%if (genClass.needsRootExtendsInterfaceExtendsTag()) {%>
* @extends <%=genModel.getImportedName(genModel.getRootExtendsInterface())%>
<%}%>
* @generated
*/
<%} else {%>
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b><%=genClass.getFormattedName()%></b></em>'.
* <!-- end-user-doc -->
* <p>
<%if (!genClass.getImplementedGenFeatures().isEmpty()) {%>
* The following features are implemented:
* <ul>
<%for (GenFeature genFeature : genClass.getImplementedGenFeatures()) {%>
* <li>{@link <%=genClass.getQualifiedClassName()%>#<%=genFeature.getGetAccessor()%> <em><%=genFeature.getFormattedName()%></em>}</li>
<%}%>
* </ul>
<%}%>
* </p>
*
* @generated
*/
<%}%>
<%if (isImplementation) {%>
public<%if (genClass.isAbstract()) {%> abstract<%}%> class <%=genClass.getClassName()%><%=genClass.getTypeParameters().trim()%><%=genClass.getClassExtends()%><%=genClass.getClassImplements()%>
<%} else {%>
public interface <%=genClass.getInterfaceName()%><%=genClass.getTypeParameters().trim()%><%=genClass.getInterfaceExtends()%>
<%}%>
{
<%if (genModel.hasCopyrightField()) {%>
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
<%=publicStaticFinalFlag%><%=genModel.getImportedName("java.lang.String")%> copyright = <%=genModel.getCopyrightFieldLiteral()%>;<%=genModel.getNonNLS()%>
<%}%>
<%if (isImplementation && genModel.getDriverNumber() != null) {%>
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public static final <%=genModel.getImportedName("java.lang.String")%> mofDriverNumber = "<%=genModel.getDriverNumber()%>";<%=genModel.getNonNLS()%>
<%}%>
<%if (isImplementation && genClass.isJavaIOSerializable()) {%>
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private static final long serialVersionUID = 1L;
<%}%>
<%if (isImplementation && genModel.isVirtualDelegation()) { String eVirtualValuesField = genClass.getEVirtualValuesField();%>
<%if (eVirtualValuesField != null) {%>
/**
* An array of objects representing the values of non-primitive features.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected Object[] <%=eVirtualValuesField%>;
<%}%>
<%{ List<String> eVirtualIndexBitFields = genClass.getEVirtualIndexBitFields(new ArrayList<String>());%>
<%if (!eVirtualIndexBitFields.isEmpty()) {%>
<%for (String eVirtualIndexBitField : eVirtualIndexBitFields) {%>
/**
* A bit field representing the indices of non-primitive feature values.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected int <%=eVirtualIndexBitField%>;
<%}%>
<%}%>
<%}%>
<%}%>
<%if (isImplementation && genClass.isModelRoot() && genModel.isBooleanFlagsEnabled() && genModel.getBooleanFlagsReservedBits() == -1) {%>
/**
* A set of bit flags representing the values of boolean attributes and whether unsettable features have been set.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
protected int <%=genModel.getBooleanFlagsField()%> = 0;
<%}%>
<%if (isImplementation && !genModel.isReflectiveDelegation()) {%>
<%for (GenFeature genFeature : genClass.getDeclaredFieldGenFeatures()) {%>
<%@ egf:patternCall patternId="platform:/plugin/org.eclipse.egf.emf.pattern/egf/EMF_Pattern.fcore#LogicalName=org.eclipse.egf.emf.pattern.model.call.Class.Class.declaredFieldGenFeature.override" args="genFeature:genFeature,genClass:genClass,genPackage:genPackage,genModel:genModel,isInterface:isInterface,isImplementation:isImplementation,publicStaticFinalFlag:publicStaticFinalFlag,singleWildcard:singleWildcard,negativeOffsetCorrection:negativeOffsetCorrection,positiveOffsetCorrection:positiveOffsetCorrection"%><%//Class/declaredFieldGenFeature.override.javajetinc%>
<%}%>
<%}%>
<%if (isImplementation && genClass.hasOffsetCorrection() && !genClass.getImplementedGenFeatures().isEmpty()) {%>
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private static final int <%=genClass.getOffsetCorrectionField(null)%> = <%=genClass.getQualifiedClassifierAccessor()%>.getFeatureID(<%=genClass.getImplementedGenFeatures().get(0).getQualifiedFeatureAccessor()%>) - <%=genClass.getQualifiedFeatureID(genClass.getImplementedGenFeatures().get(0))%>;
<%}%>
<%if (isImplementation && genClass.hasOffsetCorrection() && !genModel.isReflectiveDelegation()) {%>
<%for (GenFeature genFeature : genClass.getImplementedGenFeatures()) { GenFeature reverseFeature = genFeature.getReverse();%>
<%if (reverseFeature != null && reverseFeature.getGenClass().hasOffsetCorrection()) {%>
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private static final int <%=genClass.getOffsetCorrectionField(genFeature)%> = <%=reverseFeature.getGenClass().getQualifiedClassifierAccessor()%>.getFeatureID(<%=reverseFeature.getQualifiedFeatureAccessor()%>) - <%=reverseFeature.getGenClass().getQualifiedFeatureID(reverseFeature)%>;
<%}%>
<%}%>
<%}%>
<%if (isImplementation) {%>
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
<%if (genModel.isPublicConstructors()) {%>public<%} else {%>protected<%}%> <%=genClass.getClassName()%>()
{
<%@ egf:patternCall patternId="platform:/plugin/org.eclipse.egf.emf.pattern/egf/EMF_Pattern.fcore#LogicalName=org.eclipse.egf.emf.pattern.model.call.Class.Class.egfCustom.constructor.override" args="genClass:genClass,genPackage:genPackage,genModel:genModel,isInterface:isInterface,isImplementation:isImplementation,publicStaticFinalFlag:publicStaticFinalFlag,singleWildcard:singleWildcard,negativeOffsetCorrection:negativeOffsetCorrection,positiveOffsetCorrection:positiveOffsetCorrection"%>
<%for (GenFeature genFeature : genClass.getFlagGenFeatures("true")) {%>
<%=genClass.getFlagsField(genFeature)%> |= <%=genFeature.getUpperName()%>_EFLAG;
<%}%>
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
<%if (genModel.useClassOverrideAnnotation()) {%>
@Override
<%}%>
protected <%=genModel.getImportedName("org.eclipse.emf.ecore.EClass")%> eStaticClass()
{
return <%=genClass.getQualifiedClassifierAccessor()%>;
}
<%}%>
<%@ egf:patternCall patternId="platform:/plugin/org.eclipse.egf.emf.pattern/egf/EMF_Pattern.fcore#LogicalName=org.eclipse.egf.emf.pattern.model.call.Class.Class.reflectiveDelegation.override" args="genClass:genClass,genPackage:genPackage,genModel:genModel,isInterface:isInterface,isImplementation:isImplementation,publicStaticFinalFlag:publicStaticFinalFlag,singleWildcard:singleWildcard,negativeOffsetCorrection:negativeOffsetCorrection,positiveOffsetCorrection:positiveOffsetCorrection"%><%//Class/reflectiveDelegation.override.javajetinc%>
<%new Runnable() { public void run() {%>
<%for (GenFeature genFeature : (isImplementation ? genClass.getImplementedGenFeatures() : genClass.getDeclaredGenFeatures())) {%>
<%@ egf:patternCall patternId="platform:/plugin/org.eclipse.egf.emf.pattern/egf/EMF_Pattern.fcore#LogicalName=org.eclipse.egf.emf.pattern.model.call.Class.Class.genFeature.override" args="genFeature:genFeature,genClass:genClass,genPackage:genPackage,genModel:genModel,isInterface:isInterface,isImplementation:isImplementation,publicStaticFinalFlag:publicStaticFinalFlag,singleWildcard:singleWildcard,negativeOffsetCorrection:negativeOffsetCorrection,positiveOffsetCorrection:positiveOffsetCorrection"%><%//Class/genFeature.override.javajetinc%>
<%}//for%>
<%}}.run();%>
<%for (GenOperation genOperation : (isImplementation ? genClass.getImplementedGenOperations() : genClass.getDeclaredGenOperations())) {%>
<%@ egf:patternCall patternId="platform:/plugin/org.eclipse.egf.emf.pattern/egf/EMF_Pattern.fcore#LogicalName=org.eclipse.egf.emf.pattern.model.call.Class.Class.genOperation.override" args="genOperation:genOperation,genClass:genClass,genPackage:genPackage,genModel:genModel,isInterface:isInterface,isImplementation:isImplementation,publicStaticFinalFlag:publicStaticFinalFlag,singleWildcard:singleWildcard,negativeOffsetCorrection:negativeOffsetCorrection,positiveOffsetCorrection:positiveOffsetCorrection"%><%//Class/implementedGenOperation.override.javajetinc%>
<%}//for%>
<%if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEInverseAddGenFeatures())) {%>
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
<%if (genModel.useGenerics()) {%>
<%for (GenFeature genFeature : genClass.getEInverseAddGenFeatures()) {%>
<%if (genFeature.isUncheckedCast()) {%>
@SuppressWarnings("unchecked")
<%break; }%>
<%}%>
<%}%>
<%if (genModel.useClassOverrideAnnotation()) {%>
@Override
<%}%>
public <%=genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain")%> eInverseAdd(<%=genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject")%> otherEnd, int featureID, <%=genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain")%> msgs)
{
switch (featureID<%=negativeOffsetCorrection%>)
{
<%for (GenFeature genFeature : genClass.getEInverseAddGenFeatures()) {%>
case <%=genClass.getQualifiedFeatureID(genFeature)%>:
<%if (genFeature.isListType()) { String cast = "(" + genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList") + (!genModel.useGenerics() ? ")" : "<" + genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject") + ">)(" + genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList") + "<?>)");%>
<%if (genFeature.isMapType() && genFeature.isEffectiveSuppressEMFTypes()) {%>
return ((<%=cast%>(<%=genModel.getImportedName("org.eclipse.emf.common.util.EMap")%>.InternalMapView<%=genFeature.getImportedMapTemplateArguments(genClass)%>)<%=genFeature.getGetAccessor()%>()).eMap()).basicAdd(otherEnd, msgs);
<%} else {%>
return (<%=cast%><%=genFeature.getGetAccessor()%>()).basicAdd(otherEnd, msgs);
<%}%>
<%} else if (genFeature.isContainer()) {%>
if (eInternalContainer() != null)
msgs = eBasicRemoveFromContainer(msgs);
<%if (genFeature.isBasicSet()) {%>
return basicSet<%=genFeature.getAccessorName()%>((<%=genFeature.getImportedType(genClass)%>)otherEnd, msgs);
<%} else {%>
return eBasicSetContainer(otherEnd, <%=genClass.getQualifiedFeatureID(genFeature)%><%=positiveOffsetCorrection%>, msgs);
<%}%>
<%} else {%>
<%if (genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {%>
<%=genFeature.getImportedType(genClass)%> <%=genFeature.getSafeName()%> = (<%=genFeature.getImportedType(genClass)%>)eVirtualGet(<%=genClass.getQualifiedFeatureID(genFeature)%><%=positiveOffsetCorrection%>);
<%} else if (genFeature.isVolatile()) {%>
<%=genFeature.getImportedType(genClass)%> <%=genFeature.getSafeName()%> = <%if (genFeature.isResolveProxies()) {%>basicGet<%=genFeature.getAccessorName()%><%} else {%><%=genFeature.getGetAccessor()%><%}%>();
<%}%>
if (<%=genFeature.getSafeName()%> != null)
<%if (genFeature.isEffectiveContains()) {%>
msgs = ((<%=genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject")%>)<%=genFeature.getSafeName()%>).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - <%=genClass.getQualifiedFeatureID(genFeature)%><%=negativeOffsetCorrection%>, null, msgs);
<%} else { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass(); String reverseOffsetCorrection = targetClass.hasOffsetCorrection() ? " + " + genClass.getOffsetCorrectionField(reverseFeature) : "";%>
msgs = ((<%=genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject")%>)<%=genFeature.getSafeName()%>).eInverseRemove(this, <%=targetClass.getQualifiedFeatureID(reverseFeature)%><%=reverseOffsetCorrection%>, <%=targetClass.getImportedInterfaceName()%>.class, msgs);
<%}%>
return basicSet<%=genFeature.getAccessorName()%>((<%=genFeature.getImportedType(genClass)%>)otherEnd, msgs);
<%}%>
<%}%>
}
<%if (genModel.isMinimalReflectiveMethods()) {%>
return super.eInverseAdd(otherEnd, featureID, msgs);
<%} else {%>
return eDynamicInverseAdd(otherEnd, featureID, msgs);
<%}%>
}
<%}%>
<%if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEInverseRemoveGenFeatures())) {%>
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
<%if (genModel.useClassOverrideAnnotation()) {%>
@Override
<%}%>
public <%=genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain")%> eInverseRemove(<%=genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject")%> otherEnd, int featureID, <%=genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain")%> msgs)
{
switch (featureID<%=negativeOffsetCorrection%>)
{
<%for (GenFeature genFeature : genClass.getEInverseRemoveGenFeatures()) {%>
case <%=genClass.getQualifiedFeatureID(genFeature)%>:
<%if (genFeature.isListType()) {%>
<%if (genFeature.isMapType() && genFeature.isEffectiveSuppressEMFTypes()) {%>
return ((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList")%><%=singleWildcard%>)((<%=genModel.getImportedName("org.eclipse.emf.common.util.EMap")%>.InternalMapView<%=genFeature.getImportedMapTemplateArguments(genClass)%>)<%=genFeature.getGetAccessor()%>()).eMap()).basicRemove(otherEnd, msgs);
<%} else if (genFeature.isWrappedFeatureMapType()) {%>
return ((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList")%><%=singleWildcard%>)((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap")%>.Internal.Wrapper)<%=genFeature.getGetAccessor()%>()).featureMap()).basicRemove(otherEnd, msgs);
<%} else {%>
return ((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList")%><%=singleWildcard%>)<%=genFeature.getGetAccessor()%>()).basicRemove(otherEnd, msgs);
<%}%>
<%} else if (genFeature.isContainer() && !genFeature.isBasicSet()) {%>
return eBasicSetContainer(null, <%=genClass.getQualifiedFeatureID(genFeature)%><%=positiveOffsetCorrection%>, msgs);
<%} else if (genFeature.isUnsettable()) {%>
return basicUnset<%=genFeature.getAccessorName()%>(msgs);
<%} else {%>
return basicSet<%=genFeature.getAccessorName()%>(null, msgs);
<%}%>
<%}%>
}
<%if (genModel.isMinimalReflectiveMethods()) {%>
return super.eInverseRemove(otherEnd, featureID, msgs);
<%} else {%>
return eDynamicInverseRemove(otherEnd, featureID, msgs);
<%}%>
}
<%}%>
<%if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEBasicRemoveFromContainerGenFeatures())) {%>
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
<%if (genModel.useClassOverrideAnnotation()) {%>
@Override
<%}%>
public <%=genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain")%> eBasicRemoveFromContainerFeature(<%=genModel.getImportedName("org.eclipse.emf.common.notify.NotificationChain")%> msgs)
{
switch (eContainerFeatureID<%=negativeOffsetCorrection%>)
{
<%for (GenFeature genFeature : genClass.getEBasicRemoveFromContainerGenFeatures()) {%>
<%GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass(); String reverseOffsetCorrection = targetClass.hasOffsetCorrection() ? " + " + genClass.getOffsetCorrectionField(reverseFeature) : "";%>
case <%=genClass.getQualifiedFeatureID(genFeature)%>:
return eInternalContainer().eInverseRemove(this, <%=targetClass.getQualifiedFeatureID(reverseFeature)%><%=reverseOffsetCorrection%>, <%=targetClass.getImportedInterfaceName()%>.class, msgs);
<%}%>
}
<%if (genModel.isMinimalReflectiveMethods()) {%>
return super.eBasicRemoveFromContainerFeature(msgs);
<%} else {%>
return eDynamicBasicRemoveFromContainer(msgs);
<%}%>
}
<%}%>
<%if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEGetGenFeatures())) {%>
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
<%if (genModel.useClassOverrideAnnotation()) {%>
@Override
<%}%>
public Object eGet(int featureID, boolean resolve, boolean coreType)
{
switch (featureID<%=negativeOffsetCorrection%>)
{
<%for (GenFeature genFeature : genClass.getEGetGenFeatures()) {%>
case <%=genClass.getQualifiedFeatureID(genFeature)%>:
<%if (genFeature.isPrimitiveType()) {%>
<%if (genFeature.isBooleanType()) {%>
return <%=genFeature.getGetAccessor()%>() ? Boolean.TRUE : Boolean.FALSE;
<%} else {%>
return new <%=genFeature.getObjectType(genClass)%>(<%=genFeature.getGetAccessor()%>());
<%}%>
<%} else if (genFeature.isResolveProxies() && !genFeature.isListType()) {%>
if (resolve) return <%=genFeature.getGetAccessor()%>();
return basicGet<%=genFeature.getAccessorName()%>();
<%} else if (genFeature.isMapType()) {%>
<%if (genFeature.isEffectiveSuppressEMFTypes()) {%>
if (coreType) return ((<%=genModel.getImportedName("org.eclipse.emf.common.util.EMap")%>.InternalMapView<%=genFeature.getImportedMapTemplateArguments(genClass)%>)<%=genFeature.getGetAccessor()%>()).eMap();
else return <%=genFeature.getGetAccessor()%>();
<%} else {%>
if (coreType) return <%=genFeature.getGetAccessor()%>();
else return <%=genFeature.getGetAccessor()%>().map();
<%}%>
<%} else if (genFeature.isWrappedFeatureMapType()) {%>
if (coreType) return ((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap")%>.Internal.Wrapper)<%=genFeature.getGetAccessor()%>()).featureMap();
return <%=genFeature.getGetAccessor()%>();
<%} else if (genFeature.isFeatureMapType()) {%>
if (coreType) return <%=genFeature.getGetAccessor()%>();
return ((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap")%>.Internal)<%=genFeature.getGetAccessor()%>()).getWrapper();
<%} else {%>
return <%=genFeature.getGetAccessor()%>();
<%}%>
<%}%>
}
<%if (genModel.isMinimalReflectiveMethods()) {%>
return super.eGet(featureID, resolve, coreType);
<%} else {%>
return eDynamicGet(featureID, resolve, coreType);
<%}%>
}
<%}%>
<%if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getESetGenFeatures())) {%>
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
<%if (genModel.useGenerics()) {%>
<%for (GenFeature genFeature : genClass.getESetGenFeatures()) {%>
<%if (genFeature.isUncheckedCast() && !genFeature.isFeatureMapType() && !genFeature.isMapType()) {%>
@SuppressWarnings("unchecked")
<%break; }%>
<%}%>
<%}%>
<%if (genModel.useClassOverrideAnnotation()) {%>
@Override
<%}%>
public void eSet(int featureID, Object newValue)
{
switch (featureID<%=negativeOffsetCorrection%>)
{
<%for (GenFeature genFeature : genClass.getESetGenFeatures()) {%>
case <%=genClass.getQualifiedFeatureID(genFeature)%>:
<%if (genFeature.isListType()) {%>
<%if (genFeature.isWrappedFeatureMapType()) {%>
((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap")%>.Internal)((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap")%>.Internal.Wrapper)<%=genFeature.getGetAccessor()%>()).featureMap()).set(newValue);
<%} else if (genFeature.isFeatureMapType()) {%>
((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap")%>.Internal)<%=genFeature.getGetAccessor()%>()).set(newValue);
<%} else if (genFeature.isMapType()) {%>
<%if (genFeature.isEffectiveSuppressEMFTypes()) {%>
((<%=genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")%>.Setting)((<%=genModel.getImportedName("org.eclipse.emf.common.util.EMap")%>.InternalMapView<%=genFeature.getImportedMapTemplateArguments(genClass)%>)<%=genFeature.getGetAccessor()%>()).eMap()).set(newValue);
<%} else {%>
((<%=genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")%>.Setting)<%=genFeature.getGetAccessor()%>()).set(newValue);
<%}%>
<%} else {%>
<%=genFeature.getGetAccessor()%>().clear();
<%=genFeature.getGetAccessor()%>().addAll((<%=genModel.getImportedName("java.util.Collection")%><%if (genModel.getComplianceLevel().getValue() >= GenJDKLevel.JDK50) {%><? extends <%=genFeature.getListItemType(genClass)%>><%}%>)newValue);
<%}%>
<%} else if (genFeature.isPrimitiveType()) {%>
set<%=genFeature.getAccessorName()%>(((<%=genFeature.getObjectType(genClass)%>)newValue).<%=genFeature.getPrimitiveValueFunction()%>());
<%} else {%>
set<%=genFeature.getAccessorName()%>(<%if (genFeature.getTypeGenDataType() == null || !genFeature.getTypeGenDataType().isObjectType() || !genFeature.getRawType().equals(genFeature.getType(genClass))) {%>(<%=genFeature.getImportedType(genClass)%>)<%}%>newValue);
<%}%>
return;
<%}%>
}
<%if (genModel.isMinimalReflectiveMethods()) {%>
super.eSet(featureID, newValue);
<%} else {%>
eDynamicSet(featureID, newValue);
<%}%>
}
<%}%>
<%if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEUnsetGenFeatures())) {%>
<%@ egf:patternCall patternId="platform:/plugin/org.eclipse.egf.emf.pattern/egf/EMF_Pattern.fcore#LogicalName=org.eclipse.egf.emf.pattern.model.call.Class.Class.eUnset.override" args="genClass:genClass,genPackage:genPackage,genModel:genModel,isInterface:isInterface,isImplementation:isImplementation,publicStaticFinalFlag:publicStaticFinalFlag,singleWildcard:singleWildcard,negativeOffsetCorrection:negativeOffsetCorrection,positiveOffsetCorrection:positiveOffsetCorrection"%><%//Class/eUnset.override.javajetinc%>
<%}%>
<%if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEIsSetGenFeatures())) {%>
<%@ egf:patternCall patternId="platform:/plugin/org.eclipse.egf.emf.pattern/egf/EMF_Pattern.fcore#LogicalName=org.eclipse.egf.emf.pattern.model.call.Class.Class.eIsSet.override" args="genClass:genClass,genPackage:genPackage,genModel:genModel,isInterface:isInterface,isImplementation:isImplementation,publicStaticFinalFlag:publicStaticFinalFlag,singleWildcard:singleWildcard,negativeOffsetCorrection:negativeOffsetCorrection,positiveOffsetCorrection:positiveOffsetCorrection"%><%//Class/eIsSet.override.javajetinc%>
<%}%>
<%if (isImplementation && (!genClass.getMixinGenFeatures().isEmpty() || genClass.hasOffsetCorrection() && !genClass.getGenFeatures().isEmpty())) {%>
<%if (!genClass.getMixinGenFeatures().isEmpty()) {%>
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
<%if (genModel.useClassOverrideAnnotation()) {%>
@Override
<%}%>
public int eBaseStructuralFeatureID(int derivedFeatureID, Class<%=singleWildcard%> baseClass)
{
<%for (GenClass mixinGenClass : genClass.getMixinGenClasses()) {%>
if (baseClass == <%=mixinGenClass.getImportedInterfaceName()%>.class)
{
switch (derivedFeatureID<%=negativeOffsetCorrection%>)
{
<%for (GenFeature genFeature : mixinGenClass.getGenFeatures()) {%>
case <%=genClass.getQualifiedFeatureID(genFeature)%>: return <%=mixinGenClass.getQualifiedFeatureID(genFeature)%>;
<%}%>
default: return -1;
}
}
<%}%>
return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
}
<%}%>
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
<%if (genModel.useClassOverrideAnnotation()) {%>
@Override
<%}%>
public int eDerivedStructuralFeatureID(int baseFeatureID, Class<%=singleWildcard%> baseClass)
{
<%for (GenClass mixinGenClass : genClass.getMixinGenClasses()) {%>
if (baseClass == <%=mixinGenClass.getImportedInterfaceName()%>.class)
{
switch (baseFeatureID)
{
<%for (GenFeature genFeature : mixinGenClass.getGenFeatures()) {%>
case <%=mixinGenClass.getQualifiedFeatureID(genFeature)%>: return <%=genClass.getQualifiedFeatureID(genFeature)%><%=positiveOffsetCorrection%>;
<%}%>
default: return -1;
}
}
<%}%>
<%if (genClass.hasOffsetCorrection() && !genClass.getGenFeatures().isEmpty()) {%>
if (baseClass == <%=genClass.getImportedInterfaceName()%>.class)
{
switch (baseFeatureID<%=negativeOffsetCorrection%>)
{
<%for (GenFeature genFeature : genClass.getGenFeatures()) {%>
case <%=genClass.getQualifiedFeatureID(genFeature)%>: return <%=genClass.getQualifiedFeatureID(genFeature)%><%=positiveOffsetCorrection%>;
<%}%>
default: return -1;
}
}
<%}%>
return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
}
<%}%>
<%if (isImplementation && genModel.isVirtualDelegation()) { String eVirtualValuesField = genClass.getEVirtualValuesField();%>
<%if (eVirtualValuesField != null) {%>
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
<%if (genModel.useClassOverrideAnnotation()) {%>
@Override
<%}%>
protected Object[] eVirtualValues()
{
return <%=eVirtualValuesField%>;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
<%if (genModel.useClassOverrideAnnotation()) {%>
@Override
<%}%>
protected void eSetVirtualValues(Object[] newValues)
{
<%=eVirtualValuesField%> = newValues;
}
<%}%>
<%{ List<String> eVirtualIndexBitFields = genClass.getEVirtualIndexBitFields(new ArrayList<String>());%>
<%if (!eVirtualIndexBitFields.isEmpty()) { List<String> allEVirtualIndexBitFields = genClass.getAllEVirtualIndexBitFields(new ArrayList<String>());%>
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
<%if (genModel.useClassOverrideAnnotation()) {%>
@Override
<%}%>
protected int eVirtualIndexBits(int offset)
{
switch (offset)
{
<%for (int i = 0; i < allEVirtualIndexBitFields.size(); i++) {%>
case <%=i%> :
return <%=allEVirtualIndexBitFields.get(i)%>;
<%}%>
default :
throw new IndexOutOfBoundsException();
}
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
<%if (genModel.useClassOverrideAnnotation()) {%>
@Override
<%}%>
protected void eSetVirtualIndexBits(int offset, int newIndexBits)
{
switch (offset)
{
<%for (int i = 0; i < allEVirtualIndexBitFields.size(); i++) {%>
case <%=i%> :
<%=allEVirtualIndexBitFields.get(i)%> = newIndexBits;
break;
<%}%>
default :
throw new IndexOutOfBoundsException();
}
}
<%}%>
<%}%>
<%}%>
<%if (isImplementation && !genModel.isReflectiveDelegation() && !genClass.getToStringGenFeatures().isEmpty()) {%>
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
<%if (genModel.useClassOverrideAnnotation()) {%>
@Override
<%}%>
public String toString()
{
if (eIsProxy()) return super.toString();
StringBuffer result = new StringBuffer(super.toString());
<%{ boolean first = true;%>
<%for (GenFeature genFeature : genClass.getToStringGenFeatures()) {%>
<%if (first) { first = false;%>
result.append(" (<%=genFeature.getName()%>: ");<%=genModel.getNonNLS()%>
<%} else {%>
result.append(", <%=genFeature.getName()%>: ");<%=genModel.getNonNLS()%>
<%}%>
<%if (genFeature.isUnsettable() && !genFeature.isListType()) {%>
<%if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {%>
if (eVirtualIsSet(<%=genClass.getQualifiedFeatureID(genFeature)%><%=positiveOffsetCorrection%>)) result.append(eVirtualGet(<%=genClass.getQualifiedFeatureID(genFeature)%><%=positiveOffsetCorrection%>)); else result.append("<unset>");<%=genModel.getNonNLS()%>
<%} else {%>
<%if (genClass.isFlag(genFeature)) {%>
if (<%if (genClass.isESetFlag(genFeature)) {%>(<%=genClass.getESetFlagsField(genFeature)%> & <%=genFeature.getUpperName()%>_ESETFLAG) != 0<%} else {%><%=genFeature.getUncapName()%>ESet<%}%>) result.append((<%=genClass.getFlagsField(genFeature)%> & <%=genFeature.getUpperName()%>_EFLAG) != 0); else result.append("<unset>");<%=genModel.getNonNLS()%>
<%} else {%>
if (<%if (genClass.isESetFlag(genFeature)) {%>(<%=genClass.getESetFlagsField(genFeature)%> & <%=genFeature.getUpperName()%>_ESETFLAG) != 0<%} else {%><%=genFeature.getUncapName()%>ESet<%}%>) result.append(<%=genFeature.getSafeName()%>); else result.append("<unset>");<%=genModel.getNonNLS()%>
<%}%>
<%}%>
<%} else {%>
<%if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {%>
result.append(eVirtualGet(<%=genClass.getQualifiedFeatureID(genFeature)%><%=positiveOffsetCorrection%><%if (!genFeature.isListType() && !genFeature.isReferenceType()){%>, <%=genFeature.getEDefault()%><%}%>));
<%} else {%>
<%if (genClass.isFlag(genFeature)) {%>
result.append((<%=genClass.getFlagsField(genFeature)%> & <%=genFeature.getUpperName()%>_EFLAG) != 0);
<%} else {%>
result.append(<%=genFeature.getSafeName()%>);
<%}%>
<%}%>
<%}%>
<%}%>
<%}%>
result.append(')');
return result.toString();
}
<%}%>
<%if (isImplementation && genClass.isMapEntry()) { GenFeature keyFeature = genClass.getMapEntryKeyFeature(); GenFeature valueFeature = genClass.getMapEntryValueFeature();%>
<%String objectType = genModel.getImportedName("java.lang.Object");%>
<%String keyType = genModel.getComplianceLevel().getValue() >= GenJDKLevel.JDK50 ? keyFeature.getObjectType(genClass) : objectType;%>
<%String valueType = genModel.getComplianceLevel().getValue() >= GenJDKLevel.JDK50 ? valueFeature.getObjectType(genClass) : objectType;%>
<%String eMapType = genModel.getImportedName("org.eclipse.emf.common.util.EMap") + (genModel.getComplianceLevel().getValue() >= GenJDKLevel.JDK50 ? "<" + keyType + ", " + valueType + ">" : "");%>
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected int hash = -1;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public int getHash()
{
if (hash == -1)
{
<%=objectType%> theKey = getKey();
hash = (theKey == null ? 0 : theKey.hashCode());
}
return hash;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setHash(int hash)
{
this.hash = hash;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public <%=keyType%> getKey()
{
<%if (keyFeature.isPrimitiveType()) {%>
return new <%=keyFeature.getObjectType(genClass)%>(getTypedKey());
<%} else {%>
return getTypedKey();
<%}%>
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setKey(<%=keyType%> key)
{
<%if (keyFeature.isListType()) {%>
getTypedKey().addAll(<%if (!genModel.useGenerics()) {%>(<%=genModel.getImportedName("java.util.Collection")%>)<%}%>key);
<%} else if (genModel.getComplianceLevel().getValue() >= GenJDKLevel.JDK50) {%>
setTypedKey(key);
<%} else if (keyFeature.isPrimitiveType()) {%>
setTypedKey(((<%=keyFeature.getObjectType(genClass)%>)key).<%=keyFeature.getPrimitiveValueFunction()%>());
<%} else {%>
setTypedKey((<%=keyFeature.getImportedType(genClass)%>)key);
<%}%>
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public <%=valueType%> getValue()
{
<%if (valueFeature.isPrimitiveType()) {%>
return new <%=valueFeature.getObjectType(genClass)%>(getTypedValue());
<%} else {%>
return getTypedValue();
<%}%>
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public <%=valueType%> setValue(<%=valueType%> value)
{
<%=valueType%> oldValue = getValue();
<%if (valueFeature.isListType()) {%>
getTypedValue().clear();
getTypedValue().addAll(<%if (!genModel.useGenerics()) {%>(<%=genModel.getImportedName("java.util.Collection")%>)<%}%>value);
<%} else if (genModel.getComplianceLevel().getValue() >= GenJDKLevel.JDK50) {%>
setTypedValue(value);
<%} else if (valueFeature.isPrimitiveType()) {%>
setTypedValue(((<%=valueFeature.getObjectType(genClass)%>)value).<%=valueFeature.getPrimitiveValueFunction()%>());
<%} else {%>
setTypedValue((<%=valueFeature.getImportedType(genClass)%>)value);
<%}%>
return oldValue;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
<%if (genModel.useGenerics()) {%>
@SuppressWarnings("unchecked")
<%}%>
public <%=eMapType%> getEMap()
{
<%=genModel.getImportedName("org.eclipse.emf.ecore.EObject")%> container = eContainer();
return container == null ? null : (<%=eMapType%>)container.eGet(eContainmentFeature());
}
<%}%>
<%@ egf:patternCall patternId="platform:/plugin/org.eclipse.egf.emf.pattern/egf/EMF_Pattern.fcore#LogicalName=org.eclipse.egf.emf.pattern.model.call.Class.Class.insert" args="genClass:genClass,genPackage:genPackage,genModel:genModel,isInterface:isInterface,isImplementation:isImplementation,publicStaticFinalFlag:publicStaticFinalFlag,singleWildcard:singleWildcard,negativeOffsetCorrection:negativeOffsetCorrection,positiveOffsetCorrection:positiveOffsetCorrection"%>
} //<%=isInterface ? " " + genClass.getInterfaceName() : genClass.getClassName()%>
<%// TODO fix the space above%>
<%genModel.emitSortedImports();%>