/**
*/
package fr.inria.diverse.melange.metamodel.melange;
import org.eclipse.emf.common.util.EList;
import org.eclipse.xtext.common.types.JvmTypeReference;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Language</b></em>'.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* </p>
* <ul>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.Language#getOperators <em>Operators</em>}</li>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.Language#getExactType <em>Exact Type</em>}</li>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.Language#getImplements <em>Implements</em>}</li>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.Language#getRequires <em>Requires</em>}</li>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.Language#getSyntax <em>Syntax</em>}</li>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.Language#getExactTypeName <em>Exact Type Name</em>}</li>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.Language#getExactTypeUri <em>Exact Type Uri</em>}</li>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.Language#getResourceType <em>Resource Type</em>}</li>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.Language#getResourceUri <em>Resource Uri</em>}</li>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.Language#getXtextSetupRef <em>Xtext Setup Ref</em>}</li>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.Language#getMappings <em>Mappings</em>}</li>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.Language#getSemantics <em>Semantics</em>}</li>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.Language#getXtext <em>Xtext</em>}</li>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.Language#getSirius <em>Sirius</em>}</li>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.Language#getEcl <em>Ecl</em>}</li>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.Language#getXmof <em>Xmof</em>}</li>
* <li>{@link fr.inria.diverse.melange.metamodel.melange.Language#getFileExtension <em>File Extension</em>}</li>
* </ul>
*
* @see fr.inria.diverse.melange.metamodel.melange.MelangePackage#getLanguage()
* @model
* @generated
*/
public interface Language extends NamedElement {
/**
* Returns the value of the '<em><b>Operators</b></em>' containment reference list.
* The list contents are of type {@link fr.inria.diverse.melange.metamodel.melange.Operator}.
* It is bidirectional and its opposite is '{@link fr.inria.diverse.melange.metamodel.melange.Operator#getOwningLanguage <em>Owning Language</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Operators</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>Operators</em>' containment reference list.
* @see fr.inria.diverse.melange.metamodel.melange.MelangePackage#getLanguage_Operators()
* @see fr.inria.diverse.melange.metamodel.melange.Operator#getOwningLanguage
* @model opposite="owningLanguage" containment="true"
* @generated
*/
EList<Operator> getOperators();
/**
* Returns the value of the '<em><b>Exact Type</b></em>' reference.
* It is bidirectional and its opposite is '{@link fr.inria.diverse.melange.metamodel.melange.ModelType#getExtracted <em>Extracted</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Exact Type</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Exact Type</em>' reference.
* @see #setExactType(ModelType)
* @see fr.inria.diverse.melange.metamodel.melange.MelangePackage#getLanguage_ExactType()
* @see fr.inria.diverse.melange.metamodel.melange.ModelType#getExtracted
* @model opposite="extracted"
* @generated
*/
ModelType getExactType();
/**
* Sets the value of the '{@link fr.inria.diverse.melange.metamodel.melange.Language#getExactType <em>Exact Type</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Exact Type</em>' reference.
* @see #getExactType()
* @generated
*/
void setExactType(ModelType value);
/**
* Returns the value of the '<em><b>Implements</b></em>' reference list.
* The list contents are of type {@link fr.inria.diverse.melange.metamodel.melange.ModelType}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Implements</em>' reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Implements</em>' reference list.
* @see fr.inria.diverse.melange.metamodel.melange.MelangePackage#getLanguage_Implements()
* @model
* @generated
*/
EList<ModelType> getImplements();
/**
* Returns the value of the '<em><b>Requires</b></em>' reference list.
* The list contents are of type {@link fr.inria.diverse.melange.metamodel.melange.ModelType}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Requires</em>' reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Requires</em>' reference list.
* @see fr.inria.diverse.melange.metamodel.melange.MelangePackage#getLanguage_Requires()
* @model
* @generated
*/
EList<ModelType> getRequires();
/**
* Returns the value of the '<em><b>Syntax</b></em>' containment reference.
* It is bidirectional and its opposite is '{@link fr.inria.diverse.melange.metamodel.melange.Metamodel#getOwningLanguage <em>Owning Language</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Syntax</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>Syntax</em>' containment reference.
* @see #setSyntax(Metamodel)
* @see fr.inria.diverse.melange.metamodel.melange.MelangePackage#getLanguage_Syntax()
* @see fr.inria.diverse.melange.metamodel.melange.Metamodel#getOwningLanguage
* @model opposite="owningLanguage" containment="true" required="true"
* @generated
*/
Metamodel getSyntax();
/**
* Sets the value of the '{@link fr.inria.diverse.melange.metamodel.melange.Language#getSyntax <em>Syntax</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Syntax</em>' containment reference.
* @see #getSyntax()
* @generated
*/
void setSyntax(Metamodel value);
/**
* Returns the value of the '<em><b>Exact Type Name</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Exact Type Name</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Exact Type Name</em>' attribute.
* @see #setExactTypeName(String)
* @see fr.inria.diverse.melange.metamodel.melange.MelangePackage#getLanguage_ExactTypeName()
* @model
* @generated
*/
String getExactTypeName();
/**
* Sets the value of the '{@link fr.inria.diverse.melange.metamodel.melange.Language#getExactTypeName <em>Exact Type Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Exact Type Name</em>' attribute.
* @see #getExactTypeName()
* @generated
*/
void setExactTypeName(String value);
/**
* Returns the value of the '<em><b>Exact Type Uri</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Exact Type Uri</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Exact Type Uri</em>' attribute.
* @see #setExactTypeUri(String)
* @see fr.inria.diverse.melange.metamodel.melange.MelangePackage#getLanguage_ExactTypeUri()
* @model
* @generated
*/
String getExactTypeUri();
/**
* Sets the value of the '{@link fr.inria.diverse.melange.metamodel.melange.Language#getExactTypeUri <em>Exact Type Uri</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Exact Type Uri</em>' attribute.
* @see #getExactTypeUri()
* @generated
*/
void setExactTypeUri(String value);
/**
* Returns the value of the '<em><b>Resource Type</b></em>' attribute.
* The default value is <code>"MELANGE"</code>.
* The literals are from the enumeration {@link fr.inria.diverse.melange.metamodel.melange.ResourceType}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Resource Type</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Resource Type</em>' attribute.
* @see fr.inria.diverse.melange.metamodel.melange.ResourceType
* @see #setResourceType(ResourceType)
* @see fr.inria.diverse.melange.metamodel.melange.MelangePackage#getLanguage_ResourceType()
* @model default="MELANGE"
* @generated
*/
ResourceType getResourceType();
/**
* Sets the value of the '{@link fr.inria.diverse.melange.metamodel.melange.Language#getResourceType <em>Resource Type</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Resource Type</em>' attribute.
* @see fr.inria.diverse.melange.metamodel.melange.ResourceType
* @see #getResourceType()
* @generated
*/
void setResourceType(ResourceType value);
/**
* Returns the value of the '<em><b>Resource Uri</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Resource Uri</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Resource Uri</em>' attribute.
* @see #setResourceUri(String)
* @see fr.inria.diverse.melange.metamodel.melange.MelangePackage#getLanguage_ResourceUri()
* @model
* @generated
*/
String getResourceUri();
/**
* Sets the value of the '{@link fr.inria.diverse.melange.metamodel.melange.Language#getResourceUri <em>Resource Uri</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Resource Uri</em>' attribute.
* @see #getResourceUri()
* @generated
*/
void setResourceUri(String value);
/**
* Returns the value of the '<em><b>Xtext Setup Ref</b></em>' containment reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Xtext Setup Ref</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>Xtext Setup Ref</em>' containment reference.
* @see #setXtextSetupRef(JvmTypeReference)
* @see fr.inria.diverse.melange.metamodel.melange.MelangePackage#getLanguage_XtextSetupRef()
* @model containment="true"
* @generated
*/
JvmTypeReference getXtextSetupRef();
/**
* Sets the value of the '{@link fr.inria.diverse.melange.metamodel.melange.Language#getXtextSetupRef <em>Xtext Setup Ref</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Xtext Setup Ref</em>' containment reference.
* @see #getXtextSetupRef()
* @generated
*/
void setXtextSetupRef(JvmTypeReference value);
/**
* Returns the value of the '<em><b>Mappings</b></em>' reference list.
* The list contents are of type {@link fr.inria.diverse.melange.metamodel.melange.Mapping}.
* It is bidirectional and its opposite is '{@link fr.inria.diverse.melange.metamodel.melange.Mapping#getFrom <em>From</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Mappings</em>' reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Mappings</em>' reference list.
* @see fr.inria.diverse.melange.metamodel.melange.MelangePackage#getLanguage_Mappings()
* @see fr.inria.diverse.melange.metamodel.melange.Mapping#getFrom
* @model opposite="from" resolveProxies="false"
* @generated
*/
EList<Mapping> getMappings();
/**
* Returns the value of the '<em><b>Semantics</b></em>' containment reference list.
* The list contents are of type {@link fr.inria.diverse.melange.metamodel.melange.Aspect}.
* It is bidirectional and its opposite is '{@link fr.inria.diverse.melange.metamodel.melange.Aspect#getOwningLanguage <em>Owning Language</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Semantics</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>Semantics</em>' containment reference list.
* @see fr.inria.diverse.melange.metamodel.melange.MelangePackage#getLanguage_Semantics()
* @see fr.inria.diverse.melange.metamodel.melange.Aspect#getOwningLanguage
* @model opposite="owningLanguage" containment="true"
* @generated
*/
EList<Aspect> getSemantics();
/**
* Returns the value of the '<em><b>Xtext</b></em>' attribute list.
* The list contents are of type {@link java.lang.String}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Xtext</em>' attribute list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Xtext</em>' attribute list.
* @see fr.inria.diverse.melange.metamodel.melange.MelangePackage#getLanguage_Xtext()
* @model
* @generated
*/
EList<String> getXtext();
/**
* Returns the value of the '<em><b>Sirius</b></em>' attribute list.
* The list contents are of type {@link java.lang.String}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Sirius</em>' attribute list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Sirius</em>' attribute list.
* @see fr.inria.diverse.melange.metamodel.melange.MelangePackage#getLanguage_Sirius()
* @model
* @generated
*/
EList<String> getSirius();
/**
* Returns the value of the '<em><b>Ecl</b></em>' attribute list.
* The list contents are of type {@link java.lang.String}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Ecl</em>' attribute list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Ecl</em>' attribute list.
* @see fr.inria.diverse.melange.metamodel.melange.MelangePackage#getLanguage_Ecl()
* @model
* @generated
*/
EList<String> getEcl();
/**
* Returns the value of the '<em><b>Xmof</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Xmof</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Xmof</em>' attribute.
* @see #setXmof(String)
* @see fr.inria.diverse.melange.metamodel.melange.MelangePackage#getLanguage_Xmof()
* @model
* @generated
*/
String getXmof();
/**
* Sets the value of the '{@link fr.inria.diverse.melange.metamodel.melange.Language#getXmof <em>Xmof</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Xmof</em>' attribute.
* @see #getXmof()
* @generated
*/
void setXmof(String value);
/**
* Returns the value of the '<em><b>File Extension</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>File Extension</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>File Extension</em>' attribute.
* @see #setFileExtension(String)
* @see fr.inria.diverse.melange.metamodel.melange.MelangePackage#getLanguage_FileExtension()
* @model
* @generated
*/
String getFileExtension();
/**
* Sets the value of the '{@link fr.inria.diverse.melange.metamodel.melange.Language#getFileExtension <em>File Extension</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>File Extension</em>' attribute.
* @see #getFileExtension()
* @generated
*/
void setFileExtension(String value);
} // Language