diff --git a/src/main/java/li/strolch/agent/impl/TransactionalElementMap.java b/src/main/java/li/strolch/agent/impl/TransactionalElementMap.java index e1c0fce66..bc3f64a36 100644 --- a/src/main/java/li/strolch/agent/impl/TransactionalElementMap.java +++ b/src/main/java/li/strolch/agent/impl/TransactionalElementMap.java @@ -25,8 +25,7 @@ public abstract class TransactionalElementMap implemen @Override public boolean hasElement(StrolchTransaction tx, String type, String id) { - // TODO change to dao.hasElement(type, id) - return getDao(tx).queryKeySet(type).contains(id); + return getDao(tx).hasElement(type, id); } @Override diff --git a/src/main/java/li/strolch/persistence/api/StrolchDao.java b/src/main/java/li/strolch/persistence/api/StrolchDao.java index cefb8e458..c4676ba05 100644 --- a/src/main/java/li/strolch/persistence/api/StrolchDao.java +++ b/src/main/java/li/strolch/persistence/api/StrolchDao.java @@ -27,7 +27,7 @@ public interface StrolchDao { public Set queryKeySet(); - // TODO add method hasElement(String type, String id) + public boolean hasElement(String type, String id); public long querySize(); diff --git a/src/main/java/li/strolch/persistence/inmemory/InMemoryDao.java b/src/main/java/li/strolch/persistence/inmemory/InMemoryDao.java index c7a96a702..ae7277cbe 100644 --- a/src/main/java/li/strolch/persistence/inmemory/InMemoryDao.java +++ b/src/main/java/li/strolch/persistence/inmemory/InMemoryDao.java @@ -2,7 +2,6 @@ package li.strolch.persistence.inmemory; import java.text.MessageFormat; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -21,6 +20,14 @@ public class InMemoryDao implements StrolchDao { this.elementMap = new HashMap<>(); } + @Override + public boolean hasElement(String type, String id) { + Map byType = this.elementMap.get(type); + if (byType == null) + return false; + return byType.containsKey(id); + } + @Override public long querySize() { long size = 0; @@ -57,7 +64,7 @@ public class InMemoryDao implements StrolchDao { public Set queryKeySet(String type) { Map byType = this.elementMap.get(type); if (byType == null) - return Collections.emptySet(); + return new HashSet<>(0); return new HashSet<>(byType.keySet()); } @@ -91,7 +98,7 @@ public class InMemoryDao implements StrolchDao { public List queryAll(String type) { Map byType = this.elementMap.get(type); if (byType == null) - return Collections.emptyList(); + return new ArrayList<>(0); return new ArrayList<>(byType.values()); }