From 0f07d18608a8ae97d518d257c63b3664870929b5 Mon Sep 17 00:00:00 2001 From: Zai Zhang Date: Tue, 28 Mar 2023 10:04:14 +0200 Subject: [PATCH 1/5] Add function upload fileSubmodelElement Signed-off-by: Zai Zhang --- src/test/resources/aas/UL.png | Bin 0 -> 4041 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/test/resources/aas/UL.png diff --git a/src/test/resources/aas/UL.png b/src/test/resources/aas/UL.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed8b0e9228a54d21d245bb6df39cb0ad54cb187 GIT binary patch literal 4041 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 literal 0 HcmV?d00001 From 9dc1bd84f1dc740c5f967003469c5f9f5c952b7b Mon Sep 17 00:00:00 2001 From: Rene-Pascal Fischer Date: Fri, 31 Mar 2023 15:32:23 +0200 Subject: [PATCH 2/5] Adjustments for comments --- src/test/resources/aas/UL.png | Bin 4041 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/test/resources/aas/UL.png diff --git a/src/test/resources/aas/UL.png b/src/test/resources/aas/UL.png deleted file mode 100644 index 6ed8b0e9228a54d21d245bb6df39cb0ad54cb187..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4041 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 From ca703842e67ffd4fe501bffd9d2aabb1e53a090d Mon Sep 17 00:00:00 2001 From: Zai Zhang Date: Fri, 25 Aug 2023 12:54:31 +0200 Subject: [PATCH 3/5] Add create(aasIdentifier) for IAASAPIFactory Signed-off-by: Zai Zhang --- .../org/eclipse/basyx/aas/restapi/AASAPIFactory.java | 6 ++++++ .../basyx/aas/restapi/api/IAASAPIFactory.java | 3 +++ .../basyx/aas/restapi/vab/VABAASAPIFactory.java | 8 ++++++++ .../AuthorizedDecoratingAASAPIFactory.java | 6 ++++++ .../internal/AuthorizedDecoratingAASAPIFactory.java | 6 ++++++ .../aas/api/mqtt/MqttDecoratingAASAPIFactory.java | 12 +++++++++++- 6 files changed, 40 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/eclipse/basyx/aas/restapi/AASAPIFactory.java b/src/main/java/org/eclipse/basyx/aas/restapi/AASAPIFactory.java index 0e19b076..226dede7 100644 --- a/src/main/java/org/eclipse/basyx/aas/restapi/AASAPIFactory.java +++ b/src/main/java/org/eclipse/basyx/aas/restapi/AASAPIFactory.java @@ -28,6 +28,7 @@ import org.eclipse.basyx.aas.restapi.api.IAASAPI; import org.eclipse.basyx.aas.restapi.api.IAASAPIFactory; import org.eclipse.basyx.aas.restapi.vab.VABAASAPIFactory; +import org.eclipse.basyx.submodel.metamodel.api.identifier.IIdentifier; /** * AAS API provider that provides the default AAS API @@ -50,4 +51,9 @@ public IAASAPI getAASApi(AssetAdministrationShell aas) { return aasAPIFactory.create(aas); } + @Override + public IAASAPI create(IIdentifier aasId) { + return aasAPIFactory.create(aasId); + } + } diff --git a/src/main/java/org/eclipse/basyx/aas/restapi/api/IAASAPIFactory.java b/src/main/java/org/eclipse/basyx/aas/restapi/api/IAASAPIFactory.java index 1acff459..072cd492 100644 --- a/src/main/java/org/eclipse/basyx/aas/restapi/api/IAASAPIFactory.java +++ b/src/main/java/org/eclipse/basyx/aas/restapi/api/IAASAPIFactory.java @@ -25,6 +25,7 @@ package org.eclipse.basyx.aas.restapi.api; import org.eclipse.basyx.aas.metamodel.map.AssetAdministrationShell; +import org.eclipse.basyx.submodel.metamodel.api.identifier.IIdentifier; /** * Interface for providing an AAS API @@ -47,4 +48,6 @@ public interface IAASAPIFactory { public default IAASAPI create(AssetAdministrationShell aas) { return getAASApi(aas); } + + public IAASAPI create(IIdentifier aasId); } diff --git a/src/main/java/org/eclipse/basyx/aas/restapi/vab/VABAASAPIFactory.java b/src/main/java/org/eclipse/basyx/aas/restapi/vab/VABAASAPIFactory.java index 5f45b2c5..bae7df78 100644 --- a/src/main/java/org/eclipse/basyx/aas/restapi/vab/VABAASAPIFactory.java +++ b/src/main/java/org/eclipse/basyx/aas/restapi/vab/VABAASAPIFactory.java @@ -27,6 +27,8 @@ import org.eclipse.basyx.aas.metamodel.map.AssetAdministrationShell; import org.eclipse.basyx.aas.restapi.api.IAASAPI; import org.eclipse.basyx.aas.restapi.api.IAASAPIFactory; +import org.eclipse.basyx.submodel.metamodel.api.identifier.IIdentifier; +import org.eclipse.basyx.vab.exception.FeatureNotImplementedException; import org.eclipse.basyx.vab.modelprovider.lambda.VABLambdaProvider; /** @@ -39,4 +41,10 @@ public class VABAASAPIFactory implements IAASAPIFactory { public IAASAPI getAASApi(AssetAdministrationShell aas) { return new VABAASAPI(new VABLambdaProvider(aas)); } + + @Override + public IAASAPI create(IIdentifier aasId) { + // This should not be used for VABAASAPI + throw new FeatureNotImplementedException(); + } } diff --git a/src/main/java/org/eclipse/basyx/extensions/aas/api/authorization/AuthorizedDecoratingAASAPIFactory.java b/src/main/java/org/eclipse/basyx/extensions/aas/api/authorization/AuthorizedDecoratingAASAPIFactory.java index a86f4e78..3f570057 100644 --- a/src/main/java/org/eclipse/basyx/extensions/aas/api/authorization/AuthorizedDecoratingAASAPIFactory.java +++ b/src/main/java/org/eclipse/basyx/extensions/aas/api/authorization/AuthorizedDecoratingAASAPIFactory.java @@ -12,6 +12,7 @@ import org.eclipse.basyx.aas.metamodel.map.AssetAdministrationShell; import org.eclipse.basyx.aas.restapi.api.IAASAPI; import org.eclipse.basyx.aas.restapi.api.IAASAPIFactory; +import org.eclipse.basyx.submodel.metamodel.api.identifier.IIdentifier; /** * Api provider for constructing a new AAS API that is authorized @@ -29,4 +30,9 @@ public AuthorizedDecoratingAASAPIFactory(IAASAPIFactory factoryToBeDecorated) { public IAASAPI getAASApi(AssetAdministrationShell aas) { return new AuthorizedAASAPI(apiFactory.create(aas)); } + + @Override + public IAASAPI create(IIdentifier aasId) { + return new AuthorizedAASAPI(apiFactory.create(aasId)); + } } \ No newline at end of file diff --git a/src/main/java/org/eclipse/basyx/extensions/aas/api/authorization/internal/AuthorizedDecoratingAASAPIFactory.java b/src/main/java/org/eclipse/basyx/extensions/aas/api/authorization/internal/AuthorizedDecoratingAASAPIFactory.java index 431798c5..ad00d0de 100644 --- a/src/main/java/org/eclipse/basyx/extensions/aas/api/authorization/internal/AuthorizedDecoratingAASAPIFactory.java +++ b/src/main/java/org/eclipse/basyx/extensions/aas/api/authorization/internal/AuthorizedDecoratingAASAPIFactory.java @@ -28,6 +28,7 @@ import org.eclipse.basyx.aas.restapi.api.IAASAPI; import org.eclipse.basyx.aas.restapi.api.IAASAPIFactory; import org.eclipse.basyx.extensions.shared.authorization.internal.ISubjectInformationProvider; +import org.eclipse.basyx.submodel.metamodel.api.identifier.IIdentifier; /** * Api provider for constructing a new AAS API that is authorized @@ -50,4 +51,9 @@ public AuthorizedDecoratingAASAPIFactory(final IAASAPIFactory factoryToBeDecorat public IAASAPI getAASApi(final AssetAdministrationShell aas) { return new AuthorizedAASAPI<>(apiFactory.create(aas), aasAPIAuthorizer, subjectInformationProvider); } + + @Override + public IAASAPI create(IIdentifier aasId) { + return new AuthorizedAASAPI<>(apiFactory.create(aasId), aasAPIAuthorizer, subjectInformationProvider); + } } \ No newline at end of file diff --git a/src/main/java/org/eclipse/basyx/extensions/aas/api/mqtt/MqttDecoratingAASAPIFactory.java b/src/main/java/org/eclipse/basyx/extensions/aas/api/mqtt/MqttDecoratingAASAPIFactory.java index 1923269c..a556a725 100644 --- a/src/main/java/org/eclipse/basyx/extensions/aas/api/mqtt/MqttDecoratingAASAPIFactory.java +++ b/src/main/java/org/eclipse/basyx/extensions/aas/api/mqtt/MqttDecoratingAASAPIFactory.java @@ -13,6 +13,7 @@ import org.eclipse.basyx.aas.restapi.api.IAASAPI; import org.eclipse.basyx.aas.restapi.api.IAASAPIFactory; import org.eclipse.basyx.aas.restapi.observing.ObservableAASAPI; +import org.eclipse.basyx.submodel.metamodel.api.identifier.IIdentifier; import org.eclipse.basyx.vab.exception.provider.ProviderException; import org.eclipse.paho.client.mqttv3.MqttClient; import org.eclipse.paho.client.mqttv3.MqttException; @@ -33,8 +34,12 @@ public MqttDecoratingAASAPIFactory(IAASAPIFactory factoryToBeDecorated, MqttClie @Override public IAASAPI getAASApi(AssetAdministrationShell aas) { + return createMqttDecoratingAASAPI(apiFactory.create(aas)); + } + + private IAASAPI createMqttDecoratingAASAPI(IAASAPI aasAPI) { try { - ObservableAASAPI observedAPI = new ObservableAASAPI(apiFactory.create(aas)); + ObservableAASAPI observedAPI = new ObservableAASAPI(aasAPI); MqttAASAPIObserver mqttAASAPIObserver = new MqttAASAPIObserver(client, MqttAASAPIHelper.getAASIdShort(observedAPI)); observedAPI.addObserver(mqttAASAPIObserver); return observedAPI; @@ -42,4 +47,9 @@ public IAASAPI getAASApi(AssetAdministrationShell aas) { throw new ProviderException(e); } } + + @Override + public IAASAPI create(IIdentifier aasId) { + return createMqttDecoratingAASAPI(apiFactory.create(aasId)); + } } \ No newline at end of file From d321f636e28636439929e086f0c78f5a6bcc91b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zai=20M=C3=BCller-Zhang?= <97607180+zhangzai123@users.noreply.github.com> Date: Tue, 5 Sep 2023 10:30:38 +0200 Subject: [PATCH 4/5] Make creat() method in IAASAPIFactory default MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Zai Müller-Zhang <97607180+zhangzai123@users.noreply.github.com> --- .../org/eclipse/basyx/aas/restapi/api/IAASAPIFactory.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/eclipse/basyx/aas/restapi/api/IAASAPIFactory.java b/src/main/java/org/eclipse/basyx/aas/restapi/api/IAASAPIFactory.java index 072cd492..6e861047 100644 --- a/src/main/java/org/eclipse/basyx/aas/restapi/api/IAASAPIFactory.java +++ b/src/main/java/org/eclipse/basyx/aas/restapi/api/IAASAPIFactory.java @@ -45,9 +45,12 @@ public interface IAASAPIFactory { @Deprecated public IAASAPI getAASApi(AssetAdministrationShell aas); + public default IAASAPI create(AssetAdministrationShell aas) { return getAASApi(aas); } - public IAASAPI create(IIdentifier aasId); + public default IAASAPI create(IIdentifier aasId) { + return null; + } } From 6fb84accb76fb7a47ec6470dcb7e58d95098d257 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zai=20M=C3=BCller-Zhang?= <97607180+zhangzai123@users.noreply.github.com> Date: Wed, 6 Sep 2023 09:54:29 +0200 Subject: [PATCH 5/5] create method throws FeatureNotImplemented Exception MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Zai Müller-Zhang <97607180+zhangzai123@users.noreply.github.com> --- .../java/org/eclipse/basyx/aas/restapi/api/IAASAPIFactory.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/eclipse/basyx/aas/restapi/api/IAASAPIFactory.java b/src/main/java/org/eclipse/basyx/aas/restapi/api/IAASAPIFactory.java index 6e861047..48030acd 100644 --- a/src/main/java/org/eclipse/basyx/aas/restapi/api/IAASAPIFactory.java +++ b/src/main/java/org/eclipse/basyx/aas/restapi/api/IAASAPIFactory.java @@ -26,6 +26,7 @@ import org.eclipse.basyx.aas.metamodel.map.AssetAdministrationShell; import org.eclipse.basyx.submodel.metamodel.api.identifier.IIdentifier; +import org.eclipse.basyx.vab.exception.FeatureNotImplementedException; /** * Interface for providing an AAS API @@ -51,6 +52,6 @@ public default IAASAPI create(AssetAdministrationShell aas) { } public default IAASAPI create(IIdentifier aasId) { - return null; + throw new FeatureNotImplementedException(); } }