Skip to content

Commit

Permalink
Fixed Save Provider Command
Browse files Browse the repository at this point in the history
Signed-off-by: Juergen Albert <j.albert@data-in-motion.biz>
  • Loading branch information
juergen-albert committed Apr 12, 2024
1 parent ff8bf90 commit 5bcf42a
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
*/
public interface Model extends Modelled, CommandScoped {

String getPackageUri();

ServiceBuilder<Service> createService(String service);

Map<String, ? extends Service> getServices();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

import java.time.Instant;

import org.eclipse.emf.ecore.EClass;
import org.eclipse.sensinact.core.emf.command.AbstractSensinactEMFCommand;
import org.eclipse.sensinact.core.emf.model.SensinactEMFModelManager;
import org.eclipse.sensinact.core.emf.twin.SensinactEMFDigitalTwin;
Expand All @@ -35,11 +36,12 @@ public SaveProviderCommand(Provider provider) {
protected Promise<Void> call(SensinactEMFDigitalTwin twin, SensinactEMFModelManager modelMgr,
PromiseFactory promiseFactory) {

Model model = modelMgr.getModel(provider.eClass());
EClass eClass = provider.eClass();
Model model = modelMgr.getModel(eClass);
if (model == null) {
model = modelMgr.createModel(provider.eClass()).withCreationTime(Instant.now()).build();
model = modelMgr.createModel(eClass).withCreationTime(Instant.now()).build();
}
SensinactEMFProvider sp = twin.getProvider(model.getName(), provider.getId());
SensinactEMFProvider sp = twin.getProvider(model.getPackageUri(), model.getName(), provider.getId());
if (sp == null) {
sp = twin.createProvider(provider);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,12 @@ public String getName() {
return name;
}

@Override
public String getPackageUri() {
checkValid();
return eClass.getEPackage().getNsURI();
}

@Override
public boolean isExclusivelyOwned() {
checkValid();
Expand Down

0 comments on commit 5bcf42a

Please sign in to comment.