Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
mbe-tools
OSATE-DIM
Commits
784e90af
Commit
784e90af
authored
Apr 05, 2022
by
Rakshit Mittal
Browse files
support for addition of component libraries
parent
21109010
Changes
3
Hide whitespace changes
Inline
Side-by-side
fr.mem4csd.osatedim.viatra/src/fr/mem4csd/osatedim/viatra/transformations/DIMTransformationDeltaInplace.xtend
View file @
784e90af
...
...
@@ -90,7 +90,7 @@ class DIMTransformationDeltaInplace extends DIMTransformationRules{
val
componentInstance2Declarative
=
createRule
(
FindSubcomponent
.
Matcher
.
querySpecification
)
.
action
(
CRUDActivationStateEnum
.
CREATED
)
[
if
(
subcompinst
.
subcomponent
===
null
)
{
componentInstanceCreatedDIM
(
subcompinst
,
aadlPackage
)
componentInstanceCreatedDIM
(
subcompinst
)
if
(
transformationUtils
.
propertyInheritancePreference
=
true
)
{
transformationUtils
.
elementCreationPropertyInheritance
(
subcompinst
)
}
...
...
@@ -100,6 +100,10 @@ class DIMTransformationDeltaInplace extends DIMTransformationRules{
}
].
action
(
CRUDActivationStateEnum
.
UPDATED
)
[
subcompinst
.
subcomponent
.
set
(
namedElement_Name
,
subcompinst
.
name
)
if
(
subcompinst
.
classifier
.
eContainer
!== aadlPackage) {
aadlPackage
.
add
(
packageSection_ImportedUnit
,
subcompinst
.
classifier
.
eContainer
)
}
subcompinst
.
subcomponent
.
set
(
subcomponent_Classifier
,
subcompinst
.
classifier
)
println
(
"DIM: Component instance "
+
subcompinst
.
name
+
" updated"
)
].
action
(
CRUDActivationStateEnum
.
DELETED
)
[
componentInstanceDeletedDIM
(
subcompinst
)
...
...
fr.mem4csd.osatedim.viatra/src/fr/mem4csd/osatedim/viatra/transformations/DIMTransformationRules.xtend
View file @
784e90af
...
...
@@ -103,26 +103,26 @@ class DIMTransformationRules {
return
topSystemInst
;
}
protected
def
componentInstanceCreatedDIM
(
ComponentInstance
subcompinst
,
PublicPackageSection
aadlpackage
)
{
protected
def
componentInstanceCreatedDIM
(
ComponentInstance
subcompinst
)
{
var
compinst
=
subcompinst
.
eContainer
as
ComponentInstance
//
Parent
Component
Implementation
Creation
if
(
compinst
.
classifier
instanceof
ComponentType
)
{
var
compimp
=
{
switch
(
compinst
.
category
)
{
case
ComponentCategory
.
ABSTRACT
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
abstractImplementation
)
case
ComponentCategory
.
BUS
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
busImplementation
)
case
ComponentCategory
.
DATA
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
dataImplementation
)
case
ComponentCategory
.
DEVICE
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
deviceImplementation
)
case
ComponentCategory
.
MEMORY
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
memoryImplementation
)
case
ComponentCategory
.
PROCESS
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
processImplementation
)
case
ComponentCategory
.
PROCESSOR
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
processorImplementation
)
case
ComponentCategory
.
SUBPROGRAM
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
subprogramImplementation
)
case
ComponentCategory
.
SUBPROGRAM_GROUP
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
subprogramGroupImplementation
)
case
ComponentCategory
.
SYSTEM
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
systemImplementation
)
case
ComponentCategory
.
THREAD
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
threadImplementation
)
case
ComponentCategory
.
THREAD_GROUP
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
threadGroupImplementation
)
case
ComponentCategory
.
VIRTUAL_BUS
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
virtualBusImplementation
)
case
ComponentCategory
.
VIRTUAL_PROCESSOR
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
virtualProcessorImplementation
)
case
ComponentCategory
.
ABSTRACT
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
abstractImplementation
)
case
ComponentCategory
.
BUS
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
busImplementation
)
case
ComponentCategory
.
DATA
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
dataImplementation
)
case
ComponentCategory
.
DEVICE
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
deviceImplementation
)
case
ComponentCategory
.
MEMORY
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
memoryImplementation
)
case
ComponentCategory
.
PROCESS
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
processImplementation
)
case
ComponentCategory
.
PROCESSOR
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
processorImplementation
)
case
ComponentCategory
.
SUBPROGRAM
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
subprogramImplementation
)
case
ComponentCategory
.
SUBPROGRAM_GROUP
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
subprogramGroupImplementation
)
case
ComponentCategory
.
SYSTEM
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
systemImplementation
)
case
ComponentCategory
.
THREAD
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
threadImplementation
)
case
ComponentCategory
.
THREAD_GROUP
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
threadGroupImplementation
)
case
ComponentCategory
.
VIRTUAL_BUS
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
virtualBusImplementation
)
case
ComponentCategory
.
VIRTUAL_PROCESSOR
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
virtualProcessorImplementation
)
}
}
compimp
.
set
(
namedElement_Name
,
compinst
.
name
+
".impl"
)
...
...
@@ -282,20 +282,20 @@ class DIMTransformationRules {
var
subcomptype
=
{
if
(
subcompinst
.
classifier
===
null
)
{
switch
(
subcompinst
.
category
)
{
case
ComponentCategory
.
ABSTRACT
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
abstractType
)
case
ComponentCategory
.
BUS
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
busType
)
case
ComponentCategory
.
DATA
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
dataType
)
case
ComponentCategory
.
DEVICE
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
deviceType
)
case
ComponentCategory
.
MEMORY
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
memoryType
)
case
ComponentCategory
.
PROCESS
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
processType
)
case
ComponentCategory
.
PROCESSOR
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
processorType
)
case
ComponentCategory
.
SUBPROGRAM
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
subprogramType
)
case
ComponentCategory
.
SUBPROGRAM_GROUP
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
subprogramGroupType
)
case
ComponentCategory
.
SYSTEM
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
systemType
)
case
ComponentCategory
.
THREAD
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
threadType
)
case
ComponentCategory
.
THREAD_GROUP
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
threadGroupType
)
case
ComponentCategory
.
VIRTUAL_BUS
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
virtualBusType
)
case
ComponentCategory
.
VIRTUAL_PROCESSOR
:
aadl
p
ackage
.
createChild
(
packageSection_OwnedClassifier
,
virtualProcessorType
)
case
ComponentCategory
.
ABSTRACT
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
abstractType
)
case
ComponentCategory
.
BUS
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
busType
)
case
ComponentCategory
.
DATA
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
dataType
)
case
ComponentCategory
.
DEVICE
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
deviceType
)
case
ComponentCategory
.
MEMORY
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
memoryType
)
case
ComponentCategory
.
PROCESS
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
processType
)
case
ComponentCategory
.
PROCESSOR
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
processorType
)
case
ComponentCategory
.
SUBPROGRAM
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
subprogramType
)
case
ComponentCategory
.
SUBPROGRAM_GROUP
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
subprogramGroupType
)
case
ComponentCategory
.
SYSTEM
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
systemType
)
case
ComponentCategory
.
THREAD
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
threadType
)
case
ComponentCategory
.
THREAD_GROUP
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
threadGroupType
)
case
ComponentCategory
.
VIRTUAL_BUS
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
virtualBusType
)
case
ComponentCategory
.
VIRTUAL_PROCESSOR
:
aadl
P
ackage
.
createChild
(
packageSection_OwnedClassifier
,
virtualProcessorType
)
}
}
else
{
subcompinst
.
classifier
...
...
@@ -304,8 +304,8 @@ class DIMTransformationRules {
if
(
subcompinst
.
classifier
===
null
)
{
subcomptype
.
set
(
namedElement_Name
,
subcompinst
.
name
)
subcompinst
.
set
(
componentInstance_Classifier
,
subcomptype
)
}
else
if
(
subcompinst
.
classifier
.
eContainer
!== aadl
p
ackage) {
aadl
p
ackage
.
add
(
packageSection_ImportedUnit
,
compinst
.
classifier
.
eContainer
)
}
else
if
(
subcompinst
.
classifier
.
eContainer
!== aadl
P
ackage) {
aadl
P
ackage
.
add
(
packageSection_ImportedUnit
,
compinst
.
classifier
.
eContainer
)
}
if
(
subcompinst
.
category
==
ComponentCategory
.
ABSTRACT
)
{
subcomp
.
set
(
abstractSubcomponent_AbstractSubcomponentType
,
subcomptype
)
...
...
fr.mem4csd.osatedim.viatra/src/fr/mem4csd/osatedim/viatra/transformations/DIMTransformationState.xtend
View file @
784e90af
...
...
@@ -98,7 +98,7 @@ class DIMTransformationState extends DIMTransformationRules{
//
SubComponentInstance
transformation
protected
val
componentInstance2Declarative
=
createRule
(
FindSubcomponent
.
instance
)
.
action
(
CRUDActivationStateEnum
.
CREATED
)
[
componentInstanceCreatedDIM
(
subcompinst
,
aadlPackage
)
componentInstanceCreatedDIM
(
subcompinst
)
println
(
"DIM: Component instance "
+
subcompinst
.
name
+
" de-instantiated"
)
].
addLifeCycle
(
Lifecycles
.
getDefault
(
true
,
true
)).
build
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment