Skip to content

Commit c2054b7

Browse files
EntenwilliNicolas-Boltz
authored andcommitted
Remove indirections correctly from dataflow confidentiality model
1 parent 9b15316 commit c2054b7

5 files changed

Lines changed: 624 additions & 195 deletions

File tree

bundles/org.dataflowanalysis.pcm.extension.model.edit/META-INF/MANIFEST.MF

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ Require-Bundle: org.eclipse.core.runtime,
2020
org.dataflowanalysis.pcm.extension.dictionary.characterized.edit;visibility:=reexport,
2121
de.uka.ipd.sdq.identifier;visibility:=reexport,
2222
de.uka.ipd.sdq.identifier.edit;visibility:=reexport,
23+
org.palladiosimulator.indirections;visibility:=reexport,
2324
org.palladiosimulator.pcm;visibility:=reexport,
2425
org.palladiosimulator.pcm.edit;visibility:=reexport,
2526
de.uka.ipd.sdq.probfunction;visibility:=reexport,
@@ -28,6 +29,7 @@ Require-Bundle: org.eclipse.core.runtime,
2829
de.uka.ipd.sdq.stoex.edit;visibility:=reexport,
2930
de.uka.ipd.sdq.units;visibility:=reexport,
3031
de.uka.ipd.sdq.units.edit;visibility:=reexport,
32+
org.palladiosimulator.indirections.edit;bundle-version="1.0.0";visibility:=reexport,
3133
tools.mdsd.library.emfeditutils;bundle-version="0.1.0"
3234
Bundle-ActivationPolicy: lazy
3335
Bundle-RequiredExecutionEnvironment: JavaSE-17

bundles/org.dataflowanalysis.pcm.extension.model.editor/META-INF/MANIFEST.MF

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ Require-Bundle: org.eclipse.core.runtime,
1818
org.dataflowanalysis.pcm.extension.dictionary.edit;visibility:=reexport,
1919
org.dataflowanalysis.pcm.extension.dictionary.characterized.edit;visibility:=reexport,
2020
de.uka.ipd.sdq.identifier.edit;visibility:=reexport,
21+
org.palladiosimulator.indirections.edit;visibility:=reexport,
2122
org.palladiosimulator.pcm.edit;visibility:=reexport,
2223
de.uka.ipd.sdq.probfunction.edit;visibility:=reexport,
2324
de.uka.ipd.sdq.stoex.edit;visibility:=reexport,

bundles/org.dataflowanalysis.pcm.extension.model/model/dataFlowConfidentiality.ecore

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,41 @@
9292
<details key="settingDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/LPG"/>
9393
<details key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/LPG"/>
9494
</eAnnotations>
95+
<eClassifiers xsi:type="ecore:EClass" name="DataChannelBehaviour" eSuperTypes="../../org.palladiosimulator.pcm/model/pcm.ecore#//core/entity/Entity">
96+
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
97+
<details key="constraints" value="variableUsagesReferToValidSourceRoleParameter variableReferencesReferToValidSinkRoleParameter reusedBehavioursOnlyBindValidVariables"/>
98+
</eAnnotations>
99+
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/LPG">
100+
<details key="variableUsagesReferToValidSourceRoleParameter" value="self.variableUsages->forAll(usage |&#xA;&#x9;self.dataSources->collect(&#xA;&#x9;&#x9;role | role.entityName.concat('.').concat(role.dataInterface.dataSignature.parameter.parameterName)&#x9;&#x9;&#xA;&#x9;)->includes(usage.namedReference__VariableUsage.referenceName)&#xA;)"/>
101+
<details key="variableReferencesReferToValidSinkRoleParameter" value="self.variableUsages.variableCharacterisation_VariableUsage->selectByKind(confidentiality::ConfidentialityVariableCharacterisation)->forAll(characterisation |&#xA;&#x9;characterisation.rhs.oclAsType(ecore::EObject)->closure(eContents()->selectByKind(ecore::EObject))->selectByKind(stoex::VariableReference)->forAll(reference |&#xA;&#x9;&#x9;self.dataSinks->collect(&#xA;&#x9;&#x9;&#x9;role | role.entityName.concat('.').concat(role.dataInterface.dataSignature.parameter.parameterName)&#xA;&#x9;&#x9;)->includes(reference.referenceName)&#xA;&#x9;)&#xA;)"/>
102+
<details key="reusedBehavioursOnlyBindValidVariables" value="let validSourceNames : Set(String) = self.dataSources->collect(&#xA;&#x9;role | role.entityName.concat('.').concat(role.dataInterface.dataSignature.parameter.parameterName)&#xA;)->asSet() in&#xA;&#xA; let validSinkNames : Set(String) = self.dataSinks->collect(&#xA; role | role.entityName.concat('.').concat(role.dataInterface.dataSignature.parameter.parameterName)&#xA; )->asSet() in&#xA;&#xA; let validReferenceNames : Set(String) = validSourceNames->union(validSinkNames) in&#xA;&#xA; let usedReferenceNames : Set(String) = self.reusedBehaviours->collect(variableBindings)->flatten()->collect(boundValue.referenceName)->asSet() in&#xA;&#xA; validReferenceNames->includesAll(usedReferenceNames)"/>
103+
</eAnnotations>
104+
<eStructuralFeatures xsi:type="ecore:EReference" name="dataSources" upperBound="-1"
105+
eType="ecore:EClass ../../org.palladiosimulator.indirections/model/indirections.ecore#//repository/DataSourceRole"
106+
changeable="false" volatile="true" transient="true" derived="true">
107+
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/LPG">
108+
<details key="derivation" value="self.dataChannel.dataSourceRoles"/>
109+
</eAnnotations>
110+
</eStructuralFeatures>
111+
<eStructuralFeatures xsi:type="ecore:EReference" name="dataSinks" upperBound="-1"
112+
eType="ecore:EClass ../../org.palladiosimulator.indirections/model/indirections.ecore#//repository/DataSinkRole"
113+
changeable="false" volatile="true" transient="true" derived="true">
114+
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/LPG">
115+
<details key="derivation" value="self.dataChannel.dataSinkRoles"/>
116+
</eAnnotations>
117+
</eStructuralFeatures>
118+
<eStructuralFeatures xsi:type="ecore:EReference" name="variableUsages" upperBound="-1"
119+
eType="ecore:EClass ../../org.palladiosimulator.pcm/model/pcm.ecore#//parameter/VariableUsage"
120+
containment="true"/>
121+
<eStructuralFeatures xsi:type="ecore:EReference" name="reusedBehaviours" upperBound="-1"
122+
eType="#//behaviour/BehaviourReuse" containment="true"/>
123+
</eClassifiers>
124+
<eClassifiers xsi:type="ecore:EClass" name="Behaviours" eSuperTypes="../../de.uka.ipd.sdq.identifier/model/identifier.ecore#//Identifier">
125+
<eStructuralFeatures xsi:type="ecore:EReference" name="dataChannelBehaviour"
126+
upperBound="-1" eType="#//behaviour/DataChannelBehaviour" containment="true"/>
127+
<eStructuralFeatures xsi:type="ecore:EReference" name="reusableBehaviours" upperBound="-1"
128+
eType="#//behaviour/ReusableBehaviour" containment="true"/>
129+
</eClassifiers>
95130
<eClassifiers xsi:type="ecore:EClass" name="ReusableBehaviour" eSuperTypes="../../org.palladiosimulator.pcm/model/pcm.ecore#//core/entity/Entity">
96131
<eStructuralFeatures xsi:type="ecore:EReference" name="inputVariables" upperBound="-1"
97132
eType="ecore:EClass platform:/plugin/de.uka.ipd.sdq.stoex/model/stoex.ecore#//VariableReference"
@@ -144,6 +179,6 @@
144179
</eSubpackages>
145180
<eSubpackages name="dictionary" nsURI="http://palladiosimulator.org/dataflow/confidentiality/pcm/0.1.0/dictionary"
146181
nsPrefix="dictionary">
147-
<eClassifiers xsi:type="ecore:EClass" name="PCMDataDictionary" eSuperTypes="../../de.uka.ipd.sdq.identifier/model/identifier.ecore#//Identifier #//characteristics/CharacteristicTypeDictionary #//characteristics/Characteristics"/>
182+
<eClassifiers xsi:type="ecore:EClass" name="PCMDataDictionary" eSuperTypes="../../de.uka.ipd.sdq.identifier/model/identifier.ecore#//Identifier #//characteristics/CharacteristicTypeDictionary #//characteristics/Characteristics #//behaviour/Behaviours"/>
148183
</eSubpackages>
149184
</ecore:EPackage>

bundles/org.dataflowanalysis.pcm.extension.model/model/dataFlowConfidentiality.genmodel

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
reflectiveDelegation="true" importerID="org.eclipse.emf.importer.cdo" featureDelegation="Reflective"
1010
complianceLevel="5.0" copyrightFields="false" providerRootExtendsClass="org.eclipse.emf.cdo.edit.CDOItemProviderAdapter"
1111
editPluginID="org.dataflowanalysis.pcm.extension.model.edit" editorPluginID="org.dataflowanalysis.pcm.extension.model.editor"
12-
usedGenPackages="../../org.dataflowanalysis.pcm.extension.dictionary/model/DataDictionary.genmodel#//DataDictionary ../../org.dataflowanalysis.pcm.extension.dictionary.characterized/model/DataDictionaryCharacterized.genmodel#//DataDictionaryCharacterized ../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../de.uka.ipd.sdq.identifier/model/identifier.genmodel#//identifier ../../org.palladiosimulator.pcm/model/pcm.genmodel#//pcm ../../de.uka.ipd.sdq.probfunction/model/ProbabilityFunction.genmodel#//probfunction ../../de.uka.ipd.sdq.stoex/model/stoex.genmodel#//stoex ../../de.uka.ipd.sdq.units/model/Units.genmodel#//units"
12+
usedGenPackages="../../org.dataflowanalysis.pcm.extension.dictionary/model/DataDictionary.genmodel#//DataDictionary ../../org.dataflowanalysis.pcm.extension.dictionary.characterized/model/DataDictionaryCharacterized.genmodel#//DataDictionaryCharacterized ../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../de.uka.ipd.sdq.identifier/model/identifier.genmodel#//identifier ../../org.palladiosimulator.indirections/model/indirections.genmodel#//indirections ../../org.palladiosimulator.pcm/model/pcm.genmodel#//pcm ../../de.uka.ipd.sdq.probfunction/model/ProbabilityFunction.genmodel#//probfunction ../../de.uka.ipd.sdq.stoex/model/stoex.genmodel#//stoex ../../de.uka.ipd.sdq.units/model/Units.genmodel#//units"
1313
importOrganizing="true">
1414
<foreignModel>dataFlowConfidentiality.ecore</foreignModel>
1515
<modelPluginVariables>CDO=org.eclipse.emf.cdo</modelPluginVariables>
@@ -64,6 +64,18 @@
6464
</nestedGenPackages>
6565
<nestedGenPackages prefix="Behaviour" basePackage="org.dataflowanalysis.pcm.extension.model.confidentiality"
6666
disposableProviderFactory="true" ecorePackage="dataFlowConfidentiality.ecore#//behaviour">
67+
<genClasses ecoreClass="dataFlowConfidentiality.ecore#//behaviour/DataChannelBehaviour">
68+
<genFeatures property="Readonly" notify="false" createChild="false" propertySortChoices="true"
69+
ecoreFeature="ecore:EReference dataFlowConfidentiality.ecore#//behaviour/DataChannelBehaviour/dataSources"/>
70+
<genFeatures property="Readonly" notify="false" createChild="false" propertySortChoices="true"
71+
ecoreFeature="ecore:EReference dataFlowConfidentiality.ecore#//behaviour/DataChannelBehaviour/dataSinks"/>
72+
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dataFlowConfidentiality.ecore#//behaviour/DataChannelBehaviour/variableUsages"/>
73+
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dataFlowConfidentiality.ecore#//behaviour/DataChannelBehaviour/reusedBehaviours"/>
74+
</genClasses>
75+
<genClasses ecoreClass="dataFlowConfidentiality.ecore#//behaviour/Behaviours">
76+
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dataFlowConfidentiality.ecore#//behaviour/Behaviours/dataChannelBehaviour"/>
77+
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dataFlowConfidentiality.ecore#//behaviour/Behaviours/reusableBehaviours"/>
78+
</genClasses>
6779
<genClasses ecoreClass="dataFlowConfidentiality.ecore#//behaviour/ReusableBehaviour">
6880
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dataFlowConfidentiality.ecore#//behaviour/ReusableBehaviour/inputVariables"/>
6981
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference dataFlowConfidentiality.ecore#//behaviour/ReusableBehaviour/outputVariables"/>

0 commit comments

Comments
 (0)