|
15 | 15 | */ |
16 | 16 | package io.adminshell.aas.v3.dataformat.aml.serialize.mapper.mapper; |
17 | 17 |
|
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.*; |
24 | 19 | 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; |
26 | 22 | import ma.glasnost.orika.CustomMapper; |
27 | 23 | import ma.glasnost.orika.MappingContext; |
28 | 24 |
|
29 | 25 | import java.util.ArrayList; |
| 26 | +import java.util.Objects; |
30 | 27 |
|
31 | 28 | public class AssetAdministrationShellMapper extends CustomMapper<AssetAdministrationShell, InternalElement> { |
32 | 29 |
|
33 | 30 | @Override |
34 | 31 | public void mapAtoB(AssetAdministrationShell assetAdministrationShell, InternalElement internalElement, MappingContext context) { |
35 | 32 | internalElement.setRoleRequirements(new RoleRequirements(AssetAdministrationShellRoleClassLib.AssetAdministrationShell.getRefBaseRoleClassPath())); |
36 | 33 |
|
| 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 | + |
37 | 45 | // AssetInformation |
38 | 46 | Attribute assetInformation = new Attribute( |
39 | 47 | "assetInformation", |
|
0 commit comments