/*******************************************************************************
* Copyright (c) 2011-2013 University of Mannheim: Chair for Software Engineering
* 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:
* Ralph Gerbig - initial API and implementation and initial documentation
*******************************************************************************/
package de.uni_mannheim.informatik.swt.models.plm.PLM;
import org.eclipse.emf.common.util.EList;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Model</b></em>'.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* <ul>
* <li>{@link de.uni_mannheim.informatik.swt.models.plm.PLM.Model#getContent <em>Content</em>}</li>
* </ul>
* </p>
*
* @see de.uni_mannheim.informatik.swt.models.plm.PLM.PLMPackage#getModel()
* @model
* @generated
*/
public interface Model extends Element, Context {
/**
* Returns the value of the '<em><b>Content</b></em>' containment reference list.
* The list contents are of type {@link de.uni_mannheim.informatik.swt.models.plm.PLM.OwnedElement}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Content</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>Content</em>' containment reference list.
* @see de.uni_mannheim.informatik.swt.models.plm.PLM.PLMPackage#getModel_Content()
* @model containment="true"
* @generated
*/
EList<OwnedElement> getContent();
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* returns all the generalizations present in the model
* <!-- end-model-doc -->
* @model kind="operation" ordered="false"
* annotation="http://www.eclipse.org/emf/2002/Ecore/OCL body='self.content->select(e|e.oclIsKindOf(Generalization))->collect(g | g.oclAsType(Generalization))->asSet()'"
* @generated
*/
EList<Generalization> getAllGeneralizations();
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* returns all the set relationships present in the model
* <!-- end-model-doc -->
* @model kind="operation" ordered="false"
* annotation="http://www.eclipse.org/emf/2002/Ecore/OCL body='self.content->select(e|e.oclIsKindOf(SetRelationship))->collect(g | g.oclAsType(SetRelationship))->asSet()'"
* @generated
*/
EList<SetRelationship> getSetRelationships();
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* returns all the clabjects present in the model, without recursive inclusion of clabjects contained in clabejcts
* <!-- end-model-doc -->
* @model kind="operation" ordered="false"
* annotation="http://www.eclipse.org/emf/2002/Ecore/OCL body='self.content->select(e|e.oclIsKindOf(Clabject))->collect(g | g.oclAsType(Clabject))->asSet()'"
* @generated
*/
EList<Clabject> getClabjects();
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* returns all the entities present in the model, without recursive inclusion of entities contained in entities
* <!-- end-model-doc -->
* @model kind="operation" ordered="false"
* annotation="http://www.eclipse.org/emf/2002/Ecore/OCL body='self.content->select(e|e.oclIsKindOf(Entity))->collect(g | g.oclAsType(Entity))->asSet()'"
* @generated
*/
EList<Entity> getEntities();
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* returns all the connections present in the model, without recursive inclusion of connections contained in clabjects
* <!-- end-model-doc -->
* @model kind="operation" ordered="false"
* annotation="http://www.eclipse.org/emf/2002/Ecore/OCL body='self.content->select(e|e.oclIsKindOf(Connection))->collect(g | g.oclAsType(Connection))->asSet()'"
* @generated
*/
EList<Connection> getConnections();
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* returns all the classifications where the instance is in the model
* <!-- end-model-doc -->
* @model kind="operation" ordered="false"
* annotation="http://www.eclipse.org/emf/2002/Ecore/OCL body='self.content->select(e|e.oclIsKindOf(Classification))->collect(g | g.oclAsType(Classification))->asSet()'"
* @generated
*/
EList<Classification> getClassifications();
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* returns the containing ontology of the model
* <!-- end-model-doc -->
* @model kind="operation" ordered="false"
* annotation="http://www.eclipse.org/emf/2002/Ecore/OCL body='self.oclAsType(ecore::EObject).eContainer().oclAsType(Ontology)'"
* @generated
*/
Ontology getOntology();
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* returns the model that is classified by the current model, i.e. one level below
* <!-- end-model-doc -->
* @model kind="operation" ordered="false"
* annotation="http://www.eclipse.org/emf/2002/Ecore/OCL body='if (self.getOntology().content->indexOf(self) = self.getOntology().content->size()) then\n\tnull\nelse\n\tself.getOntology().content->at(self.getOntology().content->indexOf(self) + 1)\nendif'"
* @generated
*/
Model getClassifiedModel();
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* returns the model that is classifying the current model, i.e. one level above
* <!-- end-model-doc -->
* @model kind="operation" ordered="false"
* annotation="http://www.eclipse.org/emf/2002/Ecore/OCL body='if (self.getOntology().content->indexOf(self) = 1) then\n\tnull\nelse\n\tself.getOntology().content->at(self.getOntology().content->indexOf(self) - 1)\nendif'"
* @generated
*/
Model getClassifyingModel();
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* returns the level of the model
* <!-- end-model-doc -->
* @model kind="operation" ordered="false"
* annotation="http://www.eclipse.org/emf/2002/Ecore/OCL body='self.getOntology().content->indexOf(self)-1'"
* @generated
*/
int getLevel();
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* returns true if the model is the topmost model
* <!-- end-model-doc -->
* @model kind="operation" ordered="false"
* annotation="http://www.eclipse.org/emf/2002/Ecore/OCL body='self.getOntology().content->indexOf(self) = 1'"
* @generated
*/
boolean isRootModel();
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* returns true if the model is the bottom model
* <!-- end-model-doc -->
* @model kind="operation" ordered="false"
* annotation="http://www.eclipse.org/emf/2002/Ecore/OCL body='self.getOntology().content->indexOf(self) = self.getOntology().content->size()'"
* @generated
*/
boolean isLeafModel();
} // Model