Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
monticore
EmbeddedMontiArc
generators
EMAM2Middleware
Commits
ac05acfa
Commit
ac05acfa
authored
Jan 15, 2019
by
Alexander David Hellwig
Browse files
Workaround: EMAComponentInstanceBuider::clone does not clone ports and package name
parent
6588a325
Pipeline
#97522
passed with stages
in 8 minutes
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
src/main/java/de/monticore/lang/monticar/generator/middleware/helpers/ClusterHelper.java
View file @
ac05acfa
...
...
@@ -135,10 +135,11 @@ public class ClusterHelper {
.
collect
(
Collectors
.
toList
());
Set
<
ResolvingFilter
<?
extends
Symbol
>>
resolvingFilters
=
inst
.
getSpannedScope
().
getResolvingFilters
();
List
<
EMAComponentInstanceSymbol
>
tmpSubcomps
=
cluster
.
stream
().
map
(
EMAComponentInstanceBuilder:
:
c
lone
).
collect
(
Collectors
.
toList
());
List
<
EMAComponentInstanceSymbol
>
tmpSubcomps
=
cluster
.
stream
().
map
(
ClusterHelper:
:
realC
lone
).
collect
(
Collectors
.
toList
());
tmpSubcomps
.
forEach
(
sc
->
((
CommonScope
)
sc
.
getSpannedScope
()).
setResolvingFilters
(
resolvingFilters
));
EMAComponentInstanceSymbol
res
=
new
EMAComponentInstanceBuilder
()
.
setName
(
clusterName
)
.
setPackageName
(
inst
.
getPackageName
())
.
setSymbolReference
(
inst
.
getComponentType
())
.
addPorts
(
tmpPorts
)
.
addConnectors
(
tmpConnectiors
)
...
...
@@ -151,5 +152,24 @@ public class ClusterHelper {
return
res
;
}
//TODO: ports, package name are not cloned in EMAComponentInstanceBuilder::clone
private
static
EMAComponentInstanceSymbol
realClone
(
EMAComponentInstanceSymbol
inst
)
{
Collection
<
EMAComponentInstanceSymbol
>
subcomps
=
inst
.
getSubComponents
().
stream
().
map
(
ClusterHelper:
:
realClone
).
collect
(
Collectors
.
toList
());
Collection
<
EMAConnectorSymbol
>
connectors
=
inst
.
getConnectorInstances
().
stream
().
map
(
EMAConnectorBuilder:
:
clone
).
collect
(
Collectors
.
toList
());
Collection
<
EMAPortSymbol
>
ports
=
inst
.
getPortInstanceList
().
stream
().
map
(
EMAPortBuilder:
:
clone
).
collect
(
Collectors
.
toList
());
EMAComponentInstanceBuilder
res
=
(
new
EMAComponentInstanceBuilder
());
ports
.
forEach
(
res:
:
addPort
);
res
.
setName
(
inst
.
getName
())
.
setPackageName
(
inst
.
getPackageName
())
.
setSymbolReference
(
inst
.
getComponentType
())
.
addConnectors
(
connectors
)
.
addSubComponents
(
subcomps
)
.
addResolutionDeclarationSymbols
(
inst
.
getResolutionDeclarationSymbols
());
return
res
.
build
();
}
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a 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