/**
* <copyright>
* </copyright>
*
* $Id$
*/
package org.eclipse.gmf.codegen.gmfgen;
import java.util.List;
import java.util.Map;
import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
import org.eclipse.emf.common.util.EList;
import org.eclipse.gmf.common.codegen.ImportAssistant;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Gen Diagram</b></em>'.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* <ul>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.GenDiagram#getEditorGen <em>Editor Gen</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.GenDiagram#getDomainDiagramElement <em>Domain Diagram Element</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.GenDiagram#getChildNodes <em>Child Nodes</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.GenDiagram#getTopLevelNodes <em>Top Level Nodes</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.GenDiagram#getLinks <em>Links</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.GenDiagram#getCompartments <em>Compartments</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.GenDiagram#getPalette <em>Palette</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.GenDiagram#isSynchronized <em>Synchronized</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.GenDiagram#getPreferences <em>Preferences</em>}</li>
* <li>{@link org.eclipse.gmf.codegen.gmfgen.GenDiagram#getPreferencePages <em>Preference Pages</em>}</li>
* </ul>
* </p>
*
* @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenDiagram()
* @model annotation="http://www.eclipse.org/gmf/2005/constraints ocl='diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = \'notation\' and name = \'Diagram\')' description='\'Diagram Runtime Class\' must be a notation::Diagram or sub-class'"
* @generated
*/
public interface GenDiagram extends GenContainerBase, PackageNames, ProviderClassNames, LinkConstraints, EditPartCandies, EditorCandies, Shortcuts, BatchValidation, MeasurementUnit {
public static final String CLASS_NAME_PREFIX = "Diagram"; //$NON-NLS-1$
/**
* Returns the value of the '<em><b>Editor Gen</b></em>' container reference.
* It is bidirectional and its opposite is '{@link org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator#getDiagram <em>Diagram</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Editor Gen</em>' container reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Editor Gen</em>' container reference.
* @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenDiagram_EditorGen()
* @see org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator#getDiagram
* @model opposite="diagram" resolveProxies="false" transient="false" changeable="false"
* @generated
*/
GenEditorGenerator getEditorGen();
/**
* Returns the value of the '<em><b>Domain Diagram Element</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Domain Diagram Element</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Domain Diagram Element</em>' reference.
* @see #setDomainDiagramElement(GenClass)
* @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenDiagram_DomainDiagramElement()
* @model
* @generated
*/
GenClass getDomainDiagramElement();
/**
* Sets the value of the '{@link org.eclipse.gmf.codegen.gmfgen.GenDiagram#getDomainDiagramElement <em>Domain Diagram Element</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Domain Diagram Element</em>' reference.
* @see #getDomainDiagramElement()
* @generated
*/
void setDomainDiagramElement(GenClass value);
/**
* Returns the value of the '<em><b>Child Nodes</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.gmf.codegen.gmfgen.GenChildNode}.
* It is bidirectional and its opposite is '{@link org.eclipse.gmf.codegen.gmfgen.GenChildNode#getDiagram <em>Diagram</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Child Nodes</em>' containment reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Child Nodes</em>' containment reference list.
* @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenDiagram_ChildNodes()
* @see org.eclipse.gmf.codegen.gmfgen.GenChildNode#getDiagram
* @model opposite="diagram" containment="true"
* @generated
*/
EList<GenChildNode> getChildNodes();
/**
* Returns the value of the '<em><b>Top Level Nodes</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.gmf.codegen.gmfgen.GenTopLevelNode}.
* It is bidirectional and its opposite is '{@link org.eclipse.gmf.codegen.gmfgen.GenTopLevelNode#getDiagram <em>Diagram</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Top Level Nodes</em>' containment reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Top Level Nodes</em>' containment reference list.
* @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenDiagram_TopLevelNodes()
* @see org.eclipse.gmf.codegen.gmfgen.GenTopLevelNode#getDiagram
* @model opposite="diagram" containment="true"
* @generated
*/
EList<GenTopLevelNode> getTopLevelNodes();
/**
* Returns the value of the '<em><b>Links</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.gmf.codegen.gmfgen.GenLink}.
* It is bidirectional and its opposite is '{@link org.eclipse.gmf.codegen.gmfgen.GenLink#getDiagram <em>Diagram</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Links</em>' containment reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Links</em>' containment reference list.
* @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenDiagram_Links()
* @see org.eclipse.gmf.codegen.gmfgen.GenLink#getDiagram
* @model opposite="diagram" containment="true"
* @generated
*/
EList<GenLink> getLinks();
/**
* Returns the value of the '<em><b>Compartments</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.gmf.codegen.gmfgen.GenCompartment}.
* It is bidirectional and its opposite is '{@link org.eclipse.gmf.codegen.gmfgen.GenCompartment#getDiagram <em>Diagram</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Compartments</em>' containment reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Compartments</em>' containment reference list.
* @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenDiagram_Compartments()
* @see org.eclipse.gmf.codegen.gmfgen.GenCompartment#getDiagram
* @model opposite="diagram" containment="true"
* @generated
*/
EList<GenCompartment> getCompartments();
/**
* Returns the value of the '<em><b>Palette</b></em>' containment reference.
* It is bidirectional and its opposite is '{@link org.eclipse.gmf.codegen.gmfgen.Palette#getDiagram <em>Diagram</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Palette</em>' containment reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Palette</em>' containment reference.
* @see #setPalette(Palette)
* @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenDiagram_Palette()
* @see org.eclipse.gmf.codegen.gmfgen.Palette#getDiagram
* @model opposite="diagram" containment="true"
* @generated
*/
Palette getPalette();
/**
* Sets the value of the '{@link org.eclipse.gmf.codegen.gmfgen.GenDiagram#getPalette <em>Palette</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Palette</em>' containment reference.
* @see #getPalette()
* @generated
*/
void setPalette(Palette value);
/**
* Returns the value of the '<em><b>Synchronized</b></em>' attribute.
* The default value is <code>"true"</code>.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Synchronized</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Synchronized</em>' attribute.
* @see #setSynchronized(boolean)
* @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenDiagram_Synchronized()
* @model default="true"
* @generated
*/
boolean isSynchronized();
/**
* Sets the value of the '{@link org.eclipse.gmf.codegen.gmfgen.GenDiagram#isSynchronized <em>Synchronized</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Synchronized</em>' attribute.
* @see #isSynchronized()
* @generated
*/
void setSynchronized(boolean value);
/**
* Returns the value of the '<em><b>Preferences</b></em>' containment reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Preferences</em>' containment reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Preferences</em>' containment reference.
* @see #setPreferences(GenDiagramPreferences)
* @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenDiagram_Preferences()
* @model containment="true"
* @generated
*/
GenDiagramPreferences getPreferences();
/**
* Sets the value of the '{@link org.eclipse.gmf.codegen.gmfgen.GenDiagram#getPreferences <em>Preferences</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Preferences</em>' containment reference.
* @see #getPreferences()
* @generated
*/
void setPreferences(GenDiagramPreferences value);
/**
* Returns the value of the '<em><b>Preference Pages</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.gmf.codegen.gmfgen.GenPreferencePage}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Preference Pages</em>' containment reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Preference Pages</em>' containment reference list.
* @see org.eclipse.gmf.codegen.gmfgen.GMFGenPackage#getGenDiagram_PreferencePages()
* @model containment="true"
* @generated
*/
EList<GenPreferencePage> getPreferencePages();
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* Handy operation to get top and child nodes
* <!-- end-model-doc -->
* @model kind="operation"
* @generated
*/
EList<GenNode> getAllNodes();
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* All nodes (top and child) and compartments
* <!-- end-model-doc -->
* @model kind="operation"
* @generated
*/
EList<GenChildContainer> getAllChildContainers();
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* All nodes, compartments and diagram itself
* <!-- end-model-doc -->
* @model kind="operation"
* @generated
*/
EList<GenContainerBase> getAllContainers();
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* Gets the name of the class to hold the initializer methods for domain elements
* <!-- end-model-doc -->
* @model kind="operation"
* @generated
*/
String getElementInitializersClassName();
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* Gets the name of the package to hold the element initializers class
* <!-- end-model-doc -->
* @model kind="operation"
* @generated
*/
String getElementInitializersPackageName();
// Custom additions, to ease template authoring
/**
* Shorthand for <code>importManager.getImportedName(genDiagram.getDomainDiagramElement().getGenPackage().getQualifiedPackageInterfaceName())</code>
* NOTE: genPackage for domainDiagramElement only (not editor-wide domain model!), don't use it for
* features/classes/references found in GenLink/GenNodes!
*
* @deprecated obsolete
*/
String getMetaPackageName(ImportAssistant importManager);
/**
* @deprecated obsolete
*/
Map<TypeModelFacet, GenCommonBase> getTypeModelFacet2GenBaseMap();
Map<GenClass, GenTopLevelNode> getGenClass2PhantomMap();
List<GenLink> getPhantomLinks();
} // GenDiagram