/** | |
* ******************************************************************************* | |
* Copyright (c) 2008 Hatha Systems. | |
* 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: | |
* Nikolai Mansourov (Hatha Systems) - initial API and implementation | |
* ******************************************************************************* | |
* | |
* $Id$ | |
*/ | |
package org.eclipse.gmt.modisco.omg.kdm.core; | |
import org.eclipse.emf.common.util.EList; | |
import org.eclipse.gmt.modisco.omg.kdm.kdm.KDMModel; | |
/** | |
* <!-- begin-user-doc --> | |
* A representation of the model object '<em><b>KDM Entity</b></em>'. | |
* <!-- end-user-doc --> | |
* | |
* <!-- begin-model-doc --> | |
* A KDM entity is a named model element that represents an artifact of existing software systems. | |
* In the meta-model, KDMEntity is a subclass of ModelElement. Each KDM package defines specific KDM entities that | |
* are direct or indirect subclasses of KDMEntity. A KDMEntity can be either an atomic element, a container for some | |
* KDMEntities, or a group of some KDMEntities. Container and group introduce implicit relationships between entities and | |
* are used to represent hierarchies of entities. A container is a KDMEntity that owns other entities. A group is a KDMEntity | |
* with which other entities are associated. A KDMEntity can be owned by at most one container, and can be associated with | |
* zero or many groups. | |
* <!-- end-model-doc --> | |
* | |
* <p> | |
* The following features are supported: | |
* <ul> | |
* <li>{@link org.eclipse.gmt.modisco.omg.kdm.core.KDMEntity#getName <em>Name</em>}</li> | |
* <li>{@link org.eclipse.gmt.modisco.omg.kdm.core.KDMEntity#getModel <em>Model</em>}</li> | |
* <li>{@link org.eclipse.gmt.modisco.omg.kdm.core.KDMEntity#getOwner <em>Owner</em>}</li> | |
* <li>{@link org.eclipse.gmt.modisco.omg.kdm.core.KDMEntity#getOwnedElement <em>Owned Element</em>}</li> | |
* <li>{@link org.eclipse.gmt.modisco.omg.kdm.core.KDMEntity#getOutbound <em>Outbound</em>}</li> | |
* <li>{@link org.eclipse.gmt.modisco.omg.kdm.core.KDMEntity#getInbound <em>Inbound</em>}</li> | |
* <li>{@link org.eclipse.gmt.modisco.omg.kdm.core.KDMEntity#getOwnedRelation <em>Owned Relation</em>}</li> | |
* <li>{@link org.eclipse.gmt.modisco.omg.kdm.core.KDMEntity#getGroup <em>Group</em>}</li> | |
* <li>{@link org.eclipse.gmt.modisco.omg.kdm.core.KDMEntity#getGroupedElement <em>Grouped Element</em>}</li> | |
* <li>{@link org.eclipse.gmt.modisco.omg.kdm.core.KDMEntity#getInAggregated <em>In Aggregated</em>}</li> | |
* <li>{@link org.eclipse.gmt.modisco.omg.kdm.core.KDMEntity#getOutAggregated <em>Out Aggregated</em>}</li> | |
* </ul> | |
* </p> | |
* | |
* @see org.eclipse.gmt.modisco.omg.kdm.core.CorePackage#getKDMEntity() | |
* @model abstract="true" | |
* @generated | |
*/ | |
public interface KDMEntity extends ModelElement { | |
/** | |
* Returns the value of the '<em><b>Name</b></em>' attribute. | |
* <!-- begin-user-doc --> | |
* | |
* <!-- end-user-doc --> | |
* <!-- begin-model-doc --> | |
* An identifier for the KDM entity. | |
* <!-- end-model-doc --> | |
* @return the value of the '<em>Name</em>' attribute. | |
* @see #setName(String) | |
* @see org.eclipse.gmt.modisco.omg.kdm.core.CorePackage#getKDMEntity_Name() | |
* @model dataType="org.eclipse.gmt.modisco.omg.kdm.core.String" | |
* @generated | |
*/ | |
String getName(); | |
/** | |
* Sets the value of the '{@link org.eclipse.gmt.modisco.omg.kdm.core.KDMEntity#getName <em>Name</em>}' attribute. | |
* <!-- begin-user-doc --> | |
* <!-- end-user-doc --> | |
* @param value the new value of the '<em>Name</em>' attribute. | |
* @see #getName() | |
* @generated | |
*/ | |
void setName(String value); | |
/** | |
* <!-- begin-user-doc --> | |
* <!-- end-user-doc --> | |
* <!-- begin-model-doc --> | |
* This operation creates an aggregated relationship such that the | |
* current entity is the from-endpoint of the aggregated relation and the | |
* "otherEntity" is the to-endpoint. The new aggregated relationship is | |
* owned by the model to which owns the current entity (either directly | |
* or indirectly through container ownership). | |
* <!-- end-model-doc --> | |
* @model otherEntityRequired="true" | |
* @generated | |
*/ | |
AggregatedRelationship createAggregation(KDMEntity otherEntity); | |
/** | |
* <!-- begin-user-doc --> | |
* <!-- end-user-doc --> | |
* <!-- begin-model-doc --> | |
* This operation deletes the given aggregated relationship. | |
* <!-- end-model-doc --> | |
* @model aggregationRequired="true" | |
* @generated | |
*/ | |
void deleteAggregation(AggregatedRelationship aggregation); | |
/** | |
* Returns the value of the '<em><b>Inbound</b></em>' reference list. | |
* The list contents are of type {@link org.eclipse.gmt.modisco.omg.kdm.core.KDMRelationship}. | |
* <!-- begin-user-doc --> | |
* <!-- end-user-doc --> | |
* <!-- begin-model-doc --> | |
* the set of relationships such that the current | |
* KDMEntity is the to-endpoint of these relations. | |
* <!-- end-model-doc --> | |
* @return the value of the '<em>Inbound</em>' reference list. | |
* @see org.eclipse.gmt.modisco.omg.kdm.core.CorePackage#getKDMEntity_Inbound() | |
* @model changeable="false" derived="true" | |
* @generated | |
*/ | |
EList<KDMRelationship> getInbound(); | |
/** | |
* Returns the value of the '<em><b>Outbound</b></em>' reference list. | |
* The list contents are of type {@link org.eclipse.gmt.modisco.omg.kdm.core.KDMRelationship}. | |
* <!-- begin-user-doc --> | |
* <!-- end-user-doc --> | |
* <!-- begin-model-doc --> | |
* the set of relationships such that the current | |
* KDMEntity is the from-endpoint of these relationships. | |
* <!-- end-model-doc --> | |
* @return the value of the '<em>Outbound</em>' reference list. | |
* @see org.eclipse.gmt.modisco.omg.kdm.core.CorePackage#getKDMEntity_Outbound() | |
* @model changeable="false" derived="true" | |
* @generated | |
*/ | |
EList<KDMRelationship> getOutbound(); | |
/** | |
* Returns the value of the '<em><b>Owned Relation</b></em>' containment reference list. | |
* The list contents are of type {@link org.eclipse.gmt.modisco.omg.kdm.core.KDMRelationship}. | |
* <!-- begin-user-doc --> | |
* <!-- end-user-doc --> | |
* <!-- begin-model-doc --> | |
* the set of relationships such that the current | |
* KDMEntity owns these relationships. | |
* <!-- end-model-doc --> | |
* @return the value of the '<em>Owned Relation</em>' containment reference list. | |
* @see org.eclipse.gmt.modisco.omg.kdm.core.CorePackage#getKDMEntity_OwnedRelation() | |
* @model containment="true" changeable="false" derived="true" | |
* @generated | |
*/ | |
EList<KDMRelationship> getOwnedRelation(); | |
/** | |
* Returns the value of the '<em><b>In Aggregated</b></em>' reference list. | |
* The list contents are of type {@link org.eclipse.gmt.modisco.omg.kdm.core.AggregatedRelationship}. | |
* It is bidirectional and its opposite is '{@link org.eclipse.gmt.modisco.omg.kdm.core.AggregatedRelationship#getTo <em>To</em>}'. | |
* <!-- begin-user-doc --> | |
* <!-- end-user-doc --> | |
* <!-- begin-model-doc --> | |
* the set of AggregatedRelationship for which | |
* the target is the current KDM Entity. | |
* <!-- end-model-doc --> | |
* @return the value of the '<em>In Aggregated</em>' reference list. | |
* @see org.eclipse.gmt.modisco.omg.kdm.core.CorePackage#getKDMEntity_InAggregated() | |
* @see org.eclipse.gmt.modisco.omg.kdm.core.AggregatedRelationship#getTo | |
* @model opposite="to" changeable="false" derived="true" | |
* @generated | |
*/ | |
EList<AggregatedRelationship> getInAggregated(); | |
/** | |
* Returns the value of the '<em><b>Out Aggregated</b></em>' reference list. | |
* The list contents are of type {@link org.eclipse.gmt.modisco.omg.kdm.core.AggregatedRelationship}. | |
* It is bidirectional and its opposite is '{@link org.eclipse.gmt.modisco.omg.kdm.core.AggregatedRelationship#getFrom <em>From</em>}'. | |
* <!-- begin-user-doc --> | |
* <!-- end-user-doc --> | |
* <!-- begin-model-doc --> | |
* the set of AggregatedRelationship for which | |
* the origin is the current KDM Entity. | |
* <!-- end-model-doc --> | |
* @return the value of the '<em>Out Aggregated</em>' reference list. | |
* @see org.eclipse.gmt.modisco.omg.kdm.core.CorePackage#getKDMEntity_OutAggregated() | |
* @see org.eclipse.gmt.modisco.omg.kdm.core.AggregatedRelationship#getFrom | |
* @model opposite="from" changeable="false" derived="true" | |
* @generated | |
*/ | |
EList<AggregatedRelationship> getOutAggregated(); | |
/** | |
* Returns the value of the '<em><b>Owner</b></em>' container reference. | |
* It is bidirectional and its opposite is '{@link org.eclipse.gmt.modisco.omg.kdm.core.KDMEntity#getOwnedElement <em>Owned Element</em>}'. | |
* <!-- begin-user-doc --> | |
* <!-- end-user-doc --> | |
* <!-- begin-model-doc --> | |
* KDM entity that owns the current element. This property determines a meta-level interface | |
* to KDM entities. This property is a derived union. Some KDM entities define a concrete set | |
* of owned elements that are subtypes of KDMEntity. In KDM this is represented by the | |
* CMOF "derived union" mechanism. Concrete properties subset the "union" properties of the | |
* parent classes, defined in the Core package. The owner of a KDM entity is defined as the | |
* container for which the given entity is an owned entity. | |
* <!-- end-model-doc --> | |
* @return the value of the '<em>Owner</em>' container reference. | |
* @see org.eclipse.gmt.modisco.omg.kdm.core.CorePackage#getKDMEntity_Owner() | |
* @see org.eclipse.gmt.modisco.omg.kdm.core.KDMEntity#getOwnedElement | |
* @model opposite="ownedElement" transient="false" changeable="false" derived="true" | |
* @generated | |
*/ | |
KDMEntity getOwner(); | |
/** | |
* Returns the value of the '<em><b>Owned Element</b></em>' containment reference list. | |
* The list contents are of type {@link org.eclipse.gmt.modisco.omg.kdm.core.KDMEntity}. | |
* It is bidirectional and its opposite is '{@link org.eclipse.gmt.modisco.omg.kdm.core.KDMEntity#getOwner <em>Owner</em>}'. | |
* <!-- begin-user-doc --> | |
* <!-- end-user-doc --> | |
* <!-- begin-model-doc --> | |
* the set of KDM entities that are owned by the current | |
* KDM Entity. Only KDM containers can own other entities. | |
* <!-- end-model-doc --> | |
* @return the value of the '<em>Owned Element</em>' containment reference list. | |
* @see org.eclipse.gmt.modisco.omg.kdm.core.CorePackage#getKDMEntity_OwnedElement() | |
* @see org.eclipse.gmt.modisco.omg.kdm.core.KDMEntity#getOwner | |
* @model opposite="owner" containment="true" changeable="false" derived="true" | |
* @generated | |
*/ | |
EList<KDMEntity> getOwnedElement(); | |
/** | |
* Returns the value of the '<em><b>Group</b></em>' reference list. | |
* The list contents are of type {@link org.eclipse.gmt.modisco.omg.kdm.core.KDMEntity}. | |
* <!-- begin-user-doc --> | |
* <!-- end-user-doc --> | |
* <!-- begin-model-doc --> | |
* Set of KDM entities with which the current element is associated. This property determines | |
* a meta-level interface to KDM entities. This property is a derived union. Some KDM entities | |
* define a concrete set of grouped elements that are the subtypes of KDMEntity. In KDM this | |
* is represented by the CMOF "derived union" mechanism. Concrete properties subset the | |
* "union" properties of the parent classes, defined in the Core package. The group of a KDM | |
* entity is defined as the group for which the given entity is a grouped entity. Each KDM | |
* entity can be associated with multiple groups. | |
* <!-- end-model-doc --> | |
* @return the value of the '<em>Group</em>' reference list. | |
* @see org.eclipse.gmt.modisco.omg.kdm.core.CorePackage#getKDMEntity_Group() | |
* @model changeable="false" derived="true" | |
* @generated | |
*/ | |
EList<KDMEntity> getGroup(); | |
/** | |
* Returns the value of the '<em><b>Grouped Element</b></em>' reference list. | |
* The list contents are of type {@link org.eclipse.gmt.modisco.omg.kdm.core.KDMEntity}. | |
* <!-- begin-user-doc --> | |
* <!-- end-user-doc --> | |
* <!-- begin-model-doc --> | |
* the set of KDM entities that are "grouped" by the | |
* current KDM entity. Only KDM groups can have group associations to other | |
* entities. | |
* <!-- end-model-doc --> | |
* @return the value of the '<em>Grouped Element</em>' reference list. | |
* @see org.eclipse.gmt.modisco.omg.kdm.core.CorePackage#getKDMEntity_GroupedElement() | |
* @model changeable="false" derived="true" | |
* @generated | |
*/ | |
EList<KDMEntity> getGroupedElement(); | |
/** | |
* Returns the value of the '<em><b>Model</b></em>' reference. | |
* It is bidirectional and its opposite is '{@link org.eclipse.gmt.modisco.omg.kdm.kdm.KDMModel#getOwnedElement <em>Owned Element</em>}'. | |
* <!-- begin-user-doc --> | |
* <!-- end-user-doc --> | |
* <!-- begin-model-doc --> | |
* the KDM model that owns the current KDM | |
* Entity | |
* <!-- end-model-doc --> | |
* @return the value of the '<em>Model</em>' reference. | |
* @see org.eclipse.gmt.modisco.omg.kdm.core.CorePackage#getKDMEntity_Model() | |
* @see org.eclipse.gmt.modisco.omg.kdm.kdm.KDMModel#getOwnedElement | |
* @model opposite="ownedElement" changeable="false" derived="true" | |
* @generated | |
*/ | |
KDMModel getModel(); | |
} // KDMEntity |