Skip to content

Commit 589e583

Browse files
Fix submodel merging and add asset information
1 parent 25346a8 commit 589e583

File tree

3 files changed

+18
-9
lines changed

3 files changed

+18
-9
lines changed

core/sds-aspect-model-aas-generator/src/main/java/io/openmanufacturing/sds/aspectmodel/aas/AspectModelAASGenerator.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@
1212
*/
1313
package io.openmanufacturing.sds.aspectmodel.aas;
1414

15-
import static io.openmanufacturing.sds.aspectmodel.aas.AspectModelAASVisitor.ADMIN_SHELL_NAME;
16-
1715
import java.io.ByteArrayOutputStream;
1816
import java.io.IOException;
1917
import java.io.OutputStream;
@@ -25,10 +23,8 @@
2523
import org.eclipse.digitaltwin.aas4j.v3.dataformat.SerializationException;
2624
import org.eclipse.digitaltwin.aas4j.v3.dataformat.aasx.AASXSerializer;
2725
import org.eclipse.digitaltwin.aas4j.v3.dataformat.xml.XmlSerializer;
28-
import org.eclipse.digitaltwin.aas4j.v3.model.AssetAdministrationShell;
2926
import org.eclipse.digitaltwin.aas4j.v3.model.Environment;
3027
import org.eclipse.digitaltwin.aas4j.v3.model.Submodel;
31-
import org.eclipse.digitaltwin.aas4j.v3.model.impl.DefaultAssetAdministrationShell;
3228
import org.eclipse.digitaltwin.aas4j.v3.model.impl.DefaultEnvironment;
3329
import org.eclipse.digitaltwin.aas4j.v3.model.impl.DefaultSubmodel;
3430

@@ -104,14 +100,11 @@ protected ByteArrayOutputStream generateXmlOutput( final Map<Aspect, JsonNode> a
104100
private Environment mergeEnvironments( final Map<Aspect, Environment> aspectEnvironments ) {
105101
final Submodel submodel = new DefaultSubmodel.Builder().build();
106102
final Environment environment = new DefaultEnvironment.Builder()
103+
.assetAdministrationShells( aspectEnvironments.values().stream().flatMap( e -> e.getAssetAdministrationShells().stream() ).toList() )
107104
.submodels( aspectEnvironments.values().stream().flatMap( e -> e.getSubmodels().stream() ).toList() )
108105
.conceptDescriptions( aspectEnvironments.values().stream().flatMap( e -> e.getConceptDescriptions().stream() ).toList() )
109106
.build();
110107

111-
final AssetAdministrationShell administrationShell =
112-
new DefaultAssetAdministrationShell.Builder().idShort( ADMIN_SHELL_NAME ).build();
113-
environment.setAssetAdministrationShells( Collections.singletonList( administrationShell ) );
114-
115108
return environment;
116109
}
117110

core/sds-aspect-model-aas-generator/src/main/java/io/openmanufacturing/sds/aspectmodel/aas/AspectModelAASVisitor.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
import org.eclipse.digitaltwin.aas4j.v3.model.ValueList;
4949
import org.eclipse.digitaltwin.aas4j.v3.model.ValueReferencePair;
5050
import org.eclipse.digitaltwin.aas4j.v3.model.impl.DefaultAssetAdministrationShell;
51+
import org.eclipse.digitaltwin.aas4j.v3.model.impl.DefaultAssetInformation;
5152
import org.eclipse.digitaltwin.aas4j.v3.model.impl.DefaultBlob;
5253
import org.eclipse.digitaltwin.aas4j.v3.model.impl.DefaultConceptDescription;
5354
import org.eclipse.digitaltwin.aas4j.v3.model.impl.DefaultDataSpecificationIEC61360;
@@ -182,7 +183,13 @@ public Environment visitAspect( final Aspect aspect, Context context ) {
182183
createConceptDescription( aspect, context );
183184

184185
final AssetAdministrationShell administrationShell =
185-
new DefaultAssetAdministrationShell.Builder().idShort( ADMIN_SHELL_NAME ).build();
186+
new DefaultAssetAdministrationShell.Builder()
187+
.id( DEFAULT_MAPPER.determineIdentifierFor( aspect ) )
188+
.idShort( ADMIN_SHELL_NAME )
189+
.assetInformation( new DefaultAssetInformation.Builder()
190+
.assetKind( context.getAssetKind() )
191+
.build() )
192+
.build();
186193
context
187194
.getEnvironment()
188195
.setAssetAdministrationShells( Collections.singletonList( administrationShell ) );

core/sds-aspect-model-aas-generator/src/main/java/io/openmanufacturing/sds/aspectmodel/aas/Context.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import java.util.concurrent.atomic.AtomicReference;
2222
import java.util.stream.Collectors;
2323

24+
import org.eclipse.digitaltwin.aas4j.v3.model.AssetKind;
2425
import org.eclipse.digitaltwin.aas4j.v3.model.ConceptDescription;
2526
import org.eclipse.digitaltwin.aas4j.v3.model.Environment;
2627
import org.eclipse.digitaltwin.aas4j.v3.model.ModelingKind;
@@ -145,6 +146,14 @@ public ModelingKind getModelingKind() {
145146
return ModelingKind.INSTANCE;
146147
}
147148

149+
public AssetKind getAssetKind() {
150+
if ( aspectData == null ) {
151+
return AssetKind.TYPE;
152+
}
153+
154+
return AssetKind.INSTANCE;
155+
}
156+
148157
public String getPropertyShortId() {
149158
if ( ModelingKind.TEMPLATE.equals( getModelingKind() ) ) {
150159
return property.getName();

0 commit comments

Comments
 (0)