diff --git a/src/main/java/li/strolch/agent/api/ElementMap.java b/src/main/java/li/strolch/agent/api/ElementMap.java index d49a909cc..3d89779f6 100644 --- a/src/main/java/li/strolch/agent/api/ElementMap.java +++ b/src/main/java/li/strolch/agent/api/ElementMap.java @@ -38,6 +38,25 @@ public interface ElementMap { public long querySize(StrolchTransaction tx, String type); + /** + * Returns the element with the type "Template" and the id = type + * + * @param tx + * the open {@link StrolchTransaction} + * @param type + * The template id to return + * @return the template, or null if it does not exist + */ + public T getTemplate(StrolchTransaction tx, String type); + + /** + * + * + * @param tx + * @param type + * @param id + * @return + */ public T getBy(StrolchTransaction tx, String type, String id); /** diff --git a/src/main/java/li/strolch/agent/impl/CachedElementMap.java b/src/main/java/li/strolch/agent/impl/CachedElementMap.java index fee93197b..de7b43ec2 100644 --- a/src/main/java/li/strolch/agent/impl/CachedElementMap.java +++ b/src/main/java/li/strolch/agent/impl/CachedElementMap.java @@ -29,6 +29,7 @@ import li.strolch.model.StrolchElement; import li.strolch.persistence.api.StrolchDao; import li.strolch.persistence.api.StrolchPersistenceException; import li.strolch.persistence.api.StrolchTransaction; +import li.strolch.runtime.StrolchConstants; import ch.eitchnet.utils.dbc.DBC; /** @@ -70,6 +71,11 @@ public abstract class CachedElementMap implements Elem return getKeysBy(tx, type).size(); } + @Override + public T getTemplate(StrolchTransaction tx, String type) { + return getBy(tx, StrolchConstants.TEMPLATE, type); + } + @Override public T getBy(StrolchTransaction tx, String type, String id) { Map byType = this.elementMap.get(type); diff --git a/src/main/java/li/strolch/agent/impl/TransactionalElementMap.java b/src/main/java/li/strolch/agent/impl/TransactionalElementMap.java index 13a412eda..745fffd07 100644 --- a/src/main/java/li/strolch/agent/impl/TransactionalElementMap.java +++ b/src/main/java/li/strolch/agent/impl/TransactionalElementMap.java @@ -7,6 +7,7 @@ import li.strolch.agent.api.ElementMap; import li.strolch.model.StrolchElement; import li.strolch.persistence.api.StrolchDao; import li.strolch.persistence.api.StrolchTransaction; +import li.strolch.runtime.StrolchConstants; /** * @author Robert von Burg @@ -38,6 +39,11 @@ public abstract class TransactionalElementMap implemen return getDao(tx).querySize(type); } + @Override + public T getTemplate(StrolchTransaction tx, String type) { + return getBy(tx, StrolchConstants.TEMPLATE, type); + } + @Override public T getBy(StrolchTransaction tx, String type, String id) { return getDao(tx).queryBy(type, id); diff --git a/src/main/java/li/strolch/runtime/StrolchConstants.java b/src/main/java/li/strolch/runtime/StrolchConstants.java index 1e7f4bf4d..6d114a5a2 100644 --- a/src/main/java/li/strolch/runtime/StrolchConstants.java +++ b/src/main/java/li/strolch/runtime/StrolchConstants.java @@ -36,6 +36,8 @@ public class StrolchConstants { public static final String DEFAULT_XML_VERSION = "1.0"; //$NON-NLS-1$ public static final String DEFAULT_ENCODING = "utf-8"; //$NON-NLS-1$ + public static final String TEMPLATE = "Template"; + /** * This interpretation value indicates that the value of the {@link Parameter} should be understood as a reference * to a {@link Resource}