From 7904bb45d73e1cbd547fe68f06e5892bb2bb85c5 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Mon, 19 Jul 2021 12:06:55 +0200 Subject: [PATCH] [New] Added StrolchTransaction.getPolicy(PolicyContainer, Class) to simplify getting policies --- .../persistence/api/AbstractTransaction.java | 6 ++++++ .../persistence/api/StrolchTransaction.java | 14 ++++++++++++++ 2 files changed, 20 insertions(+) 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} *