@@ -1013,6 +1013,101 @@ class DataElement extends SubmodelElement{
1013
1013
1014
1014
}
1015
1015
}
1016
+ class RelationshipElement extends SubmodelElement {
1017
+ constructor ( extensions , category , idShort , displayName , description ,
1018
+ checksum , kind , semanticId , supplementalSemanticIds ,
1019
+ qualifiers , embeddedDataSpecifications ) {
1020
+ super ( extensions , category , idShort , displayName , description ,
1021
+ checksum , kind , semanticId , supplementalSemanticIds ,
1022
+ qualifiers , embeddedDataSpecifications ) ;
1023
+ this . first = new ComplexObject ( "first" , "Reference" ) ;
1024
+ this . second = new ComplexObject ( "second" , "Reference" ) ;
1025
+ this . modelType = "RelationshipElement" ;
1026
+ }
1027
+ serialize ( ) {
1028
+ let jsonData = super . serialize ( ) ;
1029
+ if ( this . first . _object != null ) {
1030
+ jsonData [ "first" ] = this . first . serialize ( ) ;
1031
+ }
1032
+ if ( this . second . _object != null ) {
1033
+ jsonData [ "second" ] = this . second . serialize ( ) ;
1034
+ }
1035
+ jsonData [ "modelType" ] = "RelationshipElement" ;
1036
+ return jsonData ;
1037
+ }
1038
+ deserialize ( data , parentId , exdomain ) {
1039
+ super . deserialize ( data , parentId , exdomain ) ;
1040
+ if ( data . hasOwnProperty ( "first" ) ) {
1041
+ this . first . deserialize ( data [ "first" ] , parentId , exdomain ) ;
1042
+ }
1043
+ if ( data . hasOwnProperty ( "second" ) ) {
1044
+ this . second . deserialize ( data [ "second" ] , parentId , exdomain ) ;
1045
+ }
1046
+ }
1047
+ createDom ( parentId , exdomain ) {
1048
+ this . uuid = crypto . randomUUID ( ) ;
1049
+ this . exdomain = exdomain ;
1050
+ document . getElementById ( parentId ) . insertAdjacentHTML (
1051
+ 'afterbegin' ,
1052
+ `<div class="temp" id = "` + this . uuid + `">
1053
+ </div>` ) ;
1054
+ this . first . createDom ( this . uuid , exdomain ) ;
1055
+ this . second . createDom ( this . uuid , exdomain ) ;
1056
+ super . createDom ( this . uuid , exdomain ) ;
1057
+ }
1058
+ }
1059
+ class AnnotatedRelationshipElement extends SubmodelElement {
1060
+ constructor ( extensions , category , idShort , displayName , description ,
1061
+ checksum , kind , semanticId , supplementalSemanticIds ,
1062
+ qualifiers , embeddedDataSpecifications ) {
1063
+ super ( extensions , category , idShort , displayName , description ,
1064
+ checksum , kind , semanticId , supplementalSemanticIds ,
1065
+ qualifiers , embeddedDataSpecifications ) ;
1066
+ this . first = new ComplexObject ( "first" , "Reference" ) ;
1067
+ this . second = new ComplexObject ( "second" , "Reference" ) ;
1068
+ this . modelType = "AnnotatedRelationshipElement" ;
1069
+ this . annotations = new Array ( ) ;
1070
+ }
1071
+ serialize ( ) {
1072
+ let jsonData = super . serialize ( ) ;
1073
+ if ( this . first . _object != null ) {
1074
+ jsonData [ "first" ] = this . first . serialize ( ) ;
1075
+ }
1076
+ if ( this . second . _object != null ) {
1077
+ jsonData [ "second" ] = this . second . serialize ( ) ;
1078
+ }
1079
+ if ( this . annotations != null ) {
1080
+ if ( this . annotations . length > 0 ) {
1081
+ jsonData [ "annotations" ] = new Array ( ) ;
1082
+ for ( var elemId of this . annotations ) {
1083
+ jsonData [ "annotations" ] . push ( elemId ) ;
1084
+ }
1085
+ }
1086
+ }
1087
+ jsonData [ "modelType" ] = "AnnotatedRelationshipElement" ;
1088
+ return jsonData ;
1089
+ }
1090
+ deserialize ( data , parentId , exdomain ) {
1091
+ super . deserialize ( data , parentId , exdomain ) ;
1092
+ if ( data . hasOwnProperty ( "first" ) ) {
1093
+ this . first . deserialize ( data [ "first" ] , parentId , exdomain ) ;
1094
+ }
1095
+ if ( data . hasOwnProperty ( "second" ) ) {
1096
+ this . second . deserialize ( data [ "second" ] , parentId , exdomain ) ;
1097
+ }
1098
+ }
1099
+ createDom ( parentId , exdomain ) {
1100
+ this . uuid = crypto . randomUUID ( ) ;
1101
+ this . exdomain = exdomain ;
1102
+ document . getElementById ( parentId ) . insertAdjacentHTML (
1103
+ 'afterbegin' ,
1104
+ `<div class="temp" id = "` + this . uuid + `">
1105
+ </div>` ) ;
1106
+ this . first . createDom ( this . uuid , exdomain ) ;
1107
+ this . second . createDom ( this . uuid , exdomain ) ;
1108
+ super . createDom ( this . uuid , exdomain ) ;
1109
+ }
1110
+ }
1016
1111
class Property extends DataElement {
1017
1112
constructor ( extensions , category , idShort , displayName , description ,
1018
1113
checksum , kind , semanticId , supplementalSemanticIds ,
@@ -1185,8 +1280,8 @@ class ReferenceElement extends DataElement{
1185
1280
this . value . createDom ( parentId , exdomain ) ;
1186
1281
super . createDom ( parentId , exdomain ) ;
1187
1282
}
1188
-
1189
1283
}
1284
+
1190
1285
class Blob extends DataElement {
1191
1286
constructor ( extensions , category , idShort , displayName , description ,
1192
1287
checksum , kind , semanticId , supplementalSemanticIds ,
@@ -1197,7 +1292,7 @@ class Blob extends DataElement{
1197
1292
checksum , kind , semanticId , supplementalSemanticIds ,
1198
1293
qualifiers , embeddedDataSpecifications ) ;
1199
1294
this . value = value ;
1200
- this . contentType = contentType ;
1295
+ this . contentType = new StringObject ( " contentType" ) ;
1201
1296
}
1202
1297
serialize ( ) {
1203
1298
let jsonData = super . serialize ( ) ;
@@ -1216,7 +1311,7 @@ class IFile extends DataElement{
1216
1311
super ( extensions , category , idShort , displayName , description ,
1217
1312
checksum , kind , semanticId , supplementalSemanticIds ,
1218
1313
qualifiers , embeddedDataSpecifications ) ;
1219
- this . contentType = contentType ;
1314
+ this . contentType = new StringObject ( " contentType" ) ;
1220
1315
this . modelType = "File" ;
1221
1316
this . idShortPath = "" ;
1222
1317
this . submodelIdentifier = ""
@@ -1225,7 +1320,7 @@ class IFile extends DataElement{
1225
1320
serialize ( ) {
1226
1321
let jsonData = super . serialize ( ) ;
1227
1322
jsonData [ "value" ] = this . value . text ;
1228
- // jsonData["contentType"] = this.contentType.getSelectedItem() ;
1323
+ jsonData [ "contentType" ] = this . contentType . text ;
1229
1324
jsonData [ "modelType" ] = "File" ;
1230
1325
return jsonData ;
1231
1326
}
@@ -1234,6 +1329,9 @@ class IFile extends DataElement{
1234
1329
if ( data . hasOwnProperty ( "value" ) ) {
1235
1330
this . value . text = data [ "value" ] ;
1236
1331
}
1332
+ if ( data . hasOwnProperty ( "contentType" ) ) {
1333
+ this . contentType . text = data [ "contentType" ] ;
1334
+ }
1237
1335
}
1238
1336
createDom ( parentId , exdomain ) {
1239
1337
this . value . createDom ( parentId , exdomain ) ;
@@ -1258,7 +1356,6 @@ class SubmodelElementCollection extends SubmodelElement{
1258
1356
for ( var elemId of this . value ) {
1259
1357
jsonData [ "value" ] . push ( elemId ) ;
1260
1358
}
1261
-
1262
1359
}
1263
1360
}
1264
1361
jsonData [ "modelType" ] = this . modelType ;
@@ -1279,12 +1376,25 @@ class Capability extends SubmodelElement{
1279
1376
super ( extensions , category , idShort , displayName , description ,
1280
1377
checksum , kind , semanticId , supplementalSemanticIds ,
1281
1378
qualifiers , embeddedDataSpecifications ) ;
1379
+ this . modelType = "Capability" ;
1282
1380
}
1283
1381
serialize ( ) {
1284
1382
let jsonData = super . serialize ( ) ;
1285
1383
jsonData [ "modelType" ] = "Capability" ;
1286
1384
return jsonData ;
1287
- }
1385
+ }
1386
+ deserialize ( data , parentId , exdomain ) {
1387
+ super . deserialize ( data , parentId , exdomain ) ;
1388
+ }
1389
+ createDom ( parentId , exdomain ) {
1390
+ this . uuid = crypto . randomUUID ( ) ;
1391
+ this . exdomain = exdomain ;
1392
+ document . getElementById ( parentId ) . insertAdjacentHTML (
1393
+ 'afterbegin' ,
1394
+ `<div class="temp" id = "` + this . uuid + `">
1395
+ </div>` ) ;
1396
+ super . createDom ( parentId , exdomain ) ;
1397
+ }
1288
1398
}
1289
1399
class EventElement extends SubmodelElement {
1290
1400
constructor ( extensions , category , idShort , displayName , description ,
0 commit comments