Skip to content
This repository was archived by the owner on Feb 15, 2024. It is now read-only.

Commit d080dc2

Browse files
authored
Merge pull request #8 from JensMueller2709/feature/aml-deserializer
accepted merge request Feature/aml deserializer
2 parents bf81b9d + 988fa3f commit d080dc2

22 files changed

Lines changed: 1141 additions & 52 deletions

dataformat-aml/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@
6666
<version>${xmlunit.version}</version>
6767
<scope>test</scope>
6868
</dependency>
69+
<dependency>
70+
<groupId>com.google.inject</groupId>
71+
<artifactId>guice</artifactId>
72+
<version>5.0.1</version>
73+
</dependency>
6974
</dependencies>
7075
<build>
7176
<plugins>

dataformat-aml/src/main/java/io/adminshell/aas/v3/dataformat/aml/deserialization/Aml2AasMapper.java

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,9 @@
1515
*/
1616
package io.adminshell.aas.v3.dataformat.aml.deserialization;
1717

18-
import io.adminshell.aas.v3.dataformat.aml.deserialization.mappers.AssetAdministrationShellEnvironmentMapper;
18+
import io.adminshell.aas.v3.dataformat.aml.deserialization.mappers.*;
1919
import io.adminshell.aas.v3.dataformat.aml.AmlDeserializationConfig;
2020
import io.adminshell.aas.v3.dataformat.aml.AmlDocumentInfo;
21-
import io.adminshell.aas.v3.dataformat.aml.deserialization.mappers.AssetAdministrationShellMapper;
22-
import io.adminshell.aas.v3.dataformat.aml.deserialization.mappers.EnumMapper;
23-
import io.adminshell.aas.v3.dataformat.aml.deserialization.mappers.IdentifiableMapper;
24-
import io.adminshell.aas.v3.dataformat.aml.deserialization.mappers.LangStringCollectionMapper;
25-
import io.adminshell.aas.v3.dataformat.aml.deserialization.mappers.ReferableMapper;
26-
import io.adminshell.aas.v3.dataformat.aml.deserialization.mappers.ReferenceElementMapper;
27-
import io.adminshell.aas.v3.dataformat.aml.deserialization.mappers.ReferenceMapper;
28-
import io.adminshell.aas.v3.dataformat.aml.deserialization.mappers.RelationshipElementMapper;
2921
import io.adminshell.aas.v3.dataformat.aml.model.caex.CAEXFile;
3022
import io.adminshell.aas.v3.dataformat.aml.serialization.naming.AbstractClassNamingStrategy;
3123
import io.adminshell.aas.v3.dataformat.aml.serialization.naming.NumberingClassNamingStrategy;
@@ -36,6 +28,9 @@
3628
import io.adminshell.aas.v3.model.Identifiable;
3729
import io.adminshell.aas.v3.model.MultiLanguageProperty;
3830
import io.adminshell.aas.v3.model.Referable;
31+
import io.adminshell.aas.v3.model.Qualifiable;
32+
33+
3934
import java.util.List;
4035

4136
/**
@@ -71,12 +66,24 @@ public AssetAdministrationShellEnvironment map(CAEXFile aml) throws MappingExcep
7166
mappingProvider.register(new ReferenceElementMapper());
7267
mappingProvider.register(new ReferableMapper<Referable>());
7368
mappingProvider.register(new IdentifiableMapper<Identifiable>());
69+
mappingProvider.register(new ConstraintCollectionMapper());
70+
mappingProvider.register(new QualifierMapper());
71+
mappingProvider.register(new OperationCollectionMapper());
72+
mappingProvider.register(new FileMapper());
73+
mappingProvider.register(new RangeMapper());
74+
mappingProvider.register(new ViewMapper());
75+
mappingProvider.register(new PropertyMapper());
76+
mappingProvider.register(new ConceptDescriptionMapper());
77+
mappingProvider.register(new EmbeddedDataSpecificationCollectionMapper());
78+
mappingProvider.register(new DataSpecificationIEC61360Mapper());
79+
mappingProvider.register(new EnumDataTypeIEC61360Mapper());
7480
AbstractClassNamingStrategy classNamingStrategy = new NumberingClassNamingStrategy();
7581

7682
PropertyNamingStrategy propertyNamingStrategy = new PropertyNamingStrategy();
7783
propertyNamingStrategy.registerCustomNaming(Referable.class, "descriptions", "description");
7884
propertyNamingStrategy.registerCustomNaming(MultiLanguageProperty.class, "values", "value");
79-
// propertyNamingStrategy.registerCustomNaming(Qualifier.class, x -> "qualifier:" + x.getType() + "=" + x.getValue(), false);
85+
//propertyNamingStrategy.registerCustomNaming(Qualifier.class, x -> "qualifier:" + x.getType() + "=" + x.getValue(), false);
86+
propertyNamingStrategy.registerCustomNaming(Qualifiable.class, "qualifiers", "qualifier","qualifier");
8087
MappingContext context = new MappingContext(mappingProvider, classNamingStrategy, propertyNamingStrategy, config.getTypeFactory());
8188
context.setDocumentInfo(AmlDocumentInfo.fromFile(aml));
8289
AssetAdministrationShellEnvironment result = context.map(AssetAdministrationShellEnvironment.class, parser);

dataformat-aml/src/main/java/io/adminshell/aas/v3/dataformat/aml/deserialization/AmlParser.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ public class AmlParser {
4242
private final Map<String, Reference> idToReference = new HashMap<>();
4343
private final Map<ObjectLocationByProperty, List<String>> idsToResolve = new HashMap<>();
4444

45+
public static final String DEFAULT_REFSEMANTIC_PREFIX = "AAS";
46+
private String refSemanticPrefix = DEFAULT_REFSEMANTIC_PREFIX;
47+
4548
public AmlParser(CAEXFile content) {
4649
this.content = content;
4750
}
@@ -177,4 +180,31 @@ private ObjectLocationByProperty(Object parent, PropertyDescriptor property) {
177180
public Map<String, Reference> getIdToReference() {
178181
return idToReference;
179182
}
183+
184+
/**
185+
* Gets the prefix for the RefSemantic
186+
*
187+
* @return
188+
*/
189+
public String getRefSemanticPrefix() {
190+
return refSemanticPrefix;
191+
}
192+
193+
/**
194+
* Sets the prefix for the RefSemantic
195+
*
196+
* @param refSemanticPrefix
197+
*/
198+
public void setRefSemanticPrefix(String refSemanticPrefix) {
199+
this.refSemanticPrefix = refSemanticPrefix;
200+
}
201+
202+
/**
203+
* Sets the prefix for the RefSemantic to the default value
204+
*
205+
*/
206+
public void setRefSemanticPrefixToDefault() {
207+
this.refSemanticPrefix = DEFAULT_REFSEMANTIC_PREFIX;
208+
}
209+
180210
}

0 commit comments

Comments
 (0)