diff --git a/li.strolch.agent/src/main/java/li/strolch/persistence/api/AbstractTransaction.java b/li.strolch.agent/src/main/java/li/strolch/persistence/api/AbstractTransaction.java index 732a6f9f9..1fc473290 100644 --- a/li.strolch.agent/src/main/java/li/strolch/persistence/api/AbstractTransaction.java +++ b/li.strolch.agent/src/main/java/li/strolch/persistence/api/AbstractTransaction.java @@ -418,6 +418,12 @@ public abstract class AbstractTransaction implements StrolchTransaction { return this.container; } + @Override + public T getPolicy(PolicyContainer element, Class clazz) { + PolicyDef policyDef = element.getPolicyDef(clazz); + return getContainer().getComponent(PolicyHandler.class).getPolicy(policyDef, this); + } + @Override @Deprecated public T getPolicy(PolicyDef policyDef) { diff --git a/li.strolch.agent/src/main/java/li/strolch/persistence/api/StrolchTransaction.java b/li.strolch.agent/src/main/java/li/strolch/persistence/api/StrolchTransaction.java index 2495f508a..2523c7806 100644 --- a/li.strolch.agent/src/main/java/li/strolch/persistence/api/StrolchTransaction.java +++ b/li.strolch.agent/src/main/java/li/strolch/persistence/api/StrolchTransaction.java @@ -229,6 +229,20 @@ public interface StrolchTransaction extends AutoCloseable { */ ComponentContainer getContainer(); + /** + * Instantiates the policy using the given {@link Class} to retrieve the {@link PolicyDef} from the given element + * + * @param element + * the element from which to retrieve the {@link PolicyDef + * @param + * the type of policy to return + * + * @return the policy + * @param clazz + * the type of policy to return + */ + T getPolicy(PolicyContainer element, Class clazz); + /** * Instantiates the policy using the given {@link PolicyDef} *