diff --git a/core/esmf-aspect-model-aas-generator/src/main/java/org/eclipse/esmf/aspectmodel/aas/DefaultPropertyMapper.java b/core/esmf-aspect-model-aas-generator/src/main/java/org/eclipse/esmf/aspectmodel/aas/DefaultPropertyMapper.java index 8cb5e0282..ef00bcbb5 100644 --- a/core/esmf-aspect-model-aas-generator/src/main/java/org/eclipse/esmf/aspectmodel/aas/DefaultPropertyMapper.java +++ b/core/esmf-aspect-model-aas-generator/src/main/java/org/eclipse/esmf/aspectmodel/aas/DefaultPropertyMapper.java @@ -28,7 +28,7 @@ public Property mapToAasProperty( final Type type, final org.eclipse.esmf.metamo .valueType( AasDataTypeMapper.mapAspectTypeToAasXsdDataType( mapType( type ) ) ) .displayName( LangStringMapper.NAME.map( property.getPreferredNames() ) ) .value( context.getPropertyValue( UNKNOWN_EXAMPLE ) ) - .semanticId( buildReferenceToConceptDescription( property ) ) + .semanticId( buildReferenceToGlobalReference( property ) ) .build(); } diff --git a/core/esmf-aspect-model-aas-generator/src/main/java/org/eclipse/esmf/aspectmodel/aas/LangStringPropertyMapper.java b/core/esmf-aspect-model-aas-generator/src/main/java/org/eclipse/esmf/aspectmodel/aas/LangStringPropertyMapper.java index 6cefd4314..d60552e31 100644 --- a/core/esmf-aspect-model-aas-generator/src/main/java/org/eclipse/esmf/aspectmodel/aas/LangStringPropertyMapper.java +++ b/core/esmf-aspect-model-aas-generator/src/main/java/org/eclipse/esmf/aspectmodel/aas/LangStringPropertyMapper.java @@ -43,7 +43,7 @@ public MultiLanguageProperty mapToAasProperty( final Type type, final Property p return new DefaultMultiLanguageProperty.Builder().idShort( context.getPropertyShortId() ) .description( LangStringMapper.TEXT.map( property.getDescriptions() ) ) .displayName( LangStringMapper.NAME.map( property.getPreferredNames() ) ) - .semanticId( buildReferenceToConceptDescription( property ) ) + .semanticId( buildReferenceToGlobalReference( property ) ) .value( extractLangStrings( property, context ) ) .build(); } diff --git a/core/esmf-aspect-model-aas-generator/src/main/java/org/eclipse/esmf/aspectmodel/aas/PropertyMapper.java b/core/esmf-aspect-model-aas-generator/src/main/java/org/eclipse/esmf/aspectmodel/aas/PropertyMapper.java index 999dbf2e3..ecf206927 100644 --- a/core/esmf-aspect-model-aas-generator/src/main/java/org/eclipse/esmf/aspectmodel/aas/PropertyMapper.java +++ b/core/esmf-aspect-model-aas-generator/src/main/java/org/eclipse/esmf/aspectmodel/aas/PropertyMapper.java @@ -61,9 +61,9 @@ default boolean canHandle( final Property property ) { * @param property the property to build the reference for * @return the newly created reference */ - default Reference buildReferenceToConceptDescription( final Property property ) { + default Reference buildReferenceToGlobalReference( final Property property ) { final Key key = new DefaultKey.Builder() - .type( KeyTypes.CONCEPT_DESCRIPTION ) + .type( KeyTypes.GLOBAL_REFERENCE ) .value( determineIdentifierFor( property ) ) .build(); return new DefaultReference.Builder().type( ReferenceTypes.EXTERNAL_REFERENCE ).keys( key ).build(); diff --git a/core/esmf-aspect-model-aas-generator/src/test/java/org/eclipse/esmf/aspectmodel/aas/AspectModelAasGeneratorTest.java b/core/esmf-aspect-model-aas-generator/src/test/java/org/eclipse/esmf/aspectmodel/aas/AspectModelAasGeneratorTest.java index 3b5947585..85a480a40 100644 --- a/core/esmf-aspect-model-aas-generator/src/test/java/org/eclipse/esmf/aspectmodel/aas/AspectModelAasGeneratorTest.java +++ b/core/esmf-aspect-model-aas-generator/src/test/java/org/eclipse/esmf/aspectmodel/aas/AspectModelAasGeneratorTest.java @@ -21,6 +21,7 @@ import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Set; + import javax.xml.XMLConstants; import javax.xml.transform.stream.StreamSource; import javax.xml.validation.Schema; @@ -361,6 +362,19 @@ void testGeneratedAasxFromAspectModelWithPropertiesWithDescriptions() throws Des assertThat( property.getDescription() ).isEmpty(); } + @Test + void testGeneratedAasxFromAspectModelSemanticIdsAreGlobalReferences() throws DeserializationException { + final Environment environment = getAssetAdministrationShellFromAspect( TestAspect.ASPECT_WITH_PROPERTY_WITH_DESCRIPTIONS ); + + final Property property = (Property) environment.getSubmodels().get( 0 ).getSubmodelElements().get( 0 ); + + assertThat( environment.getSubmodels().get( 0 ).getSubmodelElements() ).hasSize( 1 ); + assertThat( environment.getConceptDescriptions() ).hasSize( 2 ); + assertThat( environment.getConceptDescriptions().get( 1 ).getEmbeddedDataSpecifications() ).hasSize( 1 ); + assertThat( property.getDescription() ).isEmpty(); + assertThat( property.getSemanticId().getKeys().get( 0 ).getType() ).isEqualTo( KeyTypes.GLOBAL_REFERENCE ); + } + private void checkDataSpecificationIec61360( final Set semanticIds, final Environment env ) { semanticIds.forEach( x -> getDataSpecificationIec61360( x, env ) ); }