[New] Simplified instantiating policy: tx.getPolicy(PolicyDef)
This commit is contained in:
parent
66ac578304
commit
321d63dfb3
|
@ -39,9 +39,12 @@ import li.strolch.model.audit.Audit;
|
|||
import li.strolch.model.parameter.Parameter;
|
||||
import li.strolch.model.parameter.StringListParameter;
|
||||
import li.strolch.model.parameter.StringParameter;
|
||||
import li.strolch.model.policy.PolicyDef;
|
||||
import li.strolch.model.query.*;
|
||||
import li.strolch.model.timedstate.StrolchTimedState;
|
||||
import li.strolch.model.timevalue.IValue;
|
||||
import li.strolch.policy.PolicyHandler;
|
||||
import li.strolch.policy.StrolchPolicy;
|
||||
import li.strolch.privilege.base.AccessDeniedException;
|
||||
import li.strolch.privilege.base.PrivilegeException;
|
||||
import li.strolch.privilege.base.PrivilegeModelException;
|
||||
|
@ -360,6 +363,11 @@ public abstract class AbstractTransaction implements StrolchTransaction {
|
|||
return this.container;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends StrolchPolicy> T getPolicy(PolicyDef policyDef) {
|
||||
return getContainer().getComponent(PolicyHandler.class).getPolicy(policyDef, this);
|
||||
}
|
||||
|
||||
private void assertQueryAllowed(StrolchQuery query) {
|
||||
try {
|
||||
getPrivilegeContext().validateAction(query);
|
||||
|
|
|
@ -32,6 +32,7 @@ import li.strolch.model.audit.AuditVisitor;
|
|||
import li.strolch.model.parameter.Parameter;
|
||||
import li.strolch.model.parameter.StringListParameter;
|
||||
import li.strolch.model.parameter.StringParameter;
|
||||
import li.strolch.model.policy.PolicyDef;
|
||||
import li.strolch.model.query.ActivityQuery;
|
||||
import li.strolch.model.query.AuditQuery;
|
||||
import li.strolch.model.query.OrderQuery;
|
||||
|
@ -39,6 +40,7 @@ import li.strolch.model.query.ResourceQuery;
|
|||
import li.strolch.model.visitor.ActivityVisitor;
|
||||
import li.strolch.model.visitor.OrderVisitor;
|
||||
import li.strolch.model.visitor.ResourceVisitor;
|
||||
import li.strolch.policy.StrolchPolicy;
|
||||
import li.strolch.privilege.base.AccessDeniedException;
|
||||
import li.strolch.privilege.model.Certificate;
|
||||
import li.strolch.privilege.model.PrivilegeContext;
|
||||
|
@ -161,6 +163,18 @@ public interface StrolchTransaction extends AutoCloseable {
|
|||
*/
|
||||
ComponentContainer getContainer();
|
||||
|
||||
/**
|
||||
* Instantiates the policy using the given {@link PolicyDef}
|
||||
*
|
||||
* @param policyDef
|
||||
* the policy definition
|
||||
* @param <T>
|
||||
* the type of policy to return
|
||||
*
|
||||
* @return the policy
|
||||
*/
|
||||
<T extends StrolchPolicy> T getPolicy(PolicyDef policyDef);
|
||||
|
||||
/**
|
||||
* Returns the currently set {@link TransactionCloseStrategy}
|
||||
*
|
||||
|
|
|
@ -25,17 +25,6 @@ import li.strolch.persistence.api.StrolchTransaction;
|
|||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* Objects which require delegation can use a {@link PolicyConfiguration} element and then retrieve a StrolchPolicy
|
||||
* instance from this {@link PolicyHandler}.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* {@link PolicyConfiguration} have a mapping of a policy type, i.e. an interface for a specific delegation. This
|
||||
* interface has concrete implementations which are then returned by the {@link PolicyHandler} depending on the current
|
||||
* configuration
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* The resolving of a policy instance is handled by a {@link PolicyDefVisitor}
|
||||
* <p>
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue