webpiecesxxxxxpackage.service.SimpleStorageImpl Maven / Gradle / Ivy
package webpiecesxxxxxpackage.service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import org.webpieces.router.api.extensions.SimpleStorage;
import webpiecesxxxxxpackage.db.SimpleStorageDbo;
public class SimpleStorageImpl implements SimpleStorage {
private EntityManagerFactory factory;
@Inject
public SimpleStorageImpl(EntityManagerFactory factory) {
this.factory = factory;
}
@Override
public CompletableFuture save(String key, String subKey, String value) {
EntityManager mgr = factory.createEntityManager();
mgr.getTransaction().begin();
SimpleStorageDbo bean = SimpleStorageDbo.find(mgr, key, subKey);
if(bean == null)
bean = new SimpleStorageDbo(key, subKey, value);
mgr.merge(bean);
mgr.flush();
mgr.getTransaction().commit();
mgr.close();
return CompletableFuture.completedFuture(null);
}
@Override
public CompletableFuture save(String key, Map properties) {
EntityManager mgr = factory.createEntityManager();
mgr.getTransaction().begin();
for(Map.Entry entry : properties.entrySet()) {
//should fix this to query once instead of once for each property on the bean
SimpleStorageDbo bean = SimpleStorageDbo.find(mgr, key, entry.getKey());
if(bean == null) {
bean = new SimpleStorageDbo(key, entry.getKey(), entry.getValue());
} else {
bean.setValue(entry.getValue());
}
mgr.merge(bean);
}
mgr.flush();
mgr.getTransaction().commit();
mgr.close();
return CompletableFuture.completedFuture(null);
}
@Override
public CompletableFuture © 2015 - 2025 Weber Informatics LLC | Privacy Policy