MM2Loss transformation.

This commit is contained in:
Anish Bhobe 2024-05-28 14:36:46 +02:00
parent 3a0df538a6
commit 368c791d13
18 changed files with 5203 additions and 3151 deletions

1
fr.tpt.mem4csd.loss.edit/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*.class

View File

@ -1,7 +1 @@
/ComplexItemProvider.class *.class
/LinkItemProvider.class
/LossEditPlugin$Implementation.class
/LossEditPlugin.class
/LossItemProviderAdapterFactory.class
/NamedObjectItemProvider.class
/PrimitiveItemProvider.class

View File

@ -27,3 +27,6 @@ _UI_Link_referenceTo_feature = Reference To
_UI_Complex_primitives_feature = Primitives _UI_Complex_primitives_feature = Primitives
_UI_Unknown_feature = Unspecified _UI_Unknown_feature = Unspecified
_UI_NamedObject_reference_feature = Reference
_UI_NamedObject_className_feature = Class Name
_UI_Complex_reference_feature = Reference

View File

@ -14,6 +14,7 @@ import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification; import org.eclipse.emf.edit.provider.ViewerNotification;
@ -45,10 +46,26 @@ public class ComplexItemProvider extends NamedObjectItemProvider {
if (itemPropertyDescriptors == null) { if (itemPropertyDescriptors == null) {
super.getPropertyDescriptors(object); super.getPropertyDescriptors(object);
addReferencePropertyDescriptor(object);
} }
return itemPropertyDescriptors; return itemPropertyDescriptors;
} }
/**
* This adds a property descriptor for the Reference feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected void addReferencePropertyDescriptor(Object object) {
itemPropertyDescriptors
.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
getResourceLocator(), getString("_UI_Complex_reference_feature"),
getString("_UI_PropertyDescriptor_description", "_UI_Complex_reference_feature",
"_UI_Complex_type"),
LossPackage.Literals.COMPLEX__REFERENCE, true, false, true, null, null, null));
}
/** /**
* This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
* {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or

View File

@ -54,7 +54,7 @@ public class NamedObjectItemProvider extends ItemProviderAdapter implements IEdi
super.getPropertyDescriptors(object); super.getPropertyDescriptors(object);
addNamePropertyDescriptor(object); addNamePropertyDescriptor(object);
addQnamePropertyDescriptor(object); addClassNamePropertyDescriptor(object);
} }
return itemPropertyDescriptors; return itemPropertyDescriptors;
} }
@ -76,18 +76,18 @@ public class NamedObjectItemProvider extends ItemProviderAdapter implements IEdi
} }
/** /**
* This adds a property descriptor for the Qname feature. * This adds a property descriptor for the Class Name feature.
* <!-- begin-user-doc --> * <!-- begin-user-doc -->
* <!-- end-user-doc --> * <!-- end-user-doc -->
* @generated * @generated
*/ */
protected void addQnamePropertyDescriptor(Object object) { protected void addClassNamePropertyDescriptor(Object object) {
itemPropertyDescriptors itemPropertyDescriptors
.add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(), .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
getResourceLocator(), getString("_UI_NamedObject_qname_feature"), getResourceLocator(), getString("_UI_NamedObject_className_feature"),
getString("_UI_PropertyDescriptor_description", "_UI_NamedObject_qname_feature", getString("_UI_PropertyDescriptor_description", "_UI_NamedObject_className_feature",
"_UI_NamedObject_type"), "_UI_NamedObject_type"),
LossPackage.Literals.NAMED_OBJECT__QNAME, false, false, false, LossPackage.Literals.NAMED_OBJECT__CLASS_NAME, true, false, false,
ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
} }
@ -127,7 +127,7 @@ public class NamedObjectItemProvider extends ItemProviderAdapter implements IEdi
switch (notification.getFeatureID(NamedObject.class)) { switch (notification.getFeatureID(NamedObject.class)) {
case LossPackage.NAMED_OBJECT__NAME: case LossPackage.NAMED_OBJECT__NAME:
case LossPackage.NAMED_OBJECT__QNAME: case LossPackage.NAMED_OBJECT__CLASS_NAME:
fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
return; return;
} }

1
fr.tpt.mem4csd.loss.editor/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*.class

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,10 @@
query mm2loss = query mm2loss =
let modulename : String = 'face2loss' in let modulename : String = 'face2loss' in
let classifiers : Sequence(String) = ECORE!EClassifier.allInstancesFrom('IN').asSet()->collect(item | item.toRule()) in let ecoreClassifiers : Sequence(ECORE!EClassifier) = ECORE!EClassifier.allInstancesFrom('ECORE') in
let classifiers : Sequence(String) = ECORE!EClassifier.allInstancesFrom('IN').union(ecoreClassifiers).asSet()->collect(item | item.toRule()) in
let linkRules : Sequence(String) = ECORE!EClass.allInstancesFrom('IN').asSet()->collect(cl | cl.toLink()) in let linkRules : Sequence(String) = ECORE!EClass.allInstancesFrom('IN').asSet()->collect(cl | cl.toLink()) in
('module ' + modulename + ';\n\ncreate LOSS : OUT from MM : IN;\n\n' + thisModule.join(classifiers.union(linkRules), '\n').toString()).writeTo((modulename + '.atl').path); ('module ' + modulename + ';\n\ncreate LOSS : OUT from MM : IN;\n\n' + thisModule.toLink + '\n' + thisModule.join(classifiers.union(linkRules), '\n').toString()).writeTo((modulename + '.atl').path);
helper def : join(seq : Sequence(String), separator : String) : String = helper def : join(seq : Sequence(String), separator : String) : String =
seq->iterate(el ; acc : String = '' | if acc = '' then el else acc + separator + el endif); seq->iterate(el ; acc : String = '' | if acc = '' then el else acc + separator + el endif);
@ -25,37 +26,68 @@ helper context ECORE!EClassifier def : sanitizedFullName : String = self.qualifi
helper context ECORE!EDataType def : toRule() : String = helper context ECORE!EDataType def : toRule() : String =
'lazy rule DT' + self.sanitizedFullName + '2Prim {\n' + 'lazy rule DT' + self.sanitizedFullName + '2Prim {\n' +
'\t' + 'from' + '\n' + '\t' + 'from' + '\n' +
'\t' + 'attrName : String' + ',\n' +
'\t' + 'source : IN!"' + self.qualifiedName + '" in MM\n' + -- NOTE: DataTypes don't inherit'" (source.oclIsTypeOf(IN!"' + self.qualifiedName + '"))\n' + '\t' + 'source : IN!"' + self.qualifiedName + '" in MM\n' + -- NOTE: DataTypes don't inherit'" (source.oclIsTypeOf(IN!"' + self.qualifiedName + '"))\n' +
'\t' + 'to' + '\n' + '\t' + 'to' + '\n' +
'\t' + 'prim : OUT!Primitive (' + '\n' + '\t' + 'prim : OUT!Primitive (' + '\n' +
'\t\t' + 'name <- source.toString()' + '\n' + '\t\t' + 'name <- attrName' + ',\n' +
'\t\t' + 'className <- \'' + self.qualifiedName + '\'\n' +
'\t' + ')' + '\n' + '\t' + ')' + '\n' +
'}\n'; '}\n';
helper context ECORE!EClass def : toLink(source: ECORE!EClass) : String = helper context ECORE!EClass def : toLink(source: ECORE!EClass) : String =
'lazy rule ' + self.sanitizedFullName + 'ReferenceToLink {' + '\n' + 'lazy rule ' + self.sanitizedFullName + 'ReferenceToLink {' + '\n' +
'\t' + 'from' + '\n' + '\t' + 'from' + '\n' +
'\t' + 'refName : String' + ',\n' +
'\t' + 'source : IN!"' + self.qualifiedName + '" in MM (source.oclIsTypeOf(IN!"' + self.qualifiedName + '"))\n' + '\t' + 'source : IN!"' + self.qualifiedName + '" in MM (source.oclIsTypeOf(IN!"' + self.qualifiedName + '"))\n' +
'\t' + 'to' + '\n' + '\t' + 'to' + '\n' +
'\t' + 'link : OUT!Link ('+ '\n' + '\t' + 'link : OUT!Link ('+ '\n' +
'\t\t' + 'name <- refName' + ',\n' +
'\t\t' + 'referenceTo <- source' + '\n' + '\t\t' + 'referenceTo <- source' + '\n' +
'\t' + ')' + '\n' + '\t' + ')' + '\n' +
'}\n'; '}\n';
helper def : toLink : String =
'lazy rule ReferenceToLink {' + '\n' +
'\t' + 'from' + '\n' +
'\t' + 'refName : String' + ',\n' +
'\t' + 'source : OclAny' + '\n' +
'\t' + 'to' + '\n' +
'\t' + 'link : OUT!Link ('+ '\n' +
'\t\t' + 'name <- refName' + ',\n' +
'\t\t' + 'referenceTo <- source' + '\n' +
'\t' + ')' + '\n' +
'}\n';
helper def : referenceToPrimitive ( ref : ECORE!EReference ) : String = helper def : referenceToPrimitive ( ref : ECORE!EReference ) : String =
if ref.many if ref.many
then '.union(source.' + ref.name + '->collect(it | thisModule.ReferenceToLink(it)))' then '.union(source.' + ref.name + '->collect(it | thisModule.ReferenceToLink(\'' + ref.name + '\', it)))'
else '.add(thisModule.ReferenceToLink(source.' + ref.name + '))' else '.including(thisModule.ReferenceToLink(\'' + ref.name + '\', source.' + ref.name + '))'
endif;
helper def : attributeToPrimitive ( attr : ECORE!EAttribute ) : String =
if attr.many
then '.union(source.' + attr.name + '->collect(it | thisModule.DT' + attr.eAttributeType.sanitizedFullName + '2Prim(\'' + attr.name + '\', it)))'
else '.including(thisModule.DT' + attr.eAttributeType.sanitizedFullName + '2Prim(\'' + attr.name + '\', source.' + attr.name + '))'
endif; endif;
helper context ECORE!EClass def : toRule() : String = helper context ECORE!EClass def : toRule() : String =
let noname : Boolean = self.getEStructuralFeature('name').oclIsUndefined() in
'rule CL' + self.sanitizedFullName.debug('class: ') + '2Complex {\n' + 'rule CL' + self.sanitizedFullName.debug('class: ') + '2Complex {\n' +
'\t' + 'from' + '\n' + '\t' + 'from' + '\n' +
'\t' + 'source : IN!"' + self.qualifiedName + '" in MM (source.oclIsTypeOf(IN!"' + self.qualifiedName + '"))\n' + '\t' + 'source : IN!"' + self.qualifiedName + '" in MM (source.oclIsTypeOf(IN!"' + self.qualifiedName + '"))\n' +
'\t' + 'to' + '\n' + '\t' + 'to' + '\n' +
'\t' + 'prim : OUT!Complex (' + '\n' + '\t' + 'prim : OUT!Complex (' + '\n' +
'\t\t' + 'name <- source.toString(),' + '\n' + '\t\t' + 'reference <- source' + ',\n' +
'\t\t' + 'primitives <- Set{}' + thisModule.join(self.eAllReferences->collect(ref | thisModule.referenceToPrimitive(ref)), '') + '\n' + if noname
then '\t\t' + 'name <- \'NoName\'' + ',\n'
else '\t\t' + 'name <- source.name' + ',\n'
endif +
'\t\t' + 'className <- \'' + self.qualifiedName + '\',\n' +
'\t\t' + 'primitives <- Set{}' +
thisModule.join(self.eAllAttributes->collect(attr | thisModule.attributeToPrimitive(attr)), '') +
thisModule.join(self.eAllReferences->collect(ref | thisModule.referenceToPrimitive(ref)), '') + '\n' +
'\t' + ')' + '\n' + '\t' + ')' + '\n' +
'}\n'; '}\n';

View File

@ -0,0 +1,515 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:loss="http://mem4csd.telecom-paris.fr/loss">
<loss:Complex name="NMEA" className="face::integration::TransportChannel" reference="/0">
<primitives name="name" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Position_Int" className="face::datamodel::platform::CompositeTemplate" reference="/1">
<primitives name="description" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="composition" referenceTo="/50"/>
<primitives xsi:type="loss:Link" name="composition" referenceTo="/49"/>
<primitives name="isUnion" className="ecore::EBoolean"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/70"/>
</loss:Complex>
<loss:Complex name="FACE_IntegrationContext" className="face::integration::IntegrationContext" reference="/2">
<primitives xsi:type="loss:Link" name="connection" referenceTo="/71"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="node" referenceTo="/3"/>
<primitives xsi:type="loss:Link" name="node" referenceTo="/4"/>
<primitives xsi:type="loss:Link" name="node" referenceTo="/5"/>
<primitives xsi:type="loss:Link" name="connection" referenceTo="/74"/>
<primitives xsi:type="loss:Link" name="connection" referenceTo="/73"/>
<primitives name="description" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="connection" referenceTo="/75"/>
<primitives xsi:type="loss:Link" name="connection" referenceTo="/72"/>
<primitives xsi:type="loss:Link" name="connection" referenceTo="/76"/>
</loss:Complex>
<loss:Complex name="Speed_Transporter" className="face::integration::ViewTransporter" reference="/3">
<primitives xsi:type="loss:Link" name="inPort" referenceTo="/29"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="channel" referenceTo="/0"/>
<primitives xsi:type="loss:Link" name="outPort" referenceTo="/17"/>
<primitives name="description" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Heading_Transporter" className="face::integration::ViewTransporter" reference="/4">
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="channel" referenceTo="/0"/>
<primitives xsi:type="loss:Link" name="inPort" referenceTo="/30"/>
<primitives name="description" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="outPort" referenceTo="/18"/>
</loss:Complex>
<loss:Complex name="Position_Transporter" className="face::integration::ViewTransporter" reference="/5">
<primitives xsi:type="loss:Link" name="inPort" referenceTo="/31"/>
<primitives name="name" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="outPort" referenceTo="/19"/>
<primitives xsi:type="loss:Link" name="channel" referenceTo="/0"/>
</loss:Complex>
<loss:Complex name="Heading" className="face::uop::SingleInstanceMessageConnection" reference="/6">
<primitives xsi:type="loss:Link" name="realizes"/>
<primitives xsi:type="loss:Link" name="messageType" referenceTo="/52"/>
<primitives name="synchronizationStyle" className="face::uop::SynchronizationStyle"/>
<primitives name="period" className="ecore::EFloat"/>
<primitives name="name" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="messageExchangeType" className="face::uop::MessageExchangeType"/>
</loss:Complex>
<loss:Complex name="Position" className="face::uop::SingleInstanceMessageConnection" reference="/7">
<primitives xsi:type="loss:Link" name="messageType" referenceTo="/1"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="synchronizationStyle" className="face::uop::SynchronizationStyle"/>
<primitives name="period" className="ecore::EFloat"/>
<primitives name="messageExchangeType" className="face::uop::MessageExchangeType"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="realizes"/>
</loss:Complex>
<loss:Complex name="Heading" className="face::uop::SingleInstanceMessageConnection" reference="/8">
<primitives name="name" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="synchronizationStyle" className="face::uop::SynchronizationStyle"/>
<primitives name="messageExchangeType" className="face::uop::MessageExchangeType"/>
<primitives name="period" className="ecore::EFloat"/>
<primitives xsi:type="loss:Link" name="realizes"/>
<primitives xsi:type="loss:Link" name="messageType" referenceTo="/52"/>
</loss:Complex>
<loss:Complex name="Position" className="face::uop::SingleInstanceMessageConnection" reference="/9">
<primitives name="name" className="ecore::EString"/>
<primitives name="synchronizationStyle" className="face::uop::SynchronizationStyle"/>
<primitives name="messageExchangeType" className="face::uop::MessageExchangeType"/>
<primitives xsi:type="loss:Link" name="realizes"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="period" className="ecore::EFloat"/>
<primitives xsi:type="loss:Link" name="messageType" referenceTo="/1"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::UoPOutputEndPoint" reference="/10">
<primitives xsi:type="loss:Link" name="connection" referenceTo="/32"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::UoPOutputEndPoint" reference="/11">
<primitives xsi:type="loss:Link" name="connection" referenceTo="/6"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::UoPOutputEndPoint" reference="/12">
<primitives xsi:type="loss:Link" name="connection" referenceTo="/7"/>
</loss:Complex>
<loss:Complex name="Speed_In_Knots" className="face::datamodel::logical::Query" reference="/13">
<primitives name="description" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/56"/>
<primitives name="specification" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Heading" className="face::datamodel::logical::Query" reference="/14">
<primitives name="description" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/57"/>
<primitives name="specification" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Longitude" className="face::datamodel::logical::Query" reference="/15">
<primitives name="name" className="ecore::EString"/>
<primitives name="specification" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/58"/>
<primitives name="description" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Latitude" className="face::datamodel::logical::Query" reference="/16">
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/59"/>
<primitives name="name" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="specification" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::TSNodeOutputPort" reference="/17">
<primitives xsi:type="loss:Link" name="view" referenceTo="/51"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::TSNodeOutputPort" reference="/18">
<primitives xsi:type="loss:Link" name="view" referenceTo="/52"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::TSNodeOutputPort" reference="/19">
<primitives xsi:type="loss:Link" name="view" referenceTo="/1"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::datamodel::conceptual::QueryComposition" reference="/20">
<primitives xsi:type="loss:Link" name="type" referenceTo="/58"/>
<primitives name="rolename" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::datamodel::conceptual::QueryComposition" reference="/21">
<primitives xsi:type="loss:Link" name="type" referenceTo="/59"/>
<primitives name="rolename" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="FACE_UoPModel" className="face::uop::UoPModel" reference="/22">
<primitives xsi:type="loss:Link" name="element" referenceTo="/43"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/41"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/44"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/42"/>
</loss:Complex>
<loss:Complex name="Speed_pq" className="face::datamodel::platform::Query" reference="/23">
<primitives name="description" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/13"/>
<primitives name="specification" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Heading_pq" className="face::datamodel::platform::Query" reference="/24">
<primitives name="specification" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/14"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Longitude_pd" className="face::datamodel::platform::Query" reference="/25">
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/15"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
<primitives name="specification" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Latitude_pq" className="face::datamodel::platform::Query" reference="/26">
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/16"/>
<primitives name="specification" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::datamodel::logical::QueryComposition" reference="/27">
<primitives xsi:type="loss:Link" name="realizes"/>
<primitives xsi:type="loss:Link" name="type" referenceTo="/15"/>
<primitives name="rolename" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::datamodel::logical::QueryComposition" reference="/28">
<primitives xsi:type="loss:Link" name="type" referenceTo="/16"/>
<primitives xsi:type="loss:Link" name="realizes"/>
<primitives name="rolename" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::TSNodeInputPort" reference="/29">
<primitives xsi:type="loss:Link" name="view" referenceTo="/51"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::TSNodeInputPort" reference="/30">
<primitives xsi:type="loss:Link" name="view" referenceTo="/52"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::TSNodeInputPort" reference="/31">
<primitives xsi:type="loss:Link" name="view" referenceTo="/1"/>
</loss:Complex>
<loss:Complex name="Speed" className="face::uop::QueuingConnection" reference="/32">
<primitives name="period" className="ecore::EFloat"/>
<primitives name="depth" className="ecore::EInt"/>
<primitives name="name" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="messageExchangeType" className="face::uop::MessageExchangeType"/>
<primitives name="synchronizationStyle" className="face::uop::SynchronizationStyle"/>
<primitives xsi:type="loss:Link" name="realizes"/>
<primitives xsi:type="loss:Link" name="messageType" referenceTo="/51"/>
</loss:Complex>
<loss:Complex name="Speed" className="face::uop::QueuingConnection" reference="/33">
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="messageType" referenceTo="/51"/>
<primitives xsi:type="loss:Link" name="realizes"/>
<primitives name="depth" className="ecore::EInt"/>
<primitives name="messageExchangeType" className="face::uop::MessageExchangeType"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="synchronizationStyle" className="face::uop::SynchronizationStyle"/>
<primitives name="period" className="ecore::EFloat"/>
</loss:Complex>
<loss:Complex name="FACE_PlatformDataModel" className="face::datamodel::PlatformDataModel" reference="/34">
<primitives name="description" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/24"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/25"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/54"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/1"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/53"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/26"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/23"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/52"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/51"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::uop::RAMMemoryRequirements" reference="/35">
<primitives name="roDataMax" className="ecore::EInt"/>
<primitives name="heapStackMin" className="ecore::EInt"/>
<primitives name="heapStackTypical" className="ecore::EInt"/>
<primitives name="heapStackMax" className="ecore::EInt"/>
<primitives name="textMax" className="ecore::EInt"/>
<primitives name="bssMax" className="ecore::EInt"/>
<primitives name="dataMax" className="ecore::EInt"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::uop::RAMMemoryRequirements" reference="/36">
<primitives name="dataMax" className="ecore::EInt"/>
<primitives name="textMax" className="ecore::EInt"/>
<primitives name="heapStackMax" className="ecore::EInt"/>
<primitives name="bssMax" className="ecore::EInt"/>
<primitives name="roDataMax" className="ecore::EInt"/>
<primitives name="heapStackMin" className="ecore::EInt"/>
<primitives name="heapStackTypical" className="ecore::EInt"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::uop::RAMMemoryRequirements" reference="/37">
<primitives name="bssMax" className="ecore::EInt"/>
<primitives name="heapStackMax" className="ecore::EInt"/>
<primitives name="roDataMax" className="ecore::EInt"/>
<primitives name="dataMax" className="ecore::EInt"/>
<primitives name="heapStackTypical" className="ecore::EInt"/>
<primitives name="textMax" className="ecore::EInt"/>
<primitives name="heapStackMin" className="ecore::EInt"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::uop::RAMMemoryRequirements" reference="/38">
<primitives name="textMax" className="ecore::EInt"/>
<primitives name="dataMax" className="ecore::EInt"/>
<primitives name="roDataMax" className="ecore::EInt"/>
<primitives name="bssMax" className="ecore::EInt"/>
<primitives name="heapStackMax" className="ecore::EInt"/>
<primitives name="heapStackTypical" className="ecore::EInt"/>
<primitives name="heapStackMin" className="ecore::EInt"/>
</loss:Complex>
<loss:Complex name="FACE_LogicalDataModel" className="face::datamodel::LogicalDataModel" reference="/39">
<primitives xsi:type="loss:Link" name="element" referenceTo="/15"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/70"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/13"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/16"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/14"/>
</loss:Complex>
<loss:Complex name="FACE_Architecture" className="face::ArchitectureModel" reference="/40">
<primitives xsi:type="loss:Link" name="dm" referenceTo="/64"/>
<primitives xsi:type="loss:Link" name="um" referenceTo="/22"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="im" referenceTo="/65"/>
</loss:Complex>
<loss:Complex name="Doppler_Log" className="face::uop::PortableComponent" reference="/41">
<primitives xsi:type="loss:Link" name="thread" referenceTo="/45"/>
<primitives name="name" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="partitionType" className="face::uop::PartitionType"/>
<primitives name="designAssuranceStandard" className="face::uop::DesignAssuranceStandard"/>
<primitives name="faceProfile" className="face::uop::FaceProfile"/>
<primitives xsi:type="loss:Link" name="realizes"/>
<primitives xsi:type="loss:Link" name="connection" referenceTo="/32"/>
<primitives name="transportAPILanguage" className="face::uop::ProgrammingLanguage"/>
<primitives name="designAssuranceLevel" className="face::uop::DesignAssuranceLevel"/>
<primitives xsi:type="loss:Link" name="memoryRequirements" referenceTo="/35"/>
</loss:Complex>
<loss:Complex name="Magnetic_Compass" className="face::uop::PortableComponent" reference="/42">
<primitives name="transportAPILanguage" className="face::uop::ProgrammingLanguage"/>
<primitives name="faceProfile" className="face::uop::FaceProfile"/>
<primitives xsi:type="loss:Link" name="memoryRequirements" referenceTo="/36"/>
<primitives xsi:type="loss:Link" name="realizes"/>
<primitives name="designAssuranceLevel" className="face::uop::DesignAssuranceLevel"/>
<primitives name="description" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="thread" referenceTo="/46"/>
<primitives xsi:type="loss:Link" name="connection" referenceTo="/6"/>
<primitives name="partitionType" className="face::uop::PartitionType"/>
<primitives name="name" className="ecore::EString"/>
<primitives name="designAssuranceStandard" className="face::uop::DesignAssuranceStandard"/>
</loss:Complex>
<loss:Complex name="GNSS_Receiver" className="face::uop::PortableComponent" reference="/43">
<primitives xsi:type="loss:Link" name="thread" referenceTo="/47"/>
<primitives name="faceProfile" className="face::uop::FaceProfile"/>
<primitives name="designAssuranceLevel" className="face::uop::DesignAssuranceLevel"/>
<primitives xsi:type="loss:Link" name="memoryRequirements" referenceTo="/37"/>
<primitives name="designAssuranceStandard" className="face::uop::DesignAssuranceStandard"/>
<primitives name="partitionType" className="face::uop::PartitionType"/>
<primitives xsi:type="loss:Link" name="connection" referenceTo="/7"/>
<primitives name="name" className="ecore::EString"/>
<primitives name="transportAPILanguage" className="face::uop::ProgrammingLanguage"/>
<primitives xsi:type="loss:Link" name="realizes"/>
<primitives name="description" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Display" className="face::uop::PortableComponent" reference="/44">
<primitives name="faceProfile" className="face::uop::FaceProfile"/>
<primitives xsi:type="loss:Link" name="thread" referenceTo="/48"/>
<primitives xsi:type="loss:Link" name="connection" referenceTo="/33"/>
<primitives xsi:type="loss:Link" name="connection" referenceTo="/9"/>
<primitives name="partitionType" className="face::uop::PartitionType"/>
<primitives name="designAssuranceStandard" className="face::uop::DesignAssuranceStandard"/>
<primitives xsi:type="loss:Link" name="memoryRequirements" referenceTo="/38"/>
<primitives xsi:type="loss:Link" name="connection" referenceTo="/8"/>
<primitives xsi:type="loss:Link" name="realizes"/>
<primitives name="name" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="transportAPILanguage" className="face::uop::ProgrammingLanguage"/>
<primitives name="designAssuranceLevel" className="face::uop::DesignAssuranceLevel"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::uop::Thread" reference="/45">
<primitives name="relativeCoreAffinity" className="ecore::EInt"/>
<primitives name="threadType" className="face::uop::ThreadType"/>
<primitives name="relativePriority" className="ecore::EInt"/>
<primitives name="period" className="ecore::EFloat"/>
<primitives name="timeCapacity" className="ecore::EFloat"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::uop::Thread" reference="/46">
<primitives name="timeCapacity" className="ecore::EFloat"/>
<primitives name="relativePriority" className="ecore::EInt"/>
<primitives name="relativeCoreAffinity" className="ecore::EInt"/>
<primitives name="period" className="ecore::EFloat"/>
<primitives name="threadType" className="face::uop::ThreadType"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::uop::Thread" reference="/47">
<primitives name="timeCapacity" className="ecore::EFloat"/>
<primitives name="relativePriority" className="ecore::EInt"/>
<primitives name="relativeCoreAffinity" className="ecore::EInt"/>
<primitives name="period" className="ecore::EFloat"/>
<primitives name="threadType" className="face::uop::ThreadType"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::uop::Thread" reference="/48">
<primitives name="relativeCoreAffinity" className="ecore::EInt"/>
<primitives name="timeCapacity" className="ecore::EFloat"/>
<primitives name="period" className="ecore::EFloat"/>
<primitives name="threadType" className="face::uop::ThreadType"/>
<primitives name="relativePriority" className="ecore::EInt"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::datamodel::platform::TemplateComposition" reference="/49">
<primitives xsi:type="loss:Link" name="type" referenceTo="/53"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/27"/>
<primitives name="rolename" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::datamodel::platform::TemplateComposition" reference="/50">
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/28"/>
<primitives name="rolename" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="type" referenceTo="/54"/>
</loss:Complex>
<loss:Complex name="Speed_In_Knots_Int" className="face::datamodel::platform::Template" reference="/51">
<primitives name="description" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="boundQuery" referenceTo="/23"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="effectiveQuery"/>
<primitives name="specification" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Heading_Int" className="face::datamodel::platform::Template" reference="/52">
<primitives xsi:type="loss:Link" name="boundQuery" referenceTo="/24"/>
<primitives name="name" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="specification" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="effectiveQuery"/>
</loss:Complex>
<loss:Complex name="Longitude_Int" className="face::datamodel::platform::Template" reference="/53">
<primitives xsi:type="loss:Link" name="effectiveQuery"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="specification" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="boundQuery" referenceTo="/25"/>
<primitives name="name" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Latitude_Int" className="face::datamodel::platform::Template" reference="/54">
<primitives name="description" className="ecore::EString"/>
<primitives name="specification" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="effectiveQuery"/>
<primitives xsi:type="loss:Link" name="boundQuery" referenceTo="/26"/>
<primitives name="name" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="FACE_ConceptualDataModel" className="face::datamodel::ConceptualDataModel" reference="/55">
<primitives name="description" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/60"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/57"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/58"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/59"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/56"/>
</loss:Complex>
<loss:Complex name="Speed" className="face::datamodel::conceptual::Query" reference="/56">
<primitives name="specification" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Angle" className="face::datamodel::conceptual::Query" reference="/57">
<primitives name="name" className="ecore::EString"/>
<primitives name="specification" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Longitude" className="face::datamodel::conceptual::Query" reference="/58">
<primitives name="specification" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Latitude" className="face::datamodel::conceptual::Query" reference="/59">
<primitives name="name" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="specification" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Position" className="face::datamodel::conceptual::CompositeQuery" reference="/60">
<primitives xsi:type="loss:Link" name="composition" referenceTo="/21"/>
<primitives xsi:type="loss:Link" name="composition" referenceTo="/20"/>
<primitives name="isUnion" className="ecore::EBoolean"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::UoPInputEndPoint" reference="/61">
<primitives xsi:type="loss:Link" name="connection" referenceTo="/33"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::UoPInputEndPoint" reference="/62">
<primitives xsi:type="loss:Link" name="connection" referenceTo="/8"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::UoPInputEndPoint" reference="/63">
<primitives xsi:type="loss:Link" name="connection" referenceTo="/9"/>
</loss:Complex>
<loss:Complex name="FACE_DataModel" className="face::datamodel::DataModel" reference="/64">
<primitives xsi:type="loss:Link" name="ldm" referenceTo="/39"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="cdm" referenceTo="/55"/>
<primitives xsi:type="loss:Link" name="pdm" referenceTo="/34"/>
<primitives name="description" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="FACE_IntegrationModel" className="face::integration::IntegrationModel" reference="/65">
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/66"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/67"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/2"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/0"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/68"/>
<primitives name="description" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="element" referenceTo="/69"/>
</loss:Complex>
<loss:Complex name="Log" className="face::integration::UoPInstance" reference="/66">
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="output" referenceTo="/10"/>
<primitives name="description" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/41"/>
<primitives name="configurationURI" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="Compass" className="face::integration::UoPInstance" reference="/67">
<primitives name="configurationURI" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="output" referenceTo="/11"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/42"/>
</loss:Complex>
<loss:Complex name="GPS" className="face::integration::UoPInstance" reference="/68">
<primitives name="description" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/43"/>
<primitives name="configurationURI" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="output" referenceTo="/12"/>
</loss:Complex>
<loss:Complex name="Display" className="face::integration::UoPInstance" reference="/69">
<primitives name="configurationURI" className="ecore::EString"/>
<primitives name="name" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/44"/>
<primitives name="description" className="ecore::EString"/>
<primitives xsi:type="loss:Link" name="input" referenceTo="/61"/>
<primitives xsi:type="loss:Link" name="input" referenceTo="/63"/>
<primitives xsi:type="loss:Link" name="input" referenceTo="/62"/>
</loss:Complex>
<loss:Complex name="Position" className="face::datamodel::logical::CompositeQuery" reference="/70">
<primitives xsi:type="loss:Link" name="composition" referenceTo="/27"/>
<primitives xsi:type="loss:Link" name="realizes" referenceTo="/60"/>
<primitives xsi:type="loss:Link" name="composition" referenceTo="/28"/>
<primitives name="isUnion" className="ecore::EBoolean"/>
<primitives name="name" className="ecore::EString"/>
<primitives name="description" className="ecore::EString"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::TSNodeConnection" reference="/71">
<primitives xsi:type="loss:Link" name="destination" referenceTo="/29"/>
<primitives xsi:type="loss:Link" name="source" referenceTo="/10"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::TSNodeConnection" reference="/72">
<primitives xsi:type="loss:Link" name="source" referenceTo="/17"/>
<primitives xsi:type="loss:Link" name="destination" referenceTo="/61"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::TSNodeConnection" reference="/73">
<primitives xsi:type="loss:Link" name="destination" referenceTo="/30"/>
<primitives xsi:type="loss:Link" name="source" referenceTo="/11"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::TSNodeConnection" reference="/74">
<primitives xsi:type="loss:Link" name="destination" referenceTo="/62"/>
<primitives xsi:type="loss:Link" name="source" referenceTo="/18"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::TSNodeConnection" reference="/75">
<primitives xsi:type="loss:Link" name="source" referenceTo="/12"/>
<primitives xsi:type="loss:Link" name="destination" referenceTo="/31"/>
</loss:Complex>
<loss:Complex name="NoName" className="face::integration::TSNodeConnection" reference="/76">
<primitives xsi:type="loss:Link" name="source" referenceTo="/19"/>
<primitives xsi:type="loss:Link" name="destination" referenceTo="/63"/>
</loss:Complex>
</xmi:XMI>

1
fr.tpt.mem4csd.loss/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*.class

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="loss" nsURI="http://mem4csd.telecom-paris.fr/loss" nsPrefix="loss"> xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="loss" nsURI="http://mem4csd.telecom-paris.fr/loss" nsPrefix="loss">
<eClassifiers xsi:type="ecore:EClass" name="NamedObject" abstract="true"> <eClassifiers xsi:type="ecore:EClass" name="NamedObject" abstract="true" eSuperTypes="http://www.eclipse.org/emf/2002/Ecore#//EObject">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="qname" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" lowerBound="1"
changeable="false" derived="true" iD="true"/> eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers> </eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Primitive" eSuperTypes="#//NamedObject"> <eClassifiers xsi:type="ecore:EClass" name="Primitive" eSuperTypes="#//NamedObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="type" lowerBound="1" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject" <eStructuralFeatures xsi:type="ecore:EReference" name="type" lowerBound="1" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"
@ -17,5 +17,7 @@
<eClassifiers xsi:type="ecore:EClass" name="Complex" eSuperTypes="#//NamedObject"> <eClassifiers xsi:type="ecore:EClass" name="Complex" eSuperTypes="#//NamedObject">
<eStructuralFeatures xsi:type="ecore:EReference" name="primitives" upperBound="-1" <eStructuralFeatures xsi:type="ecore:EReference" name="primitives" upperBound="-1"
eType="#//Primitive" containment="true"/> eType="#//Primitive" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="reference" lowerBound="1"
eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
</eClassifiers> </eClassifiers>
</ecore:EPackage> </ecore:EPackage>

View File

@ -12,7 +12,7 @@
ecorePackage="loss.ecore#/"> ecorePackage="loss.ecore#/">
<genClasses image="false" ecoreClass="loss.ecore#//NamedObject"> <genClasses image="false" ecoreClass="loss.ecore#//NamedObject">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute loss.ecore#//NamedObject/name"/> <genFeatures createChild="false" ecoreFeature="ecore:EAttribute loss.ecore#//NamedObject/name"/>
<genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute loss.ecore#//NamedObject/qname"/> <genFeatures createChild="false" ecoreFeature="ecore:EAttribute loss.ecore#//NamedObject/className"/>
</genClasses> </genClasses>
<genClasses ecoreClass="loss.ecore#//Primitive"> <genClasses ecoreClass="loss.ecore#//Primitive">
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference loss.ecore#//Primitive/type"/> <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference loss.ecore#//Primitive/type"/>
@ -22,6 +22,7 @@
</genClasses> </genClasses>
<genClasses ecoreClass="loss.ecore#//Complex"> <genClasses ecoreClass="loss.ecore#//Complex">
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference loss.ecore#//Complex/primitives"/> <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference loss.ecore#//Complex/primitives"/>
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference loss.ecore#//Complex/reference"/>
</genClasses> </genClasses>
</genPackages> </genPackages>
</genmodel:GenModel> </genmodel:GenModel>

View File

@ -3,6 +3,7 @@
package fr.tpt.mem4csd.loss; package fr.tpt.mem4csd.loss;
import org.eclipse.emf.common.util.EList; import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
/** /**
* <!-- begin-user-doc --> * <!-- begin-user-doc -->
@ -14,6 +15,7 @@ import org.eclipse.emf.common.util.EList;
* </p> * </p>
* <ul> * <ul>
* <li>{@link fr.tpt.mem4csd.loss.Complex#getPrimitives <em>Primitives</em>}</li> * <li>{@link fr.tpt.mem4csd.loss.Complex#getPrimitives <em>Primitives</em>}</li>
* <li>{@link fr.tpt.mem4csd.loss.Complex#getReference <em>Reference</em>}</li>
* </ul> * </ul>
* *
* @see fr.tpt.mem4csd.loss.LossPackage#getComplex() * @see fr.tpt.mem4csd.loss.LossPackage#getComplex()
@ -33,4 +35,26 @@ public interface Complex extends NamedObject {
*/ */
EList<Primitive> getPrimitives(); EList<Primitive> getPrimitives();
/**
* Returns the value of the '<em><b>Reference</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the value of the '<em>Reference</em>' reference.
* @see #setReference(EObject)
* @see fr.tpt.mem4csd.loss.LossPackage#getComplex_Reference()
* @model required="true"
* @generated
*/
EObject getReference();
/**
* Sets the value of the '{@link fr.tpt.mem4csd.loss.Complex#getReference <em>Reference</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Reference</em>' reference.
* @see #getReference()
* @generated
*/
void setReference(EObject value);
} // Complex } // Complex

View File

@ -76,13 +76,13 @@ public interface LossPackage extends EPackage {
int NAMED_OBJECT__NAME = 0; int NAMED_OBJECT__NAME = 0;
/** /**
* The feature id for the '<em><b>Qname</b></em>' attribute. * The feature id for the '<em><b>Class Name</b></em>' attribute.
* <!-- begin-user-doc --> * <!-- begin-user-doc -->
* <!-- end-user-doc --> * <!-- end-user-doc -->
* @generated * @generated
* @ordered * @ordered
*/ */
int NAMED_OBJECT__QNAME = 1; int NAMED_OBJECT__CLASS_NAME = 1;
/** /**
* The number of structural features of the '<em>Named Object</em>' class. * The number of structural features of the '<em>Named Object</em>' class.
@ -122,13 +122,13 @@ public interface LossPackage extends EPackage {
int PRIMITIVE__NAME = NAMED_OBJECT__NAME; int PRIMITIVE__NAME = NAMED_OBJECT__NAME;
/** /**
* The feature id for the '<em><b>Qname</b></em>' attribute. * The feature id for the '<em><b>Class Name</b></em>' attribute.
* <!-- begin-user-doc --> * <!-- begin-user-doc -->
* <!-- end-user-doc --> * <!-- end-user-doc -->
* @generated * @generated
* @ordered * @ordered
*/ */
int PRIMITIVE__QNAME = NAMED_OBJECT__QNAME; int PRIMITIVE__CLASS_NAME = NAMED_OBJECT__CLASS_NAME;
/** /**
* The feature id for the '<em><b>Type</b></em>' containment reference. * The feature id for the '<em><b>Type</b></em>' containment reference.
@ -177,13 +177,13 @@ public interface LossPackage extends EPackage {
int LINK__NAME = PRIMITIVE__NAME; int LINK__NAME = PRIMITIVE__NAME;
/** /**
* The feature id for the '<em><b>Qname</b></em>' attribute. * The feature id for the '<em><b>Class Name</b></em>' attribute.
* <!-- begin-user-doc --> * <!-- begin-user-doc -->
* <!-- end-user-doc --> * <!-- end-user-doc -->
* @generated * @generated
* @ordered * @ordered
*/ */
int LINK__QNAME = PRIMITIVE__QNAME; int LINK__CLASS_NAME = PRIMITIVE__CLASS_NAME;
/** /**
* The feature id for the '<em><b>Type</b></em>' containment reference. * The feature id for the '<em><b>Type</b></em>' containment reference.
@ -241,13 +241,13 @@ public interface LossPackage extends EPackage {
int COMPLEX__NAME = NAMED_OBJECT__NAME; int COMPLEX__NAME = NAMED_OBJECT__NAME;
/** /**
* The feature id for the '<em><b>Qname</b></em>' attribute. * The feature id for the '<em><b>Class Name</b></em>' attribute.
* <!-- begin-user-doc --> * <!-- begin-user-doc -->
* <!-- end-user-doc --> * <!-- end-user-doc -->
* @generated * @generated
* @ordered * @ordered
*/ */
int COMPLEX__QNAME = NAMED_OBJECT__QNAME; int COMPLEX__CLASS_NAME = NAMED_OBJECT__CLASS_NAME;
/** /**
* The feature id for the '<em><b>Primitives</b></em>' containment reference list. * The feature id for the '<em><b>Primitives</b></em>' containment reference list.
@ -258,6 +258,15 @@ public interface LossPackage extends EPackage {
*/ */
int COMPLEX__PRIMITIVES = NAMED_OBJECT_FEATURE_COUNT + 0; int COMPLEX__PRIMITIVES = NAMED_OBJECT_FEATURE_COUNT + 0;
/**
* The feature id for the '<em><b>Reference</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int COMPLEX__REFERENCE = NAMED_OBJECT_FEATURE_COUNT + 1;
/** /**
* The number of structural features of the '<em>Complex</em>' class. * The number of structural features of the '<em>Complex</em>' class.
* <!-- begin-user-doc --> * <!-- begin-user-doc -->
@ -265,7 +274,7 @@ public interface LossPackage extends EPackage {
* @generated * @generated
* @ordered * @ordered
*/ */
int COMPLEX_FEATURE_COUNT = NAMED_OBJECT_FEATURE_COUNT + 1; int COMPLEX_FEATURE_COUNT = NAMED_OBJECT_FEATURE_COUNT + 2;
/** /**
* The number of operations of the '<em>Complex</em>' class. * The number of operations of the '<em>Complex</em>' class.
@ -298,15 +307,15 @@ public interface LossPackage extends EPackage {
EAttribute getNamedObject_Name(); EAttribute getNamedObject_Name();
/** /**
* Returns the meta object for the attribute '{@link fr.tpt.mem4csd.loss.NamedObject#getQname <em>Qname</em>}'. * Returns the meta object for the attribute '{@link fr.tpt.mem4csd.loss.NamedObject#getClassName <em>Class Name</em>}'.
* <!-- begin-user-doc --> * <!-- begin-user-doc -->
* <!-- end-user-doc --> * <!-- end-user-doc -->
* @return the meta object for the attribute '<em>Qname</em>'. * @return the meta object for the attribute '<em>Class Name</em>'.
* @see fr.tpt.mem4csd.loss.NamedObject#getQname() * @see fr.tpt.mem4csd.loss.NamedObject#getClassName()
* @see #getNamedObject() * @see #getNamedObject()
* @generated * @generated
*/ */
EAttribute getNamedObject_Qname(); EAttribute getNamedObject_ClassName();
/** /**
* Returns the meta object for class '{@link fr.tpt.mem4csd.loss.Primitive <em>Primitive</em>}'. * Returns the meta object for class '{@link fr.tpt.mem4csd.loss.Primitive <em>Primitive</em>}'.
@ -371,6 +380,17 @@ public interface LossPackage extends EPackage {
*/ */
EReference getComplex_Primitives(); EReference getComplex_Primitives();
/**
* Returns the meta object for the reference '{@link fr.tpt.mem4csd.loss.Complex#getReference <em>Reference</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the meta object for the reference '<em>Reference</em>'.
* @see fr.tpt.mem4csd.loss.Complex#getReference()
* @see #getComplex()
* @generated
*/
EReference getComplex_Reference();
/** /**
* Returns the factory that creates the instances of the model. * Returns the factory that creates the instances of the model.
* <!-- begin-user-doc --> * <!-- begin-user-doc -->
@ -413,12 +433,12 @@ public interface LossPackage extends EPackage {
EAttribute NAMED_OBJECT__NAME = eINSTANCE.getNamedObject_Name(); EAttribute NAMED_OBJECT__NAME = eINSTANCE.getNamedObject_Name();
/** /**
* The meta object literal for the '<em><b>Qname</b></em>' attribute feature. * The meta object literal for the '<em><b>Class Name</b></em>' attribute feature.
* <!-- begin-user-doc --> * <!-- begin-user-doc -->
* <!-- end-user-doc --> * <!-- end-user-doc -->
* @generated * @generated
*/ */
EAttribute NAMED_OBJECT__QNAME = eINSTANCE.getNamedObject_Qname(); EAttribute NAMED_OBJECT__CLASS_NAME = eINSTANCE.getNamedObject_ClassName();
/** /**
* The meta object literal for the '{@link fr.tpt.mem4csd.loss.impl.PrimitiveImpl <em>Primitive</em>}' class. * The meta object literal for the '{@link fr.tpt.mem4csd.loss.impl.PrimitiveImpl <em>Primitive</em>}' class.
@ -474,6 +494,14 @@ public interface LossPackage extends EPackage {
*/ */
EReference COMPLEX__PRIMITIVES = eINSTANCE.getComplex_Primitives(); EReference COMPLEX__PRIMITIVES = eINSTANCE.getComplex_Primitives();
/**
* The meta object literal for the '<em><b>Reference</b></em>' reference feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
EReference COMPLEX__REFERENCE = eINSTANCE.getComplex_Reference();
} }
} //LossPackage } //LossPackage

View File

@ -14,7 +14,7 @@ import org.eclipse.emf.ecore.EObject;
* </p> * </p>
* <ul> * <ul>
* <li>{@link fr.tpt.mem4csd.loss.NamedObject#getName <em>Name</em>}</li> * <li>{@link fr.tpt.mem4csd.loss.NamedObject#getName <em>Name</em>}</li>
* <li>{@link fr.tpt.mem4csd.loss.NamedObject#getQname <em>Qname</em>}</li> * <li>{@link fr.tpt.mem4csd.loss.NamedObject#getClassName <em>Class Name</em>}</li>
* </ul> * </ul>
* *
* @see fr.tpt.mem4csd.loss.LossPackage#getNamedObject() * @see fr.tpt.mem4csd.loss.LossPackage#getNamedObject()
@ -29,7 +29,7 @@ public interface NamedObject extends EObject {
* @return the value of the '<em>Name</em>' attribute. * @return the value of the '<em>Name</em>' attribute.
* @see #setName(String) * @see #setName(String)
* @see fr.tpt.mem4csd.loss.LossPackage#getNamedObject_Name() * @see fr.tpt.mem4csd.loss.LossPackage#getNamedObject_Name()
* @model required="true" * @model
* @generated * @generated
*/ */
String getName(); String getName();
@ -45,14 +45,25 @@ public interface NamedObject extends EObject {
void setName(String value); void setName(String value);
/** /**
* Returns the value of the '<em><b>Qname</b></em>' attribute. * Returns the value of the '<em><b>Class Name</b></em>' attribute.
* <!-- begin-user-doc --> * <!-- begin-user-doc -->
* <!-- end-user-doc --> * <!-- end-user-doc -->
* @return the value of the '<em>Qname</em>' attribute. * @return the value of the '<em>Class Name</em>' attribute.
* @see fr.tpt.mem4csd.loss.LossPackage#getNamedObject_Qname() * @see #setClassName(String)
* @model id="true" required="true" changeable="false" derived="true" * @see fr.tpt.mem4csd.loss.LossPackage#getNamedObject_ClassName()
* @model required="true"
* @generated * @generated
*/ */
String getQname(); String getClassName();
/**
* Sets the value of the '{@link fr.tpt.mem4csd.loss.NamedObject#getClassName <em>Class Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Class Name</em>' attribute.
* @see #getClassName()
* @generated
*/
void setClassName(String value);
} // NamedObject } // NamedObject

View File

@ -8,13 +8,16 @@ import fr.tpt.mem4csd.loss.Primitive;
import java.util.Collection; import java.util.Collection;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain; import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.common.util.EList; import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.util.EObjectContainmentEList; import org.eclipse.emf.ecore.util.EObjectContainmentEList;
import org.eclipse.emf.ecore.util.InternalEList; import org.eclipse.emf.ecore.util.InternalEList;
@ -27,6 +30,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
* </p> * </p>
* <ul> * <ul>
* <li>{@link fr.tpt.mem4csd.loss.impl.ComplexImpl#getPrimitives <em>Primitives</em>}</li> * <li>{@link fr.tpt.mem4csd.loss.impl.ComplexImpl#getPrimitives <em>Primitives</em>}</li>
* <li>{@link fr.tpt.mem4csd.loss.impl.ComplexImpl#getReference <em>Reference</em>}</li>
* </ul> * </ul>
* *
* @generated * @generated
@ -42,6 +46,16 @@ public class ComplexImpl extends NamedObjectImpl implements Complex {
*/ */
protected EList<Primitive> primitives; protected EList<Primitive> primitives;
/**
* The cached value of the '{@link #getReference() <em>Reference</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getReference()
* @generated
* @ordered
*/
protected EObject reference;
/** /**
* <!-- begin-user-doc --> * <!-- begin-user-doc -->
* <!-- end-user-doc --> * <!-- end-user-doc -->
@ -74,6 +88,48 @@ public class ComplexImpl extends NamedObjectImpl implements Complex {
return primitives; return primitives;
} }
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EObject getReference() {
if (reference != null && reference.eIsProxy()) {
InternalEObject oldReference = (InternalEObject) reference;
reference = eResolveProxy(oldReference);
if (reference != oldReference) {
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.RESOLVE, LossPackage.COMPLEX__REFERENCE,
oldReference, reference));
}
}
return reference;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EObject basicGetReference() {
return reference;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void setReference(EObject newReference) {
EObject oldReference = reference;
reference = newReference;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, LossPackage.COMPLEX__REFERENCE, oldReference,
reference));
}
/** /**
* <!-- begin-user-doc --> * <!-- begin-user-doc -->
* <!-- end-user-doc --> * <!-- end-user-doc -->
@ -98,6 +154,10 @@ public class ComplexImpl extends NamedObjectImpl implements Complex {
switch (featureID) { switch (featureID) {
case LossPackage.COMPLEX__PRIMITIVES: case LossPackage.COMPLEX__PRIMITIVES:
return getPrimitives(); return getPrimitives();
case LossPackage.COMPLEX__REFERENCE:
if (resolve)
return getReference();
return basicGetReference();
} }
return super.eGet(featureID, resolve, coreType); return super.eGet(featureID, resolve, coreType);
} }
@ -115,6 +175,9 @@ public class ComplexImpl extends NamedObjectImpl implements Complex {
getPrimitives().clear(); getPrimitives().clear();
getPrimitives().addAll((Collection<? extends Primitive>) newValue); getPrimitives().addAll((Collection<? extends Primitive>) newValue);
return; return;
case LossPackage.COMPLEX__REFERENCE:
setReference((EObject) newValue);
return;
} }
super.eSet(featureID, newValue); super.eSet(featureID, newValue);
} }
@ -130,6 +193,9 @@ public class ComplexImpl extends NamedObjectImpl implements Complex {
case LossPackage.COMPLEX__PRIMITIVES: case LossPackage.COMPLEX__PRIMITIVES:
getPrimitives().clear(); getPrimitives().clear();
return; return;
case LossPackage.COMPLEX__REFERENCE:
setReference((EObject) null);
return;
} }
super.eUnset(featureID); super.eUnset(featureID);
} }
@ -144,6 +210,8 @@ public class ComplexImpl extends NamedObjectImpl implements Complex {
switch (featureID) { switch (featureID) {
case LossPackage.COMPLEX__PRIMITIVES: case LossPackage.COMPLEX__PRIMITIVES:
return primitives != null && !primitives.isEmpty(); return primitives != null && !primitives.isEmpty();
case LossPackage.COMPLEX__REFERENCE:
return reference != null;
} }
return super.eIsSet(featureID); return super.eIsSet(featureID);
} }

View File

@ -141,7 +141,7 @@ public class LossPackageImpl extends EPackageImpl implements LossPackage {
* @generated * @generated
*/ */
@Override @Override
public EAttribute getNamedObject_Qname() { public EAttribute getNamedObject_ClassName() {
return (EAttribute) namedObjectEClass.getEStructuralFeatures().get(1); return (EAttribute) namedObjectEClass.getEStructuralFeatures().get(1);
} }
@ -205,6 +205,16 @@ public class LossPackageImpl extends EPackageImpl implements LossPackage {
return (EReference) complexEClass.getEStructuralFeatures().get(0); return (EReference) complexEClass.getEStructuralFeatures().get(0);
} }
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EReference getComplex_Reference() {
return (EReference) complexEClass.getEStructuralFeatures().get(1);
}
/** /**
* <!-- begin-user-doc --> * <!-- begin-user-doc -->
* <!-- end-user-doc --> * <!-- end-user-doc -->
@ -237,7 +247,7 @@ public class LossPackageImpl extends EPackageImpl implements LossPackage {
// Create classes and their features // Create classes and their features
namedObjectEClass = createEClass(NAMED_OBJECT); namedObjectEClass = createEClass(NAMED_OBJECT);
createEAttribute(namedObjectEClass, NAMED_OBJECT__NAME); createEAttribute(namedObjectEClass, NAMED_OBJECT__NAME);
createEAttribute(namedObjectEClass, NAMED_OBJECT__QNAME); createEAttribute(namedObjectEClass, NAMED_OBJECT__CLASS_NAME);
primitiveEClass = createEClass(PRIMITIVE); primitiveEClass = createEClass(PRIMITIVE);
createEReference(primitiveEClass, PRIMITIVE__TYPE); createEReference(primitiveEClass, PRIMITIVE__TYPE);
@ -247,6 +257,7 @@ public class LossPackageImpl extends EPackageImpl implements LossPackage {
complexEClass = createEClass(COMPLEX); complexEClass = createEClass(COMPLEX);
createEReference(complexEClass, COMPLEX__PRIMITIVES); createEReference(complexEClass, COMPLEX__PRIMITIVES);
createEReference(complexEClass, COMPLEX__REFERENCE);
} }
/** /**
@ -285,10 +296,11 @@ public class LossPackageImpl extends EPackageImpl implements LossPackage {
// Initialize classes, features, and operations; add parameters // Initialize classes, features, and operations; add parameters
initEClass(namedObjectEClass, NamedObject.class, "NamedObject", IS_ABSTRACT, !IS_INTERFACE, initEClass(namedObjectEClass, NamedObject.class, "NamedObject", IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS); IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getNamedObject_Name(), ecorePackage.getEString(), "name", null, 1, 1, NamedObject.class, initEAttribute(getNamedObject_Name(), ecorePackage.getEString(), "name", null, 0, 1, NamedObject.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getNamedObject_Qname(), ecorePackage.getEString(), "qname", null, 1, 1, NamedObject.class, initEAttribute(getNamedObject_ClassName(), ecorePackage.getEString(), "className", null, 1, 1,
!IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); NamedObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
!IS_DERIVED, IS_ORDERED);
initEClass(primitiveEClass, Primitive.class, "Primitive", !IS_ABSTRACT, !IS_INTERFACE, initEClass(primitiveEClass, Primitive.class, "Primitive", !IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS); IS_GENERATED_INSTANCE_CLASS);
@ -305,6 +317,9 @@ public class LossPackageImpl extends EPackageImpl implements LossPackage {
initEReference(getComplex_Primitives(), this.getPrimitive(), null, "primitives", null, 0, -1, Complex.class, initEReference(getComplex_Primitives(), this.getPrimitive(), null, "primitives", null, 0, -1, Complex.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
IS_UNIQUE, !IS_DERIVED, IS_ORDERED); IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getComplex_Reference(), ecorePackage.getEObject(), null, "reference", null, 1, 1, Complex.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
// Create resource // Create resource
createResource(eNS_URI); createResource(eNS_URI);

View File

@ -8,7 +8,6 @@ import fr.tpt.mem4csd.loss.NamedObject;
import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
@ -21,7 +20,7 @@ import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
* </p> * </p>
* <ul> * <ul>
* <li>{@link fr.tpt.mem4csd.loss.impl.NamedObjectImpl#getName <em>Name</em>}</li> * <li>{@link fr.tpt.mem4csd.loss.impl.NamedObjectImpl#getName <em>Name</em>}</li>
* <li>{@link fr.tpt.mem4csd.loss.impl.NamedObjectImpl#getQname <em>Qname</em>}</li> * <li>{@link fr.tpt.mem4csd.loss.impl.NamedObjectImpl#getClassName <em>Class Name</em>}</li>
* </ul> * </ul>
* *
* @generated * @generated
@ -48,24 +47,24 @@ public abstract class NamedObjectImpl extends MinimalEObjectImpl.Container imple
protected String name = NAME_EDEFAULT; protected String name = NAME_EDEFAULT;
/** /**
* The default value of the '{@link #getQname() <em>Qname</em>}' attribute. * The default value of the '{@link #getClassName() <em>Class Name</em>}' attribute.
* <!-- begin-user-doc --> * <!-- begin-user-doc -->
* <!-- end-user-doc --> * <!-- end-user-doc -->
* @see #getQname() * @see #getClassName()
* @generated * @generated
* @ordered * @ordered
*/ */
protected static final String QNAME_EDEFAULT = null; protected static final String CLASS_NAME_EDEFAULT = null;
/** /**
* The cached value of the '{@link #getQname() <em>Qname</em>}' attribute. * The cached value of the '{@link #getClassName() <em>Class Name</em>}' attribute.
* <!-- begin-user-doc --> * <!-- begin-user-doc -->
* <!-- end-user-doc --> * <!-- end-user-doc -->
* @see #getQname() * @see #getClassName()
* @generated * @generated
* @ordered * @ordered
*/ */
protected String qname = QNAME_EDEFAULT; protected String className = CLASS_NAME_EDEFAULT;
/** /**
* <!-- begin-user-doc --> * <!-- begin-user-doc -->
@ -115,8 +114,22 @@ public abstract class NamedObjectImpl extends MinimalEObjectImpl.Container imple
* @generated * @generated
*/ */
@Override @Override
public String getQname() { public String getClassName() {
return qname; return className;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void setClassName(String newClassName) {
String oldClassName = className;
className = newClassName;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, LossPackage.NAMED_OBJECT__CLASS_NAME, oldClassName,
className));
} }
/** /**
@ -129,8 +142,8 @@ public abstract class NamedObjectImpl extends MinimalEObjectImpl.Container imple
switch (featureID) { switch (featureID) {
case LossPackage.NAMED_OBJECT__NAME: case LossPackage.NAMED_OBJECT__NAME:
return getName(); return getName();
case LossPackage.NAMED_OBJECT__QNAME: case LossPackage.NAMED_OBJECT__CLASS_NAME:
return getQname(); return getClassName();
} }
return super.eGet(featureID, resolve, coreType); return super.eGet(featureID, resolve, coreType);
} }
@ -146,6 +159,9 @@ public abstract class NamedObjectImpl extends MinimalEObjectImpl.Container imple
case LossPackage.NAMED_OBJECT__NAME: case LossPackage.NAMED_OBJECT__NAME:
setName((String) newValue); setName((String) newValue);
return; return;
case LossPackage.NAMED_OBJECT__CLASS_NAME:
setClassName((String) newValue);
return;
} }
super.eSet(featureID, newValue); super.eSet(featureID, newValue);
} }
@ -161,6 +177,9 @@ public abstract class NamedObjectImpl extends MinimalEObjectImpl.Container imple
case LossPackage.NAMED_OBJECT__NAME: case LossPackage.NAMED_OBJECT__NAME:
setName(NAME_EDEFAULT); setName(NAME_EDEFAULT);
return; return;
case LossPackage.NAMED_OBJECT__CLASS_NAME:
setClassName(CLASS_NAME_EDEFAULT);
return;
} }
super.eUnset(featureID); super.eUnset(featureID);
} }
@ -175,8 +194,8 @@ public abstract class NamedObjectImpl extends MinimalEObjectImpl.Container imple
switch (featureID) { switch (featureID) {
case LossPackage.NAMED_OBJECT__NAME: case LossPackage.NAMED_OBJECT__NAME:
return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
case LossPackage.NAMED_OBJECT__QNAME: case LossPackage.NAMED_OBJECT__CLASS_NAME:
return QNAME_EDEFAULT == null ? qname != null : !QNAME_EDEFAULT.equals(qname); return CLASS_NAME_EDEFAULT == null ? className != null : !CLASS_NAME_EDEFAULT.equals(className);
} }
return super.eIsSet(featureID); return super.eIsSet(featureID);
} }
@ -194,8 +213,8 @@ public abstract class NamedObjectImpl extends MinimalEObjectImpl.Container imple
StringBuilder result = new StringBuilder(super.toString()); StringBuilder result = new StringBuilder(super.toString());
result.append(" (name: "); result.append(" (name: ");
result.append(name); result.append(name);
result.append(", qname: "); result.append(", className: ");
result.append(qname); result.append(className);
result.append(')'); result.append(')');
return result.toString(); return result.toString();
} }