| /** |
| * Copyright (c) 2002-2009 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 |
| */ |
| package org.eclipse.emf.codegen.ecore.genmodel; |
| |
| |
| import java.util.Collection; |
| import java.util.List; |
| |
| import org.eclipse.emf.common.util.EList; |
| import org.eclipse.emf.ecore.EClass; |
| |
| |
| /** |
| * <!-- begin-user-doc --> |
| * A representation of the model object '<em><b>Gen Class</b></em>'. |
| * <!-- end-user-doc --> |
| * |
| * <p> |
| * The following features are supported: |
| * <ul> |
| * <li>{@link org.eclipse.emf.codegen.ecore.genmodel.GenClass#getProvider <em>Provider</em>}</li> |
| * <li>{@link org.eclipse.emf.codegen.ecore.genmodel.GenClass#isImage <em>Image</em>}</li> |
| * <li>{@link org.eclipse.emf.codegen.ecore.genmodel.GenClass#isDynamic <em>Dynamic</em>}</li> |
| * <li>{@link org.eclipse.emf.codegen.ecore.genmodel.GenClass#getEcoreClass <em>Ecore Class</em>}</li> |
| * <li>{@link org.eclipse.emf.codegen.ecore.genmodel.GenClass#getGenFeatures <em>Gen Features</em>}</li> |
| * <li>{@link org.eclipse.emf.codegen.ecore.genmodel.GenClass#getGenOperations <em>Gen Operations</em>}</li> |
| * <li>{@link org.eclipse.emf.codegen.ecore.genmodel.GenClass#getLabelFeature <em>Label Feature</em>}</li> |
| * </ul> |
| * </p> |
| * |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage#getGenClass() |
| * @model |
| * @generated |
| */ |
| public interface GenClass extends GenClassifier |
| { |
| /** |
| * Returns the value of the '<em><b>Provider</b></em>' attribute. |
| * The literals are from the enumeration {@link org.eclipse.emf.codegen.ecore.genmodel.GenProviderKind}. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @return the value of the '<em>Provider</em>' attribute. |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenProviderKind |
| * @see #setProvider(GenProviderKind) |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage#getGenClass_Provider() |
| * @model |
| * @generated |
| */ |
| GenProviderKind getProvider(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.emf.codegen.ecore.genmodel.GenClass#getProvider <em>Provider</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Provider</em>' attribute. |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenProviderKind |
| * @see #getProvider() |
| * @generated |
| */ |
| void setProvider(GenProviderKind value); |
| |
| /** |
| * Returns the value of the '<em><b>Image</b></em>' attribute. |
| * The default value is <code>"true"</code>. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @return the value of the '<em>Image</em>' attribute. |
| * @see #setImage(boolean) |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage#getGenClass_Image() |
| * @model default="true" |
| * @generated |
| */ |
| boolean isImage(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.emf.codegen.ecore.genmodel.GenClass#isImage <em>Image</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Image</em>' attribute. |
| * @see #isImage() |
| * @generated |
| */ |
| void setImage(boolean value); |
| |
| /** |
| * Returns the value of the '<em><b>Dynamic</b></em>' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @return the value of the '<em>Dynamic</em>' attribute. |
| * @see #setDynamic(boolean) |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage#getGenClass_Dynamic() |
| * @model |
| * @generated |
| */ |
| boolean isDynamic(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.emf.codegen.ecore.genmodel.GenClass#isDynamic <em>Dynamic</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Dynamic</em>' attribute. |
| * @see #isDynamic() |
| * @generated |
| */ |
| void setDynamic(boolean value); |
| |
| /** |
| * Returns the value of the '<em><b>Ecore Class</b></em>' reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @return the value of the '<em>Ecore Class</em>' reference. |
| * @see #setEcoreClass(EClass) |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage#getGenClass_EcoreClass() |
| * @model required="true" |
| * @generated |
| */ |
| EClass getEcoreClass(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.emf.codegen.ecore.genmodel.GenClass#getEcoreClass <em>Ecore Class</em>}' reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Ecore Class</em>' reference. |
| * @see #getEcoreClass() |
| * @generated |
| */ |
| void setEcoreClass(EClass value); |
| |
| /** |
| * Returns the value of the '<em><b>Gen Features</b></em>' containment reference list. |
| * The list contents are of type {@link org.eclipse.emf.codegen.ecore.genmodel.GenFeature}. |
| * It is bidirectional and its opposite is '{@link org.eclipse.emf.codegen.ecore.genmodel.GenFeature#getGenClass <em>Gen Class</em>}'. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @return the value of the '<em>Gen Features</em>' containment reference list. |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage#getGenClass_GenFeatures() |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenFeature#getGenClass |
| * @model opposite="genClass" containment="true" |
| * @generated |
| */ |
| EList<GenFeature> getGenFeatures(); |
| |
| /** |
| * Returns the value of the '<em><b>Gen Operations</b></em>' containment reference list. |
| * The list contents are of type {@link org.eclipse.emf.codegen.ecore.genmodel.GenOperation}. |
| * It is bidirectional and its opposite is '{@link org.eclipse.emf.codegen.ecore.genmodel.GenOperation#getGenClass <em>Gen Class</em>}'. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @return the value of the '<em>Gen Operations</em>' containment reference list. |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage#getGenClass_GenOperations() |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenOperation#getGenClass |
| * @model opposite="genClass" containment="true" |
| * @generated |
| */ |
| EList<GenOperation> getGenOperations(); |
| |
| /** |
| * Returns the value of the '<em><b>Label Feature</b></em>' reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @return the value of the '<em>Label Feature</em>' reference. |
| * @see #setLabelFeature(GenFeature) |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage#getGenClass_LabelFeature() |
| * @model |
| * @generated |
| */ |
| GenFeature getLabelFeature(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.emf.codegen.ecore.genmodel.GenClass#getLabelFeature <em>Label Feature</em>}' reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Label Feature</em>' reference. |
| * @see #getLabelFeature() |
| * @generated |
| */ |
| void setLabelFeature(GenFeature value); |
| |
| /** |
| * This should only be called when there is actually an interface being |
| * generated (i.e. when, for certain, this is not an external interface). |
| * Otherwise, getImportedInterfaceName() should be used. |
| */ |
| String getInterfaceName(); |
| |
| String getQualifiedInterfaceName(); |
| String getImportedInterfaceName(); |
| /** |
| * @since 2.3 |
| */ |
| String getRawImportedInterfaceName(); |
| |
| String getClassName(); |
| String getQualifiedClassName(); |
| String getImportedClassName(); |
| |
| /** |
| * This returns the name uncapitalized. Callers that plan to use this name |
| * without appending a suffix should call getSafeUncapInterfaceName() to |
| * make sure it's not a reserved word. |
| */ |
| String getUncapName(); |
| |
| List<GenClass> getBaseGenClasses(); |
| List<GenClass> getAllBaseGenClasses(); |
| |
| /** |
| * Like getAllBaseGenClasses(), this returns the GenClasses for all of the |
| * supertypes, but the result is ordered by a breadth-first search, making |
| * it appropriate for use in the switch class. |
| */ |
| List<GenClass> getSwitchGenClasses(); |
| |
| /** |
| * This returns the GenClass for the first immediate supertype. |
| */ |
| GenClass getBaseGenClass(); |
| |
| /** |
| * This walks up the chain of GenClasses defined by getBaseGenClass() and |
| * returns the first that does not represent an abstract class or an |
| * interface; that is, the instantiable class that the implementation |
| * class should extended. |
| */ |
| GenClass getClassExtendsGenClass(); |
| |
| String getClassExtends(); |
| String getClassImplements(); |
| String getInterfaceExtends(); |
| boolean needsRootExtendsInterfaceExtendsTag(); |
| |
| /** |
| * @since 2.5 |
| */ |
| void addClassPsuedoImports(); |
| |
| /** |
| * @since 2.3 |
| */ |
| boolean hasGenericSuperTypes(); |
| |
| /** |
| * @since 2.3 |
| */ |
| String getTypeParameters(); |
| |
| /** |
| * @since 2.3 |
| */ |
| String getInterfaceTypeArguments(); |
| |
| /** |
| * @since 2.3 |
| */ |
| String getInterfaceWildTypeArguments(); |
| |
| /** |
| * @since 2.3 |
| */ |
| String getClassTypeArguments(); |
| |
| List<GenFeature> getAllGenFeatures(); |
| List<GenFeature> getInheritedGenFeatures(); |
| List<GenOperation> getAllGenOperations(); |
| |
| /** |
| * @since 2.6 |
| */ |
| List<GenOperation> getAllGenOperations(boolean excludeOverrides); |
| |
| String getFeatureID(GenFeature genFeature); |
| String getQualifiedFeatureID(GenFeature genFeature); |
| String getOperationID(GenOperation genOperation); |
| String getFeatureValue(GenFeature genFeature); |
| String getLocalFeatureIndex(GenFeature genFeature); |
| String getFlagsField(GenFeature genFeature); |
| int getFlagIndex(GenFeature genFeature); |
| |
| /** |
| * @since 2.6 |
| */ |
| String getUniqueName(GenOperation genOperation); |
| |
| /** |
| * @since 2.6 |
| */ |
| String getOperationID(GenOperation genOperation, boolean diagnosticCode); |
| |
| /** |
| * @since 2.6 |
| */ |
| String getQualifiedOperationID(GenOperation genOperation); |
| |
| /** |
| * @since 2.6 |
| */ |
| String getOperationValue(GenOperation genOperation); |
| |
| /** |
| * @since 2.6 |
| */ |
| String getLocalOperationIndex(GenOperation genOperation); |
| |
| /** |
| * @since 2.8 |
| */ |
| void clearCache(); |
| |
| /** |
| * @since 2.4 |
| */ |
| int getFlagSize(GenFeature genFeature); |
| |
| /** |
| * @since 2.4 |
| */ |
| String getFlagMask(GenFeature genFeature); |
| String getESetFlagsField(GenFeature genFeature); |
| int getESetFlagIndex(GenFeature genFeature); |
| |
| String getFeatureCountID(); |
| String getQualifiedFeatureCountID(); |
| String getFeatureCountValue(); |
| int getFeatureCount(); |
| |
| /** |
| * @since 2.6 |
| */ |
| String getOperationCountID(); |
| |
| /** |
| * @since 2.6 |
| */ |
| String getQualifiedOperationCountID(); |
| |
| /** |
| * @since 2.6 |
| */ |
| String getOperationCountValue(); |
| |
| /** |
| * @since 2.6 |
| */ |
| int getOperationCount(); |
| |
| /** |
| * @since 2.6 |
| */ |
| GenOperation getOverrideGenOperation(GenOperation genOperation); |
| |
| /** |
| * @since 2.6 |
| */ |
| List<GenOperation> getOverrideGenOperations(List<GenOperation> baseGenOperations, List<GenOperation> derivedGenOperations); |
| |
| boolean isEObject(); |
| boolean isEObjectExtension(); |
| String getCastFromEObject(); |
| boolean isAbstract(); |
| String getAbstractFlag(); |
| boolean isInterface(); |
| String getInterfaceFlag(); |
| |
| /** |
| * This indicates that there is already an existing interface for this |
| * class or interface, so none will be generated. Any other generated |
| * that wishes to refer to its interface should use the value from |
| * getQualifiedInterfaceName() or getImportedInterfaceName(). |
| */ |
| boolean isExternalInterface(); |
| |
| boolean isMapEntry(); |
| GenFeature getMapEntryKeyFeature(); |
| GenFeature getMapEntryValueFeature(); |
| |
| List<GenClass> getImplementedGenClasses(); |
| List<GenFeature> getImplementedGenFeatures(); |
| List<GenOperation> getImplementedGenOperations(); |
| |
| /** |
| * @since 2.4 |
| */ |
| boolean hasImplementedToStringGenOperation(); |
| |
| GenModel getImplementingGenModel(GenFeature genFeature); |
| |
| // Returns whether this class implements any of the given features. |
| public boolean implementsAny(Collection<GenFeature> genFeatures); |
| |
| List<GenClass> getExtendedGenClasses(); |
| List<GenFeature> getExtendedGenFeatures(); |
| List<GenOperation> getExtendedGenOperations(); |
| |
| List<GenFeature> getDeclaredFieldGenFeatures(); |
| |
| List<GenFeature> getDeclaredGenFeatures(); |
| List<GenOperation> getDeclaredGenOperations(); |
| |
| List<GenFeature> getFlagGenFeatures(); |
| /** |
| * @deprecated use {@link #getFlagGenFeaturesWithDefault()} |
| */ |
| @Deprecated |
| List<GenFeature> getFlagGenFeatures(String staticDefaultValue); |
| /** |
| * @since 2.4 |
| */ |
| List<GenFeature> getFlagGenFeaturesWithDefault(); |
| |
| List<GenFeature> getEGetGenFeatures(); |
| List<GenFeature> getEIsSetGenFeatures(); |
| List<GenFeature> getESetGenFeatures(); |
| List<GenFeature> getEUnsetGenFeatures(); |
| List<GenFeature> getEInverseAddGenFeatures(); |
| List<GenFeature> getEInverseRemoveGenFeatures(); |
| List<GenFeature> getEBasicRemoveFromContainerGenFeatures(); |
| List<GenFeature> getToStringGenFeatures(); |
| |
| List<GenClass> getMixinGenClasses(); |
| List<GenFeature> getMixinGenFeatures(); |
| List<GenOperation> getMixinGenOperations(); |
| |
| void initialize(EClass eClass); |
| // |
| // EMFEdit generation |
| // |
| |
| String getProviderClassName(); |
| String getQualifiedProviderClassName(); |
| String getImportedProviderClassName(); |
| boolean isProviderSingleton(); |
| |
| String getItemIconFileName(); |
| /** |
| * @since 2.4 |
| */ |
| String getCreateChildIconFileName(GenModel genModel, GenFeature feature, GenClass childClass); |
| String getCreateChildIconFileName(GenFeature feature, GenClass childClass); |
| /** |
| * @since 2.7 |
| */ |
| String getItemIconAccessorName(); |
| |
| /** |
| * @since 2.4 |
| */ |
| GenClass getProviderExtendsGenClass(); |
| String getProviderBaseClassName(); |
| List<GenClass> getProviderImplementedGenClasses(); |
| /** |
| * @since 2.10 |
| */ |
| List<String> getProviderImplementsClassNames(); |
| |
| List<GenFeature> getLabelFeatureCandidates(); |
| List<GenFeature> getPropertyFeatures(); |
| |
| List<GenFeature> getNotifyFeatures(); |
| List<GenFeature> getLabelNotifyFeatures(); |
| List<GenFeature> getContentNotifyFeatures(); |
| List<GenFeature> getLabelAndContentNotifyFeatures(); |
| |
| List<GenFeature> getChildrenFeatures(); |
| List<GenFeature> getAllChildrenFeatures(); |
| |
| List<GenFeature> getCreateChildFeatures(); |
| List<GenFeature> getAllCreateChildFeatures(); |
| /** |
| * @since 2.4 |
| */ |
| List<GenFeature> getCreateChildFeaturesIncludingDelegation(); |
| List<GenFeature> getAllCreateChildFeaturesIncludingDelegation(); |
| List<GenFeature> getCrossPackageCreateChildFeatures(); |
| List<GenFeature> getSharedClassCreateChildFeatures(); |
| boolean hasFeatureMapCreateChildFeatures(); |
| |
| /** |
| * @since 2.4 |
| */ |
| public final class ChildCreationData |
| { |
| public final GenFeature createFeature; |
| public final GenFeature delegatedFeature; |
| public final GenClassifier createClassifier; |
| |
| public ChildCreationData(GenFeature createFeature, GenFeature delegateFeature, GenClassifier createClassifier) |
| { |
| this.createFeature = createFeature; |
| this.delegatedFeature = delegateFeature; |
| this.createClassifier = createClassifier; |
| } |
| |
| @Override |
| public boolean equals(Object object) |
| { |
| if (object instanceof ChildCreationData) |
| { |
| ChildCreationData that = (ChildCreationData)object; |
| return |
| createFeature == that.createFeature && |
| delegatedFeature == that.delegatedFeature && |
| createClassifier == that.createClassifier; |
| } |
| else |
| { |
| return false; |
| } |
| } |
| |
| @Override |
| public int hashCode() |
| { |
| return |
| (createFeature == null ? 0 : createFeature.hashCode()) ^ |
| (delegatedFeature == null ? 0 : delegatedFeature.hashCode()) ^ |
| (createClassifier == null ? 0 : createClassifier.hashCode()); |
| } |
| } |
| |
| /** |
| * @since 2.4 |
| */ |
| List<ChildCreationData> getChildCreationData(GenModel context); |
| |
| /** |
| * @since 2.4 |
| */ |
| List<ChildCreationData> getChildCreationData(); |
| |
| List<GenClass> getChildrenClasses(GenFeature genFeature); |
| List<GenClass> getCrossPackageChildrenClasses(GenFeature genFeature); |
| |
| String getItemProviderAdapterFactoryClassName(); |
| |
| String getTestCaseClassName(); |
| String getQualifiedTestCaseClassName(); |
| String getImportedTestCaseClassName(); |
| |
| String getModelInfo(); |
| |
| boolean reconcile(GenClass oldGenClassVersion); |
| |
| List<GenOperation> getInvariantOperations(); |
| GenOperation getInvariantOperation(String constraint); |
| |
| boolean isDocumentRoot(); |
| GenFeature getMixedGenFeature(); |
| |
| String getListConstructor(GenFeature genFeature); |
| |
| boolean isModelRoot(); |
| |
| boolean isFlag(GenFeature genFeature); |
| boolean isESetFlag(GenFeature genFeature); |
| |
| boolean isField(GenFeature genFeature); |
| boolean isESetField(GenFeature genFeature); |
| |
| boolean hasTests(); |
| |
| String getEVirtualValuesField(); |
| List<String> getEVirtualIndexBitFields(List<String> eVirtualIndexBitFields); |
| List<String> getAllEVirtualIndexBitFields(List<String> allEVirtualIndexBitFields); |
| |
| boolean isJavaIOSerializable(); |
| boolean hasFactoryInterfaceCreateMethod(); |
| |
| /** |
| * @since 2.3 |
| */ |
| boolean hasOffsetCorrection(); |
| |
| /** |
| * @since 2.3 |
| */ |
| String getOffsetCorrectionField(GenFeature genFeature); |
| |
| /** |
| * @since 2.4 |
| */ |
| boolean needsHasChildrenMethodOverride(); |
| |
| /** |
| * @since 2.4 |
| */ |
| GenOperation getGetAccessorOperation(GenFeature genFeature); |
| |
| /** |
| * @since 2.4 |
| */ |
| GenOperation getIsSetAccessorOperation(GenFeature genFeature); |
| |
| /** |
| * @since 2.4 |
| */ |
| GenOperation getSetAccessorOperation(GenFeature genFeature); |
| |
| /** |
| * @since 2.4 |
| */ |
| GenOperation getUnsetAccessorOperation(GenFeature genFeature); |
| |
| /** |
| * @since 2.4 |
| */ |
| boolean hasCollidingGetAccessorOperation(GenFeature genFeature); |
| |
| /** |
| * @since 2.4 |
| */ |
| boolean hasCollidingIsSetAccessorOperation(GenFeature genFeature); |
| |
| /** |
| * @since 2.4 |
| */ |
| boolean hasCollidingSetAccessorOperation(GenFeature genFeature); |
| |
| /** |
| * @since 2.4 |
| */ |
| boolean hasCollidingUnsetAccessorOperation(GenFeature genFeature); |
| |
| /** |
| * Returns a list that corresponds to {@link #getInterfaceExtends()}. |
| * @since 2.8 |
| */ |
| List<String> getQualifiedInterfaceExtendsList(); |
| |
| |
| /** |
| * Returns a list that corresponds to {@link #getClassImplements()}. |
| * @since 2.8 |
| */ |
| List<String> getQualifiedClassImplementsList(); |
| |
| /** |
| * Returns a value that corresponds to {@link #getClassExtends()}. |
| * @since 2.8 |
| */ |
| String getQualifiedClassExtends(); |
| |
| /** |
| * @since 2.9 |
| */ |
| List<GenFeature> getReifiedGenFeatures(); |
| |
| /** |
| * @since 2.9 |
| */ |
| boolean isRawBaseClass(GenClass baseClass); |
| |
| /** |
| * @since 2.10 |
| */ |
| boolean hasStaticFeatures(); |
| } |