| /** |
| * 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.List; |
| |
| import org.eclipse.emf.common.util.EList; |
| import org.eclipse.emf.ecore.EStructuralFeature; |
| |
| |
| /** |
| * <!-- begin-user-doc --> |
| * A representation of the model object '<em><b>Gen Feature</b></em>'. |
| * <!-- end-user-doc --> |
| * |
| * <p> |
| * The following features are supported: |
| * </p> |
| * <ul> |
| * <li>{@link org.eclipse.emf.codegen.ecore.genmodel.GenFeature#getProperty <em>Property</em>}</li> |
| * <li>{@link org.eclipse.emf.codegen.ecore.genmodel.GenFeature#isNotify <em>Notify</em>}</li> |
| * <li>{@link org.eclipse.emf.codegen.ecore.genmodel.GenFeature#isChildren <em>Children</em>}</li> |
| * <li>{@link org.eclipse.emf.codegen.ecore.genmodel.GenFeature#isCreateChild <em>Create Child</em>}</li> |
| * <li>{@link org.eclipse.emf.codegen.ecore.genmodel.GenFeature#getPropertyCategory <em>Property Category</em>}</li> |
| * <li>{@link org.eclipse.emf.codegen.ecore.genmodel.GenFeature#getPropertyFilterFlags <em>Property Filter Flags</em>}</li> |
| * <li>{@link org.eclipse.emf.codegen.ecore.genmodel.GenFeature#getPropertyDescription <em>Property Description</em>}</li> |
| * <li>{@link org.eclipse.emf.codegen.ecore.genmodel.GenFeature#isPropertyMultiLine <em>Property Multi Line</em>}</li> |
| * <li>{@link org.eclipse.emf.codegen.ecore.genmodel.GenFeature#isPropertySortChoices <em>Property Sort Choices</em>}</li> |
| * <li>{@link org.eclipse.emf.codegen.ecore.genmodel.GenFeature#getGenClass <em>Gen Class</em>}</li> |
| * <li>{@link org.eclipse.emf.codegen.ecore.genmodel.GenFeature#getEcoreFeature <em>Ecore Feature</em>}</li> |
| * </ul> |
| * |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage#getGenFeature() |
| * @model |
| * @generated |
| */ |
| public interface GenFeature extends GenTypedElement |
| { |
| /** |
| * Returns the value of the '<em><b>Property</b></em>' attribute. |
| * The literals are from the enumeration {@link org.eclipse.emf.codegen.ecore.genmodel.GenPropertyKind}. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @return the value of the '<em>Property</em>' attribute. |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenPropertyKind |
| * @see #setProperty(GenPropertyKind) |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage#getGenFeature_Property() |
| * @model |
| * @generated |
| */ |
| GenPropertyKind getProperty(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.emf.codegen.ecore.genmodel.GenFeature#getProperty <em>Property</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Property</em>' attribute. |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenPropertyKind |
| * @see #getProperty() |
| * @generated |
| */ |
| void setProperty(GenPropertyKind value); |
| |
| /** |
| * Returns the value of the '<em><b>Notify</b></em>' attribute. |
| * The default value is <code>"true"</code>. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @return the value of the '<em>Notify</em>' attribute. |
| * @see #setNotify(boolean) |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage#getGenFeature_Notify() |
| * @model default="true" |
| * @generated |
| */ |
| boolean isNotify(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.emf.codegen.ecore.genmodel.GenFeature#isNotify <em>Notify</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Notify</em>' attribute. |
| * @see #isNotify() |
| * @generated |
| */ |
| void setNotify(boolean value); |
| |
| /** |
| * Returns the value of the '<em><b>Children</b></em>' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @return the value of the '<em>Children</em>' attribute. |
| * @see #setChildren(boolean) |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage#getGenFeature_Children() |
| * @model |
| * @generated |
| */ |
| boolean isChildren(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.emf.codegen.ecore.genmodel.GenFeature#isChildren <em>Children</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Children</em>' attribute. |
| * @see #isChildren() |
| * @generated |
| */ |
| void setChildren(boolean value); |
| |
| /** |
| * Returns the value of the '<em><b>Create Child</b></em>' attribute. |
| * <!-- begin-user-doc --> |
| * <p> |
| * This attribute determines whether child objects can be created via this feature. It is temporarily unsettable to |
| * ease migration from pre-2.0 versions of EMF, in which the {@link #isChildren children} feature did this as a |
| * secondary role. |
| * </p> |
| * <p> |
| * If the feature has not yet been set, it will be set based on the value of the {@link #isChildren children} |
| * feature, before its value is returned. This ensures that pre-2.0 models will upgrade themselves, and continue to |
| * work as before. |
| * </p> |
| * <!-- end-user-doc --> |
| * @return the value of the '<em>Create Child</em>' attribute. |
| * @see #isSetCreateChild() |
| * @see #unsetCreateChild() |
| * @see #setCreateChild(boolean) |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage#getGenFeature_CreateChild() |
| * @model unsettable="true" |
| * @generated |
| */ |
| boolean isCreateChild(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.emf.codegen.ecore.genmodel.GenFeature#isCreateChild <em>Create Child</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Create Child</em>' attribute. |
| * @see #isSetCreateChild() |
| * @see #unsetCreateChild() |
| * @see #isCreateChild() |
| * @generated |
| */ |
| void setCreateChild(boolean value); |
| |
| /** |
| * Unsets the value of the '{@link org.eclipse.emf.codegen.ecore.genmodel.GenFeature#isCreateChild <em>Create Child</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #isSetCreateChild() |
| * @see #isCreateChild() |
| * @see #setCreateChild(boolean) |
| * @generated |
| */ |
| void unsetCreateChild(); |
| |
| /** |
| * Returns whether the value of the '{@link org.eclipse.emf.codegen.ecore.genmodel.GenFeature#isCreateChild <em>Create Child</em>}' attribute is set. |
| * <!-- begin-user-doc --> |
| * <p> |
| * This always returns true. If the feature is unset, it will first be set based on the value of {@link #isChildren |
| * children}. This ensures that pre-2.0 models will upgrade themselves, and continue to behave as before |
| * </p> |
| * <!-- end-user-doc --> |
| * @return whether the value of the '<em>Create Child</em>' attribute is set. |
| * @see #unsetCreateChild() |
| * @see #isCreateChild() |
| * @see #setCreateChild(boolean) |
| * @generated |
| */ |
| boolean isSetCreateChild(); |
| |
| /** |
| * Returns the value of the '<em><b>Property Category</b></em>' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @return the value of the '<em>Property Category</em>' attribute. |
| * @see #setPropertyCategory(String) |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage#getGenFeature_PropertyCategory() |
| * @model |
| * @generated |
| */ |
| String getPropertyCategory(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.emf.codegen.ecore.genmodel.GenFeature#getPropertyCategory <em>Property Category</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Property Category</em>' attribute. |
| * @see #getPropertyCategory() |
| * @generated |
| */ |
| void setPropertyCategory(String value); |
| |
| /** |
| * Returns the value of the '<em><b>Property Filter Flags</b></em>' attribute list. |
| * The list contents are of type {@link java.lang.String}. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @return the value of the '<em>Property Filter Flags</em>' attribute list. |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage#getGenFeature_PropertyFilterFlags() |
| * @model |
| * @generated |
| */ |
| EList<String> getPropertyFilterFlags(); |
| |
| /** |
| * Returns the value of the '<em><b>Property Description</b></em>' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @return the value of the '<em>Property Description</em>' attribute. |
| * @see #setPropertyDescription(String) |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage#getGenFeature_PropertyDescription() |
| * @model |
| * @generated |
| */ |
| String getPropertyDescription(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.emf.codegen.ecore.genmodel.GenFeature#getPropertyDescription <em>Property Description</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Property Description</em>' attribute. |
| * @see #getPropertyDescription() |
| * @generated |
| */ |
| void setPropertyDescription(String value); |
| |
| /** |
| * Returns the value of the '<em><b>Property Multi Line</b></em>' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @return the value of the '<em>Property Multi Line</em>' attribute. |
| * @see #setPropertyMultiLine(boolean) |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage#getGenFeature_PropertyMultiLine() |
| * @model |
| * @generated |
| */ |
| boolean isPropertyMultiLine(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.emf.codegen.ecore.genmodel.GenFeature#isPropertyMultiLine <em>Property Multi Line</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Property Multi Line</em>' attribute. |
| * @see #isPropertyMultiLine() |
| * @generated |
| */ |
| void setPropertyMultiLine(boolean value); |
| |
| /** |
| * Returns the value of the '<em><b>Property Sort Choices</b></em>' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @return the value of the '<em>Property Sort Choices</em>' attribute. |
| * @see #setPropertySortChoices(boolean) |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage#getGenFeature_PropertySortChoices() |
| * @model |
| * @generated |
| */ |
| boolean isPropertySortChoices(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.emf.codegen.ecore.genmodel.GenFeature#isPropertySortChoices <em>Property Sort Choices</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Property Sort Choices</em>' attribute. |
| * @see #isPropertySortChoices() |
| * @generated |
| */ |
| void setPropertySortChoices(boolean value); |
| |
| /** |
| * Returns the value of the '<em><b>Gen Class</b></em>' container reference. |
| * It is bidirectional and its opposite is '{@link org.eclipse.emf.codegen.ecore.genmodel.GenClass#getGenFeatures <em>Gen Features</em>}'. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @return the value of the '<em>Gen Class</em>' container reference. |
| * @see #setGenClass(GenClass) |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage#getGenFeature_GenClass() |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenClass#getGenFeatures |
| * @model opposite="genFeatures" required="true" |
| * @generated |
| */ |
| GenClass getGenClass(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.emf.codegen.ecore.genmodel.GenFeature#getGenClass <em>Gen Class</em>}' container reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Gen Class</em>' container reference. |
| * @see #getGenClass() |
| * @generated |
| */ |
| void setGenClass(GenClass value); |
| |
| /** |
| * Returns the value of the '<em><b>Ecore Feature</b></em>' reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @return the value of the '<em>Ecore Feature</em>' reference. |
| * @see #setEcoreFeature(EStructuralFeature) |
| * @see org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage#getGenFeature_EcoreFeature() |
| * @model required="true" |
| * @generated |
| */ |
| EStructuralFeature getEcoreFeature(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.emf.codegen.ecore.genmodel.GenFeature#getEcoreFeature <em>Ecore Feature</em>}' reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Ecore Feature</em>' reference. |
| * @see #getEcoreFeature() |
| * @generated |
| */ |
| void setEcoreFeature(EStructuralFeature value); |
| |
| String getName(); // callers that plan to use this name without appending a suffix should call f.safeName(f.getName()) to make sure its not a keyword |
| String getSafeName(); // this is a safe guaranteed uncapitalized form of the name |
| String getSafeNameAsEObject(); // the safe name and cast to EObject, if necessary. |
| String getCapName(); |
| String getUncapName(); |
| String getUpperName(); |
| String getFormattedName(); // This returns a name like employeeNumber formatted like 'Employee Number' |
| String getIsName(); // This returns the same as getCapName unless it starts with "is" in which case the "is" is stripped |
| String getAccessorName(); // This returns the name to be used in accessor method names; it's the same as getCapName, unless this is the key or value of a map entry, for which "Typed" is prepended |
| String getGetArrayAccessor(); // This returns the name of the get array-based accessor method for the list feature. |
| String getGetAccessor(); // This returns the name of the get accessor method for the feature, i.e., either "is" or "get" is prefixed to getAccessorName |
| |
| GenPackage getGenPackage(); // returns the package in which this feature is defined |
| String getFeatureAccessorName(); // returns the name of the feature get method in the package interface (e.g. Company_Name) |
| String getQualifiedFeatureAccessorName(); // returns the name of the feature get method in the package interface (e.g. Xyz.eINSTANCE.getCompany_Name) |
| String getQualifiedFeatureAccessor(); |
| |
| String getMetaType(); // this returns either "EAttribute" or "EReference" |
| String getImportedMetaType(); |
| String getFeatureKind(); // this returns either "attribute", "attribute list", "reference", or "reference list" |
| boolean isReferenceType(); |
| |
| /** |
| * This method isn't terribly useful now that an enum attribute could be considered a flag, but should only be |
| * generated as such if {@link GenModel#isPackedEnums packed enums} is enabled for the model. This method still |
| * returns false in that case. |
| * @deprecated use {@link GenClass#isFlag} to correctly determine whether a feature is a flag |
| */ |
| @Deprecated boolean isFlag(); |
| boolean isESetFlag(); |
| |
| boolean isSetDefaultValue(); |
| String getDefaultValue(); |
| String getStaticDefaultValue(); |
| |
| boolean isContainer(); |
| boolean isContains(); |
| boolean isEffectiveContains(); |
| boolean isBidirectional(); |
| GenFeature getReverse(); |
| |
| List<GenFeature> getKeys(); |
| |
| String getContainerClass(); |
| |
| String getDerivedFlag(); |
| String getTransientFlag(); |
| String getVolatileFlag(); |
| String getChangeableFlag(); |
| String getUnsettableFlag(); |
| String getIDFlag(); |
| String getContainmentFlag(); |
| String getResolveProxiesFlag(); |
| |
| boolean isVolatile(); |
| boolean isChangeable(); |
| boolean isUnsettable(); |
| boolean isID(); |
| boolean isDerived(); |
| boolean isResolveProxies(); |
| |
| boolean hasDelegateFeature(); |
| GenFeature getDelegateFeature(); |
| |
| List<GenFeature> getDelegatedFeatures(); |
| |
| /** |
| * @since 2.4 |
| */ |
| List<GenFeature> getDelegatedFeatures(GenModel genModel); |
| |
| String getCreateChildValueLiteral(); |
| |
| boolean isSuppressedGetVisibility(); |
| boolean isSuppressedSetVisibility(); |
| boolean isSuppressedIsSetVisibility(); |
| boolean isSuppressedUnsetVisibility(); |
| |
| void initialize(EStructuralFeature eFeature); |
| |
| // |
| // EMFEdit generation |
| // |
| |
| String getPropertyImageName(); |
| String getModelInfo(); |
| String getQualifiedModelInfo(); |
| boolean isProperty(); |
| |
| boolean reconcile(GenFeature oldGenFeatureVersion); |
| |
| boolean isField(); |
| boolean isESetField(); |
| boolean isGet(); |
| boolean isBasicGet(); |
| boolean isBasicSet(); |
| boolean isSet(); |
| boolean isBasicUnset(); |
| boolean isUnset(); |
| boolean isIsSet(); |
| |
| /** |
| * @since 2.3 |
| */ |
| boolean hasEDefault(); |
| |
| /** |
| * @since 2.3 |
| */ |
| String getEDefault(); |
| |
| /** |
| * Returns whether the test case will test this feature. |
| * @since 2.3 |
| */ |
| boolean isTested(); |
| |
| /** |
| * Returns whether this feature is implemented with a registered setting delegate. |
| * @since 2.6 |
| */ |
| boolean hasSettingDelegate(); |
| |
| /** |
| * @since 2.8 |
| */ |
| boolean hasGetterBody(); |
| |
| /** |
| * @since 2.8 |
| */ |
| String getGetterBody(String indentation); |
| } |