Skip to content

Commit

Permalink
Adds missing create method in implementations of ISubmodelAggregatorF…
Browse files Browse the repository at this point in the history
…actory (#221)


Signed-off-by: Jannik Fried <Jannik.Fried@iese.fraunhofer.de>
  • Loading branch information
FriedJannik committed Feb 10, 2023
1 parent 1b56a4d commit dc13d6f
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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;
}

}

0 comments on commit dc13d6f

Please sign in to comment.