Skip to content

Commit 1884d91

Browse files
Fix PR findings
1 parent 6e92aef commit 1884d91

File tree

4 files changed

+33
-38
lines changed

4 files changed

+33
-38
lines changed

core/esmf-aspect-model-aas-generator/src/main/java/org/eclipse/esmf/aspectmodel/aas/AspectModelAASGenerator.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,13 +114,11 @@ protected ByteArrayOutputStream generateXmlOutput( final Map<Aspect, JsonNode> a
114114

115115
private Environment mergeEnvironments( final Map<Aspect, Environment> aspectEnvironments ) {
116116
final Submodel submodel = new DefaultSubmodel.Builder().build();
117-
final Environment environment = new DefaultEnvironment.Builder()
117+
return new DefaultEnvironment.Builder()
118118
.assetAdministrationShells( aspectEnvironments.values().stream().flatMap( e -> e.getAssetAdministrationShells().stream() ).toList() )
119119
.submodels( aspectEnvironments.values().stream().flatMap( e -> e.getSubmodels().stream() ).toList() )
120120
.conceptDescriptions( aspectEnvironments.values().stream().flatMap( e -> e.getConceptDescriptions().stream() ).toList() )
121121
.build();
122-
123-
return environment;
124122
}
125123

126124
protected ByteArrayOutputStream generateAasxOutput( final Aspect aspect ) throws IOException {

core/esmf-aspect-model-aas-generator/src/main/java/org/eclipse/esmf/aspectmodel/aas/AspectModelAASVisitor.java

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -143,12 +143,13 @@ private interface SubmodelElementBuilder {
143143

144144
private final List<PropertyMapper<?>> customPropertyMappers = new ArrayList<>();
145145

146-
public AspectModelAASVisitor withPropertyMapper( final PropertyMapper propertyMapper ) {
146+
public AspectModelAASVisitor withPropertyMapper( final PropertyMapper<?> propertyMapper ) {
147147
customPropertyMappers.add( propertyMapper );
148148

149149
return this;
150150
}
151151

152+
@SuppressWarnings( "unchecked" )
152153
protected <T extends SubmodelElement> PropertyMapper<T> findPropertyMapper( final Property property ) {
153154
return (PropertyMapper<T>) getCustomPropertyMappers().stream()
154155
.filter( mapper -> mapper.canHandle( property ) )
@@ -167,23 +168,24 @@ public Environment visitBase( final ModelElement base, final Context context ) {
167168
}
168169

169170
@Override
170-
public Environment visitAspect( final Aspect aspect, Context context ) {
171-
if ( context == null ) {
171+
public Environment visitAspect( final Aspect aspect, final Context context ) {
172+
Context usedContext = context;
173+
if ( usedContext == null ) {
172174
final Submodel submodel = new DefaultSubmodel.Builder().build();
173175
final Environment environment = new DefaultEnvironment.Builder().submodels( Collections.singletonList( submodel ) ).build();
174-
context = new Context( environment, submodel );
175-
context.setEnvironment( environment );
176+
usedContext = new Context( environment, submodel );
177+
usedContext.setEnvironment( environment );
176178
}
177179

178-
final Submodel submodel = context.getSubmodel();
180+
final Submodel submodel = usedContext.getSubmodel();
179181
submodel.setIdShort( aspect.getName() );
180182
submodel.setId( aspect.getAspectModelUrn().toString() + "/submodel" );
181183
submodel.setSemanticID( buildReferenceToConceptDescription( aspect ) );
182184
submodel.setDescription( LangStringMapper.TEXT.map( aspect.getDescriptions() ) );
183-
submodel.setKind( context.getModelingKind() );
185+
submodel.setKind( usedContext.getModelingKind() );
184186
submodel.setAdministration( new DefaultAdministrativeInformation.Builder().build() );
185187

186-
createConceptDescription( aspect, context );
188+
createConceptDescription( aspect, usedContext );
187189

188190
final AssetAdministrationShell administrationShell =
189191
new DefaultAssetAdministrationShell.Builder()
@@ -192,18 +194,17 @@ public Environment visitAspect( final Aspect aspect, Context context ) {
192194
.description( LangStringMapper.TEXT.createLangString( ADMIN_SHELL_NAME, "en" ) )
193195
.administration( new DefaultAdministrativeInformation.Builder().build() )
194196
.assetInformation( new DefaultAssetInformation.Builder()
195-
.assetKind( context.getAssetKind() )
197+
.assetKind( usedContext.getAssetKind() )
196198
.build() )
197199
.embeddedDataSpecifications( extractEmbeddedDataSpecification( aspect ) )
198200
.build();
199-
context
200-
.getEnvironment()
201+
usedContext.getEnvironment()
201202
.setAssetAdministrationShells( Collections.singletonList( administrationShell ) );
202203

203-
context.appendToSubModelElements( visitProperties( aspect.getProperties(), context ) );
204-
context.appendToSubModelElements( visitOperations( aspect.getOperations(), context ) );
204+
usedContext.appendToSubModelElements( visitProperties( aspect.getProperties(), usedContext ) );
205+
usedContext.appendToSubModelElements( visitOperations( aspect.getOperations(), usedContext ) );
205206

206-
return context.getEnvironment();
207+
return usedContext.getEnvironment();
207208
}
208209

209210
private List<SubmodelElement> visitOperations(
@@ -394,9 +395,9 @@ private DataSpecificationIec61360 extractDataSpecificationContent( final Propert
394395
.map( LangStringMapper.DEFINITION::map )
395396
.collect( Collectors.toList() );
396397

397-
final List<LangStringPreferredNameTypeIec61360> preferredNames = property.getPreferredNames().size() > 0 ?
398-
property.getPreferredNames().stream().map( LangStringMapper.PREFERRED_NAME::map ).collect( Collectors.toList() ) :
399-
Collections.singletonList( LangStringMapper.PREFERRED_NAME.createLangString( property.getName(), DEFAULT_LOCALE ) );
398+
final List<LangStringPreferredNameTypeIec61360> preferredNames = property.getPreferredNames().isEmpty() ?
399+
Collections.singletonList( LangStringMapper.PREFERRED_NAME.createLangString( property.getName(), DEFAULT_LOCALE ) ) :
400+
property.getPreferredNames().stream().map( LangStringMapper.PREFERRED_NAME::map ).collect( Collectors.toList() );
400401

401402
return new DefaultDataSpecificationIec61360.Builder()
402403
.definition( definitions )
@@ -408,9 +409,9 @@ private DataSpecificationIec61360 extractDataSpecificationContent( final Propert
408409
}
409410

410411
private DataSpecificationIec61360 extractDataSpecificationContent( final Aspect aspect ) {
411-
final List<LangStringPreferredNameTypeIec61360> preferredNames = aspect.getPreferredNames().size() > 0 ?
412-
aspect.getPreferredNames().stream().map( LangStringMapper.PREFERRED_NAME::map ).collect( Collectors.toList() ) :
413-
Collections.singletonList( LangStringMapper.PREFERRED_NAME.createLangString( aspect.getName(), DEFAULT_LOCALE ) );
412+
final List<LangStringPreferredNameTypeIec61360> preferredNames = aspect.getPreferredNames().isEmpty() ?
413+
Collections.singletonList( LangStringMapper.PREFERRED_NAME.createLangString( aspect.getName(), DEFAULT_LOCALE ) ) :
414+
aspect.getPreferredNames().stream().map( LangStringMapper.PREFERRED_NAME::map ).collect( Collectors.toList() );
414415

415416
return new DefaultDataSpecificationIec61360.Builder()
416417
.definition( aspect.getDescriptions().stream().map( LangStringMapper.DEFINITION::map ).collect( Collectors.toList() ) )
@@ -478,14 +479,14 @@ private <T extends Collection> Environment visitCollectionProperty(
478479
( property ) ->
479480
new DefaultSubmodelElementList.Builder()
480481
.idShort( ID_PREFIX + property.getName() )
481-
.typeValueListElement( AASSubmodelElements.DATA_ELEMENT ) // TODO check if more specific type info is reuired
482+
.typeValueListElement( AASSubmodelElements.DATA_ELEMENT )
482483
.displayName( LangStringMapper.NAME.map( property.getPreferredNames() ) )
483484
.description( LangStringMapper.TEXT.map( property.getDescriptions() ) )
484485
.value( List.of( decideOnMapping( property, context ) ) )
485486
.build();
486487
final Optional<JsonNode> rawValue = context.getRawPropertyValue();
487488
return rawValue.map( node -> {
488-
if ( node instanceof ArrayNode arrayNode ) {
489+
if ( node instanceof final ArrayNode arrayNode ) {
489490
final SubmodelElementBuilder listBuilder =
490491
( property ) -> {
491492
final var values = getValues( collection, property, context, arrayNode );
@@ -526,7 +527,7 @@ private <T extends Collection> List<SubmodelElement> getValues( final T collecti
526527
context.finishIteration( property );
527528
return values;
528529
}
529-
} ).orElseGet( () -> List.of() );
530+
} ).orElseGet( List::of );
530531
}
531532

532533
// Either will be mapped by adding both the left and the right side to the SubmodelTemplate.
@@ -548,7 +549,7 @@ public Environment visitEither(
548549
final SubmodelElementList eitherSubModelElements =
549550
new DefaultSubmodelElementList.Builder()
550551
.idShort( ID_PREFIX + either.getName() )
551-
.typeValueListElement( AASSubmodelElements.DATA_ELEMENT ) // TODO check if more specific type info is rqujried
552+
.typeValueListElement( AASSubmodelElements.DATA_ELEMENT )
552553
.displayName( LangStringMapper.NAME.map( either.getPreferredNames() ) )
553554
.description( LangStringMapper.TEXT.map( either.getDescriptions() ) )
554555
.value( submodelElements )

core/esmf-aspect-model-aas-generator/src/main/java/org/eclipse/esmf/aspectmodel/aas/PropertyMapper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@
3838
* @param <T> the concrete type of {@link SubmodelElement} the implementing mapper produces
3939
*/
4040
public interface PropertyMapper<T extends SubmodelElement> {
41-
static final String UNKNOWN_TYPE = "Unknown";
41+
static String UNKNOWN_TYPE = "Unknown";
4242

43-
static final String UNKNOWN_EXAMPLE = UNKNOWN_TYPE;
43+
static String UNKNOWN_EXAMPLE = UNKNOWN_TYPE;
4444

4545
/**
4646
* Maps Aspect types to DataTypeDefXSD Schema types, with no explicit mapping defaulting to

core/esmf-aspect-model-aas-generator/src/test/java/org/eclipse/esmf/aspectmodel/aas/AspectModelAASGeneratorTest.java

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,6 @@
1919
import java.io.ByteArrayInputStream;
2020
import java.io.ByteArrayOutputStream;
2121
import java.io.IOException;
22-
import java.io.InputStream;
23-
import java.net.InetSocketAddress;
24-
import java.net.Proxy;
2522
import java.nio.charset.StandardCharsets;
2623
import java.util.List;
2724
import java.util.Map;
@@ -49,7 +46,12 @@
4946
import org.eclipse.digitaltwin.aas4j.v3.model.SubmodelElement;
5047
import org.eclipse.digitaltwin.aas4j.v3.model.SubmodelElementCollection;
5148
import org.eclipse.digitaltwin.aas4j.v3.model.SubmodelElementList;
49+
import org.eclipse.esmf.aspectmodel.resolver.services.VersionedModel;
50+
import org.eclipse.esmf.metamodel.Aspect;
51+
import org.eclipse.esmf.metamodel.loader.AspectModelLoader;
5252
import org.eclipse.esmf.samm.KnownVersion;
53+
import org.eclipse.esmf.test.TestAspect;
54+
import org.eclipse.esmf.test.TestResources;
5355
import org.junit.jupiter.api.Test;
5456
import org.junit.jupiter.params.ParameterizedTest;
5557
import org.junit.jupiter.params.provider.EnumSource;
@@ -58,12 +60,6 @@
5860

5961
import com.fasterxml.jackson.databind.JsonNode;
6062

61-
import org.eclipse.esmf.aspectmodel.resolver.services.VersionedModel;
62-
import org.eclipse.esmf.metamodel.Aspect;
63-
import org.eclipse.esmf.metamodel.loader.AspectModelLoader;
64-
import org.eclipse.esmf.test.TestAspect;
65-
import org.eclipse.esmf.test.TestResources;
66-
6763
class AspectModelAASGeneratorTest {
6864

6965
// The AAS XML Schema is also present in the AAS4j library for testing purposes. So we can read

0 commit comments

Comments
 (0)