diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/LegacyModelExtractionStateByArCoTL.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/LegacyModelExtractionStateByArCoTL.java index 8af3a553e..702bc1860 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/LegacyModelExtractionStateByArCoTL.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/LegacyModelExtractionStateByArCoTL.java @@ -59,10 +59,7 @@ private static ImmutableList initArchitectureInstances(Architectu MutableList instances = Lists.mutable.empty(); for (ArchitectureItem architectureItem : architectureModel.getEndpoints()) { switch (architectureItem) { - // TODO Use MetaModel - case ArchitectureComponent component -> instances.add(new ModelInstanceImpl(component.getName(), component.getSubcomponents().isEmpty() ? - "Component" : - "CompositeComponent", component.getId())); + case ArchitectureComponent component -> instances.add(new ModelInstanceImpl(component.getName(), component.getType(), component.getId())); case ArchitectureInterface ignored -> logger.debug("Skipping .. ArchitectureInterface not supported yet"); case ArchitectureMethod ignored -> logger.debug("Skipping .. ArchitectureMethod not supported yet"); } diff --git a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java index 584ff430a..3f3be5e4e 100644 --- a/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java +++ b/framework/common/src/main/java/edu/kit/kastel/mcse/ardoco/core/api/models/arcotl/architecture/ArchitectureComponent.java @@ -16,13 +16,15 @@ public final class ArchitectureComponent extends ArchitectureItem { private final SortedSet providedInterfaces; private final SortedSet requiredInterfaces; + private final String type; public ArchitectureComponent(String name, String id, SortedSet subcomponents, SortedSet providedInterfaces, - SortedSet requiredInterfaces) { + SortedSet requiredInterfaces, String type) { super(name, id); this.subcomponents = subcomponents; this.providedInterfaces = providedInterfaces; this.requiredInterfaces = requiredInterfaces; + this.type = type; } /** @@ -54,6 +56,15 @@ public SortedSet getRequiredInterfaces() { return requiredInterfaces; } + /** + * Returns the type of this component as specified in the meta model. + * + * @return the type of this component + */ + public String getType() { + return type; + } + @Override public String toString() { return "Component: " + getName(); diff --git a/stages/model-provider/src/main/java/edu/kit/kastel/mcse/ardoco/core/models/connectors/generators/architecture/pcm/PcmExtractor.java b/stages/model-provider/src/main/java/edu/kit/kastel/mcse/ardoco/core/models/connectors/generators/architecture/pcm/PcmExtractor.java index 530b4d546..7739c4d8a 100644 --- a/stages/model-provider/src/main/java/edu/kit/kastel/mcse/ardoco/core/models/connectors/generators/architecture/pcm/PcmExtractor.java +++ b/stages/model-provider/src/main/java/edu/kit/kastel/mcse/ardoco/core/models/connectors/generators/architecture/pcm/PcmExtractor.java @@ -83,7 +83,7 @@ private static List extractComponents(PcmModel originalMo requiredInterfaces.add(modelInterface); } ArchitectureComponent modelComponent = new ArchitectureComponent(originalComponent.getEntityName(), originalComponent.getId(), subcomponents, - providedInterfaces, requiredInterfaces); + providedInterfaces, requiredInterfaces, originalComponent.getType()); components.add(modelComponent); } return components; diff --git a/stages/model-provider/src/main/java/edu/kit/kastel/mcse/ardoco/core/models/connectors/generators/architecture/uml/UmlExtractor.java b/stages/model-provider/src/main/java/edu/kit/kastel/mcse/ardoco/core/models/connectors/generators/architecture/uml/UmlExtractor.java index 6775d9c6c..3abf798af 100644 --- a/stages/model-provider/src/main/java/edu/kit/kastel/mcse/ardoco/core/models/connectors/generators/architecture/uml/UmlExtractor.java +++ b/stages/model-provider/src/main/java/edu/kit/kastel/mcse/ardoco/core/models/connectors/generators/architecture/uml/UmlExtractor.java @@ -81,7 +81,7 @@ private static List extractComponents(UmlModel originalMo requiredInterfaces.add(modelInterface); } ArchitectureComponent modelComponent = new ArchitectureComponent(originalComponent.getName(), originalComponent.getId(), subcomponents, - providedInterfaces, requiredInterfaces); + providedInterfaces, requiredInterfaces, originalComponent.getType()); components.add(modelComponent); } return components; diff --git a/stages/model-provider/src/main/java/edu/kit/kastel/mcse/ardoco/core/models/connectors/generators/architecture/uml/parser/UmlElement.java b/stages/model-provider/src/main/java/edu/kit/kastel/mcse/ardoco/core/models/connectors/generators/architecture/uml/parser/UmlElement.java index 41d5c8fc7..dc18e52c5 100644 --- a/stages/model-provider/src/main/java/edu/kit/kastel/mcse/ardoco/core/models/connectors/generators/architecture/uml/parser/UmlElement.java +++ b/stages/model-provider/src/main/java/edu/kit/kastel/mcse/ardoco/core/models/connectors/generators/architecture/uml/parser/UmlElement.java @@ -9,11 +9,13 @@ abstract class UmlElement { protected final String id; protected final String name; + private final String type; UmlElement(PackagedElement element) { this.element = element; this.id = element.getId(); this.name = element.getName(); + this.type = element.getType(); } public final String getId() { @@ -23,4 +25,8 @@ public final String getId() { public final String getName() { return name; } + + public final String getType() { + return type; + } } diff --git a/stages/model-provider/src/main/java/edu/kit/kastel/mcse/ardoco/core/models/connectors/generators/architecture/uml/parser/xmlelements/PackagedElement.java b/stages/model-provider/src/main/java/edu/kit/kastel/mcse/ardoco/core/models/connectors/generators/architecture/uml/parser/xmlelements/PackagedElement.java index 4f791e07d..b679985c5 100644 --- a/stages/model-provider/src/main/java/edu/kit/kastel/mcse/ardoco/core/models/connectors/generators/architecture/uml/parser/xmlelements/PackagedElement.java +++ b/stages/model-provider/src/main/java/edu/kit/kastel/mcse/ardoco/core/models/connectors/generators/architecture/uml/parser/xmlelements/PackagedElement.java @@ -56,4 +56,8 @@ public List getInterfaceRealizations() { public List getUsages() { return usages; } + + public String getType() { + return type; + } }