/** * <copyright> * </copyright> * * $Id: PAnnotatedModel.java,v 1.15 2008/10/13 05:35:42 mtaal Exp $ */ package org.eclipse.emf.teneo.annotations.pamodel; import java.util.Map; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EClassifier; import org.eclipse.emf.ecore.EDataType; import org.eclipse.emf.ecore.EModelElement; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.emf.teneo.annotations.pannotation.SequenceGenerator; import org.eclipse.emf.teneo.annotations.pannotation.SequenceStyleGenerator; import org.eclipse.emf.teneo.annotations.pannotation.TableGenerator; /** * <!-- begin-user-doc --> A representation of the model object '<em><b>PAnnotated Model</b></em>'. * <!-- end-user-doc --> * * <p> * The following features are supported: * <ul> * <li>{@link org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedModel#getPaEPackages <em>Pa EPackages</em>}</li> * </ul> * </p> * * @see org.eclipse.emf.teneo.annotations.pamodel.PamodelPackage#getPAnnotatedModel() * @model annotation="http://www.eclipse.org/emf/2002/Ecore constraints='AtMostOnePackage DistinctGenerators'" * @generated */ public interface PAnnotatedModel extends EObject { /** * Returns the value of the '<em><b>Pa EPackages</b></em>' containment reference list. * The list contents are of type {@link org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEPackage}. * It is bidirectional and its opposite is '{@link org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEPackage#getPaModel <em>Pa Model</em>}'. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Pa EPackages</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>Pa EPackages</em>' containment reference list. * @see org.eclipse.emf.teneo.annotations.pamodel.PamodelPackage#getPAnnotatedModel_PaEPackages() * @see org.eclipse.emf.teneo.annotations.pamodel.PAnnotatedEPackage#getPaModel * @model opposite="paModel" containment="true" * @generated */ EList<PAnnotatedEPackage> getPaEPackages(); /** * @return Returns the unique <code>PAnnotatedEDataType</code> associated (via the * <code>annotatedElement</code> feature) to the given <code>EDataType</code>. */ public PAnnotatedEDataType getPAnnotated(EDataType e); /** * @return Returns the unique <code>PAnnotatedEModelElement</code> associated (via the * <code>annotatedElement</code> feature) to the given <code>EModelElement</code>. */ PAnnotatedEModelElement getPAnnotated(EModelElement e); /** * @return Returns the unique <code>PAnnotatedEPackage</code> associated (via the * <code>annotatedElement</code> feature) to the given <code>EPackage</code>. */ PAnnotatedEPackage getPAnnotated(EPackage p); /** * @return Returns the unique <code>PAnnotatedEClass</code> associated (via the * <code>annotatedElement</code> feature) to the given <code>EClass</code>. */ PAnnotatedEClass getPAnnotated(EClass c); /** * @return Returns the unique <code>PAnnotatedEStructuralFeature</code> associated (via the * <code>annotatedElement</code> feature) to the given <code>EStructuralFeature</code>. */ PAnnotatedEStructuralFeature getPAnnotated(EStructuralFeature f); /** * @return Returns the unique <code>PAnnotatedEAttribute</code> associated (via the * <code>annotatedElement</code> feature) to the given <code>EAttribute</code>. */ PAnnotatedEAttribute getPAnnotated(EAttribute f); /** * @return Returns the unique <code>PAnnotatedEReference</code> associated (via the * <code>annotatedElement</code> feature) to the given <code>EReference</code>. */ PAnnotatedEReference getPAnnotated(EReference r); /** * Returns a sequence generator on the basis of its name, if not found then an exception is * thrown. efeature is passed for debugging purposes. */ public SequenceGenerator getSequenceGenerator(EStructuralFeature efeature, String name); public SequenceStyleGenerator getSequenceStyleGenerator(EStructuralFeature efeature, String name); /** * Returns a table generator on the basis of its name, if not found then an exception is thrown. * efeature is passed for debugging purposes. */ public TableGenerator getTableGenerator(EStructuralFeature efeature, String name); /** * @return the initialized */ public boolean isInitialized(); /** * @param initialized * the initialized to set */ public void setInitialized(boolean initialized); /** Dump this model to xml */ public String toXML(); /** Return the eclass annotated with this entity name. If not found then an exception is thrown */ public EClass getEClass(String entityName); /** @return true if there is annotated eclass with the passed entityname */ public boolean hasEClass(String entityName); /** * @return the EClassifier for a certain name. First the eclasses are searched using the name as * the entityname then the edatatypes are searched. */ public EClassifier getEClassifier(String name); /** * @return true if there is an EClass with the name as entityname or an EDataType with the name * passed as a parameter. */ public boolean hasEClassifier(String name); /** Return the mapping from epackage elements to annotated package elements */ public Map<EModelElement, PAnnotatedEModelElement> getModelElementMapping(); /** Merge the passed annotated model in the one present */ public void merge(PAnnotatedModel pModel); } // PAnnotatedModel