From dc13d6fa1c301dc5b4b63e2530e7163aed75e403 Mon Sep 17 00:00:00 2001 From: Jannik Fried Date: Fri, 10 Feb 2023 08:24:08 +0100 Subject: [PATCH] Adds missing create method in implementations of ISubmodelAggregatorFactory (#221) Signed-off-by: Jannik Fried --- ...edDecoratingSubmodelAggregatorFactory.java | 6 +++++ ...edDecoratingSubmodelAggregatorFactory.java | 6 +++++ ...ttDecoratingSubmodelAggregatorFactory.java | 21 +++++++++++++---- ...V2DecoratingSubmodelAggregatorFactory.java | 23 +++++++++++++++---- 4 files changed, 48 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/eclipse/basyx/extensions/submodel/aggregator/authorization/AuthorizedDecoratingSubmodelAggregatorFactory.java b/src/main/java/org/eclipse/basyx/extensions/submodel/aggregator/authorization/AuthorizedDecoratingSubmodelAggregatorFactory.java index e7509230..b998537c 100644 --- a/src/main/java/org/eclipse/basyx/extensions/submodel/aggregator/authorization/AuthorizedDecoratingSubmodelAggregatorFactory.java +++ b/src/main/java/org/eclipse/basyx/extensions/submodel/aggregator/authorization/AuthorizedDecoratingSubmodelAggregatorFactory.java @@ -11,6 +11,7 @@ import org.eclipse.basyx.submodel.aggregator.api.ISubmodelAggregator; import org.eclipse.basyx.submodel.aggregator.api.ISubmodelAggregatorFactory; +import org.eclipse.basyx.submodel.metamodel.api.identifier.IIdentifier; /** * Api provider for constructing a new Submodel aggregator that is authorized @@ -28,4 +29,9 @@ public AuthorizedDecoratingSubmodelAggregatorFactory(ISubmodelAggregatorFactory public ISubmodelAggregator create() { return new AuthorizedSubmodelAggregator(submodelAggregatorFactory.create()); } + + @Override + public ISubmodelAggregator create(IIdentifier aasIdentifier) { + return new AuthorizedSubmodelAggregator(submodelAggregatorFactory.create(aasIdentifier)); + } } \ No newline at end of file diff --git a/src/main/java/org/eclipse/basyx/extensions/submodel/aggregator/authorization/internal/AuthorizedDecoratingSubmodelAggregatorFactory.java b/src/main/java/org/eclipse/basyx/extensions/submodel/aggregator/authorization/internal/AuthorizedDecoratingSubmodelAggregatorFactory.java index 8b71add5..1252979d 100644 --- a/src/main/java/org/eclipse/basyx/extensions/submodel/aggregator/authorization/internal/AuthorizedDecoratingSubmodelAggregatorFactory.java +++ b/src/main/java/org/eclipse/basyx/extensions/submodel/aggregator/authorization/internal/AuthorizedDecoratingSubmodelAggregatorFactory.java @@ -28,6 +28,7 @@ import org.eclipse.basyx.extensions.shared.authorization.internal.ISubjectInformationProvider; import org.eclipse.basyx.submodel.aggregator.api.ISubmodelAggregator; import org.eclipse.basyx.submodel.aggregator.api.ISubmodelAggregatorFactory; +import org.eclipse.basyx.submodel.metamodel.api.identifier.IIdentifier; /** * Api provider for constructing a new Submodel aggregator that is authorized @@ -52,4 +53,9 @@ public AuthorizedDecoratingSubmodelAggregatorFactory(final IAssetAdministrationS public ISubmodelAggregator create() { return new AuthorizedSubmodelAggregator<>(aas, submodelAggregatorFactory.create(), submodelAggregatorAuthorizer, subjectInformationProvider); } + + @Override + public ISubmodelAggregator create(IIdentifier aasIdentifier) { + return new AuthorizedSubmodelAggregator<>(aas, submodelAggregatorFactory.create(aasIdentifier), submodelAggregatorAuthorizer, subjectInformationProvider); + } } \ No newline at end of file diff --git a/src/main/java/org/eclipse/basyx/extensions/submodel/aggregator/mqtt/MqttDecoratingSubmodelAggregatorFactory.java b/src/main/java/org/eclipse/basyx/extensions/submodel/aggregator/mqtt/MqttDecoratingSubmodelAggregatorFactory.java index f5774c7a..6a35b412 100644 --- a/src/main/java/org/eclipse/basyx/extensions/submodel/aggregator/mqtt/MqttDecoratingSubmodelAggregatorFactory.java +++ b/src/main/java/org/eclipse/basyx/extensions/submodel/aggregator/mqtt/MqttDecoratingSubmodelAggregatorFactory.java @@ -30,6 +30,7 @@ import org.eclipse.basyx.submodel.aggregator.api.ISubmodelAggregator; import org.eclipse.basyx.submodel.aggregator.api.ISubmodelAggregatorFactory; import org.eclipse.basyx.submodel.aggregator.observing.ObservableSubmodelAggregator; +import org.eclipse.basyx.submodel.metamodel.api.identifier.IIdentifier; import org.eclipse.paho.client.mqttv3.MqttClient; import org.eclipse.paho.client.mqttv3.MqttException; @@ -55,13 +56,25 @@ public MqttDecoratingSubmodelAggregatorFactory(ISubmodelAggregatorFactory submod public ISubmodelAggregator create() { try { ISubmodelAggregator aggregator = submodelAggregatorFactory.create(); - observedSubmodelAggregator = new ObservableSubmodelAggregator(aggregator); - observer = new MqttSubmodelAggregatorObserver(mqttClient); - observedSubmodelAggregator.addObserver(observer); - return observedSubmodelAggregator; + return decorateAggregator(aggregator); + } catch (MqttException e) { + throw new ProviderException(e); + } + } + @Override + public ISubmodelAggregator create(IIdentifier aasIdentifier) { + try { + ISubmodelAggregator aggregator = submodelAggregatorFactory.create(aasIdentifier); + return decorateAggregator(aggregator); } catch (MqttException e) { throw new ProviderException(e); } } + private ISubmodelAggregator decorateAggregator(ISubmodelAggregator aggregator) throws MqttException { + observedSubmodelAggregator = new ObservableSubmodelAggregator(aggregator); + observer = new MqttSubmodelAggregatorObserver(mqttClient); + observedSubmodelAggregator.addObserver(observer); + return observedSubmodelAggregator; + } } diff --git a/src/main/java/org/eclipse/basyx/extensions/submodel/aggregator/mqtt/MqttV2DecoratingSubmodelAggregatorFactory.java b/src/main/java/org/eclipse/basyx/extensions/submodel/aggregator/mqtt/MqttV2DecoratingSubmodelAggregatorFactory.java index ca73646c..469e661e 100644 --- a/src/main/java/org/eclipse/basyx/extensions/submodel/aggregator/mqtt/MqttV2DecoratingSubmodelAggregatorFactory.java +++ b/src/main/java/org/eclipse/basyx/extensions/submodel/aggregator/mqtt/MqttV2DecoratingSubmodelAggregatorFactory.java @@ -30,6 +30,7 @@ import org.eclipse.basyx.submodel.aggregator.api.ISubmodelAggregator; import org.eclipse.basyx.submodel.aggregator.api.ISubmodelAggregatorFactory; import org.eclipse.basyx.submodel.aggregator.observing.ObservableSubmodelAggregatorV2; +import org.eclipse.basyx.submodel.metamodel.api.identifier.IIdentifier; import org.eclipse.paho.client.mqttv3.MqttClient; import org.eclipse.paho.client.mqttv3.MqttException; @@ -59,13 +60,27 @@ public MqttV2DecoratingSubmodelAggregatorFactory(ISubmodelAggregatorFactory subm public ISubmodelAggregator create() { try { ISubmodelAggregator aggregator = submodelAggregatorFactory.create(); - observedSubmodelAggregator = new ObservableSubmodelAggregatorV2(aggregator, this.aasServerId); - observer = new MqttV2SubmodelAggregatorObserver(mqttClient, topicFactory); - observedSubmodelAggregator.addObserver(observer); - return observedSubmodelAggregator; + return decorateAggregator(aggregator); } catch (MqttException e) { throw new ProviderException(e); } } + @Override + public ISubmodelAggregator create(IIdentifier aasIdentifier) { + try { + ISubmodelAggregator aggregator = submodelAggregatorFactory.create(aasIdentifier); + return decorateAggregator(aggregator); + } catch (MqttException e) { + throw new ProviderException(e); + } + } + + private ISubmodelAggregator decorateAggregator(ISubmodelAggregator aggregator) throws MqttException { + observedSubmodelAggregator = new ObservableSubmodelAggregatorV2(aggregator, this.aasServerId); + observer = new MqttV2SubmodelAggregatorObserver(mqttClient, topicFactory); + observedSubmodelAggregator.addObserver(observer); + return observedSubmodelAggregator; + } + }