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

Commit 484907a

Browse files
committed
Set identification for name and idShort if idShort is not given. Only serialize if kind != template
1 parent 5106685 commit 484907a

2 files changed

Lines changed: 35 additions & 7 deletions

File tree

dataformat-aml/src/main/java/io/adminshell/aas/v3/dataformat/aml/serialize/mapper/mapper/AssetAdministrationShellMapper.java

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,33 @@
1515
*/
1616
package io.adminshell.aas.v3.dataformat.aml.serialize.mapper.mapper;
1717

18-
import io.adminshell.aas.v3.dataformat.aml.model.caex.AASNamespace;
19-
import io.adminshell.aas.v3.dataformat.aml.model.caex.AssetAdministrationShellRoleClassLib;
20-
import io.adminshell.aas.v3.dataformat.aml.model.caex.Attribute;
21-
import io.adminshell.aas.v3.dataformat.aml.model.caex.InternalElement;
22-
import io.adminshell.aas.v3.dataformat.aml.model.caex.RefSemantic;
23-
import io.adminshell.aas.v3.dataformat.aml.model.caex.RoleRequirements;
18+
import io.adminshell.aas.v3.dataformat.aml.model.caex.*;
2419
import io.adminshell.aas.v3.dataformat.aml.serialize.mapper.util.ReferenceConverterUtil;
25-
import io.adminshell.aas.v3.model.*;
20+
import io.adminshell.aas.v3.dataformat.aml.serialize.mapper.util.UrlEncoderUtil;
21+
import io.adminshell.aas.v3.model.AssetAdministrationShell;
2622
import ma.glasnost.orika.CustomMapper;
2723
import ma.glasnost.orika.MappingContext;
2824

2925
import java.util.ArrayList;
26+
import java.util.Objects;
3027

3128
public class AssetAdministrationShellMapper extends CustomMapper<AssetAdministrationShell, InternalElement> {
3229

3330
@Override
3431
public void mapAtoB(AssetAdministrationShell assetAdministrationShell, InternalElement internalElement, MappingContext context) {
3532
internalElement.setRoleRequirements(new RoleRequirements(AssetAdministrationShellRoleClassLib.AssetAdministrationShell.getRefBaseRoleClassPath()));
3633

34+
// Set name and idShort by identification if idShort is not given
35+
if (assetAdministrationShell.getIdShort().equals("") || assetAdministrationShell.getIdShort() == null) {
36+
String idShort = UrlEncoderUtil.encode(assetAdministrationShell.getIdentification().getIdentifier());
37+
// Set AssetAdministrationShell name
38+
internalElement.setName(idShort);
39+
// Set idShort
40+
internalElement.getAttributes().stream()
41+
.filter(Objects::nonNull)
42+
.filter(attribute -> attribute.getName().equals("idShort")).findAny().get().setValue(idShort);
43+
}
44+
3745
// AssetInformation
3846
Attribute assetInformation = new Attribute(
3947
"assetInformation",

dataformat-aml/src/main/java/io/adminshell/aas/v3/dataformat/aml/serialize/mapper/mapper/SubmodelMapper.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,35 @@
1919
import io.adminshell.aas.v3.dataformat.aml.model.caex.InternalElement;
2020
import io.adminshell.aas.v3.dataformat.aml.model.caex.RoleRequirements;
2121
import io.adminshell.aas.v3.dataformat.aml.serialize.mapper.util.QualifierConverterUtil;
22+
import io.adminshell.aas.v3.dataformat.aml.serialize.mapper.util.UrlEncoderUtil;
23+
import io.adminshell.aas.v3.model.ModelingKind;
2224
import io.adminshell.aas.v3.model.Submodel;
2325
import ma.glasnost.orika.CustomMapper;
2426
import ma.glasnost.orika.MappingContext;
2527

28+
import java.util.Objects;
29+
2630
public class SubmodelMapper extends CustomMapper<Submodel, InternalElement> {
2731

2832
@Override
2933
public void mapAtoB(Submodel submodel, InternalElement internalElement, MappingContext context) {
34+
if(submodel.getKind() == ModelingKind.TEMPLATE) {
35+
return;
36+
}
37+
3038
internalElement.setRoleRequirements(new RoleRequirements(AssetAdministrationShellRoleClassLib.Submodel.getRefBaseRoleClassPath()));
39+
40+
// Set name and idShort by identification if idShort is not given
41+
if (submodel.getIdShort().equals("") || submodel.getIdShort() == null) {
42+
String idShort = UrlEncoderUtil.encode(submodel.getIdentification().getIdentifier());
43+
// Set AssetAdministrationShell name
44+
internalElement.setName(idShort);
45+
// Set idShort
46+
internalElement.getAttributes().stream()
47+
.filter(Objects::nonNull)
48+
.filter(attribute -> attribute.getName().equals("idShort")).findAny().get().setValue(idShort);
49+
}
50+
3151
QualifierConverterUtil.createQualifierAttributesForSubmodel(submodel, internalElement);
3252
}
3353
}

0 commit comments

Comments
 (0)