diff --git a/li.strolch.service/src/main/java/li/strolch/execution/Controller.java b/li.strolch.service/src/main/java/li/strolch/execution/Controller.java index 6b4d49e9d..20022db95 100644 --- a/li.strolch.service/src/main/java/li/strolch/execution/Controller.java +++ b/li.strolch.service/src/main/java/li/strolch/execution/Controller.java @@ -79,7 +79,7 @@ public class Controller { public ExecutionPolicy refreshExecutionPolicy(StrolchTransaction tx, Action action) { ExecutionPolicy executionPolicy = this.inExecution.computeIfAbsent(action.getLocator(), e -> { Resource resource = tx.getResourceFor(action, true); - return tx.getPolicy(resource.getPolicyDef(ExecutionPolicy.class)); + return tx.getPolicy(resource, ExecutionPolicy.class); }); // always update the TX and controller diff --git a/li.strolch.service/src/main/java/li/strolch/execution/command/ActionExecutionCommand.java b/li.strolch.service/src/main/java/li/strolch/execution/command/ActionExecutionCommand.java index 28e3f57fa..0133d1950 100644 --- a/li.strolch.service/src/main/java/li/strolch/execution/command/ActionExecutionCommand.java +++ b/li.strolch.service/src/main/java/li/strolch/execution/command/ActionExecutionCommand.java @@ -25,7 +25,7 @@ public abstract class ActionExecutionCommand extends BasePlanningAndExecutionCom protected ExecutionPolicy getExecutionPolicy(Action action) { if (this.executionPolicy != null) return this.executionPolicy; - return tx().getPolicy(action.getPolicyDef(ExecutionPolicy.class)); + return tx().getPolicy(action, ExecutionPolicy.class); } @Override diff --git a/li.strolch.service/src/main/java/li/strolch/execution/command/ArchiveActivityCommand.java b/li.strolch.service/src/main/java/li/strolch/execution/command/ArchiveActivityCommand.java index d8a98fe51..9d9953a78 100644 --- a/li.strolch.service/src/main/java/li/strolch/execution/command/ArchiveActivityCommand.java +++ b/li.strolch.service/src/main/java/li/strolch/execution/command/ArchiveActivityCommand.java @@ -1,11 +1,8 @@ package li.strolch.execution.command; -import static li.strolch.execution.policy.ActivityArchivalPolicy.DEFAULT_ACTIVITY_ARCHIVAL; - import li.strolch.execution.policy.ActivityArchivalPolicy; import li.strolch.model.Locator; import li.strolch.model.activity.Activity; -import li.strolch.model.policy.PolicyDef; import li.strolch.persistence.api.StrolchTransaction; import li.strolch.service.api.Command; import li.strolch.utils.dbc.DBC; @@ -39,8 +36,6 @@ public class ArchiveActivityCommand extends Command { logger.info("Activity " + activity.getLocator() + " is in state " + activity.getState()); - PolicyDef policyDef = activity.getPolicyDef(ActivityArchivalPolicy.class, DEFAULT_ACTIVITY_ARCHIVAL); - ActivityArchivalPolicy archivalPolicy = tx().getPolicy(policyDef); - archivalPolicy.archive(activity); + tx().getPolicy(activity, ActivityArchivalPolicy.class).archive(activity); } } diff --git a/li.strolch.service/src/main/java/li/strolch/execution/command/AssignActionCommand.java b/li.strolch.service/src/main/java/li/strolch/execution/command/AssignActionCommand.java index 3ca2f971f..ba4fcc4d3 100644 --- a/li.strolch.service/src/main/java/li/strolch/execution/command/AssignActionCommand.java +++ b/li.strolch.service/src/main/java/li/strolch/execution/command/AssignActionCommand.java @@ -22,6 +22,7 @@ import li.strolch.model.Resource; import li.strolch.model.State; import li.strolch.model.activity.Action; import li.strolch.model.activity.Activity; +import li.strolch.model.policy.PolicyDef; import li.strolch.persistence.api.StrolchTransaction; import li.strolch.utils.dbc.DBC; @@ -77,9 +78,11 @@ public class AssignActionCommand extends PlanningCommand { @Override public Void visitAction(Action action) { + PolicyDef planningPolicyDef = action.findPolicy(PlanningPolicy.class, DEFAULT_PLANNING); + // unplan the action if (action.getState() == State.PLANNED) { - PlanningPolicy planningPolicy = tx().getPolicy(action.findPolicy(PlanningPolicy.class, DEFAULT_PLANNING)); + PlanningPolicy planningPolicy = tx().getPolicy(PlanningPolicy.class, planningPolicyDef); planningPolicy.unplan(action); } @@ -88,7 +91,7 @@ public class AssignActionCommand extends PlanningCommand { action.setResourceType(this.targetResourceType); // finally plan the action to the assigned resource - PlanningPolicy planningPolicy = tx().getPolicy(action.findPolicy(PlanningPolicy.class, DEFAULT_PLANNING)); + PlanningPolicy planningPolicy = tx().getPolicy(PlanningPolicy.class, planningPolicyDef); planningPolicy.plan(action); return null; diff --git a/li.strolch.service/src/main/java/li/strolch/execution/command/PlanActionCommand.java b/li.strolch.service/src/main/java/li/strolch/execution/command/PlanActionCommand.java index c68e842b5..59a03470a 100644 --- a/li.strolch.service/src/main/java/li/strolch/execution/command/PlanActionCommand.java +++ b/li.strolch.service/src/main/java/li/strolch/execution/command/PlanActionCommand.java @@ -22,6 +22,7 @@ import li.strolch.model.Resource; import li.strolch.model.State; import li.strolch.model.activity.Action; import li.strolch.model.activity.Activity; +import li.strolch.model.policy.PolicyDef; import li.strolch.model.timedstate.StrolchTimedState; import li.strolch.model.timevalue.IValueChange; import li.strolch.persistence.api.StrolchTransaction; @@ -66,7 +67,8 @@ public class PlanActionCommand extends PlanningCommand { @Override public Void visitAction(Action action) { - PlanningPolicy planningPolicy = tx().getPolicy(action.findPolicy(PlanningPolicy.class, DEFAULT_PLANNING)); + PolicyDef planningPolicyDef = action.findPolicy(PlanningPolicy.class, DEFAULT_PLANNING); + PlanningPolicy planningPolicy = tx().getPolicy(PlanningPolicy.class, planningPolicyDef); planningPolicy.plan(action); if (action.getState() == State.PLANNED) getConfirmationPolicy(action).toPlanned(action); diff --git a/li.strolch.service/src/main/java/li/strolch/execution/command/PlanActivityCommand.java b/li.strolch.service/src/main/java/li/strolch/execution/command/PlanActivityCommand.java index 7b58b67b0..cc392b07b 100644 --- a/li.strolch.service/src/main/java/li/strolch/execution/command/PlanActivityCommand.java +++ b/li.strolch.service/src/main/java/li/strolch/execution/command/PlanActivityCommand.java @@ -22,6 +22,7 @@ import li.strolch.model.Resource; import li.strolch.model.State; import li.strolch.model.activity.Action; import li.strolch.model.activity.Activity; +import li.strolch.model.policy.PolicyDef; import li.strolch.model.timedstate.StrolchTimedState; import li.strolch.model.timevalue.IValueChange; import li.strolch.persistence.api.StrolchTransaction; @@ -66,7 +67,8 @@ public class PlanActivityCommand extends PlanningCommand { @Override public Void visitAction(Action action) { - PlanningPolicy planningPolicy = tx().getPolicy(action.findPolicy(PlanningPolicy.class, DEFAULT_PLANNING)); + PolicyDef planningPolicyDef = action.findPolicy(PlanningPolicy.class, DEFAULT_PLANNING); + PlanningPolicy planningPolicy = tx().getPolicy(PlanningPolicy.class, planningPolicyDef); planningPolicy.plan(action); if (action.getState() == State.PLANNED) getConfirmationPolicy(action).toPlanned(action); diff --git a/li.strolch.service/src/main/java/li/strolch/execution/command/ShiftActionCommand.java b/li.strolch.service/src/main/java/li/strolch/execution/command/ShiftActionCommand.java index 0e144974d..2cd252346 100644 --- a/li.strolch.service/src/main/java/li/strolch/execution/command/ShiftActionCommand.java +++ b/li.strolch.service/src/main/java/li/strolch/execution/command/ShiftActionCommand.java @@ -23,6 +23,7 @@ import li.strolch.execution.policy.PlanningPolicy; import li.strolch.model.State; import li.strolch.model.activity.Action; import li.strolch.model.activity.Activity; +import li.strolch.model.policy.PolicyDef; import li.strolch.model.timevalue.IValue; import li.strolch.model.timevalue.IValueChange; import li.strolch.persistence.api.StrolchTransaction; @@ -67,9 +68,11 @@ public class ShiftActionCommand extends PlanningCommand { @Override public Void visitAction(Action action) { + PolicyDef planningPolicyDef = action.findPolicy(PlanningPolicy.class, DEFAULT_PLANNING); + // unplan the action if (action.getState() == State.PLANNED) { - PlanningPolicy planningPolicy = tx().getPolicy(action.findPolicy(PlanningPolicy.class, DEFAULT_PLANNING)); + PlanningPolicy planningPolicy = tx().getPolicy(PlanningPolicy.class, planningPolicyDef); planningPolicy.unplan(action); if (action.getState() == State.CREATED) getConfirmationPolicy(action).toCreated(action); @@ -82,7 +85,7 @@ public class ShiftActionCommand extends PlanningCommand { } // finally plan the action - PlanningPolicy planningPolicy = tx().getPolicy(action.findPolicy(PlanningPolicy.class, DEFAULT_PLANNING)); + PlanningPolicy planningPolicy = tx().getPolicy(PlanningPolicy.class, planningPolicyDef); planningPolicy.plan(action); if (action.getState() == State.PLANNED) getConfirmationPolicy(action).toPlanned(action); diff --git a/li.strolch.service/src/main/java/li/strolch/execution/command/UnplanActionCommand.java b/li.strolch.service/src/main/java/li/strolch/execution/command/UnplanActionCommand.java index 9d158998b..e6beedf23 100644 --- a/li.strolch.service/src/main/java/li/strolch/execution/command/UnplanActionCommand.java +++ b/li.strolch.service/src/main/java/li/strolch/execution/command/UnplanActionCommand.java @@ -22,6 +22,7 @@ import li.strolch.model.Resource; import li.strolch.model.State; import li.strolch.model.activity.Action; import li.strolch.model.activity.Activity; +import li.strolch.model.policy.PolicyDef; import li.strolch.model.timedstate.StrolchTimedState; import li.strolch.model.timevalue.IValueChange; import li.strolch.persistence.api.StrolchTransaction; @@ -68,7 +69,8 @@ public class UnplanActionCommand extends PlanningCommand { @Override public Void visitAction(Action action) { - PlanningPolicy planningPolicy = tx().getPolicy(action.findPolicy(PlanningPolicy.class, DEFAULT_PLANNING)); + PolicyDef planningPolicyDef = action.findPolicy(PlanningPolicy.class, DEFAULT_PLANNING); + PlanningPolicy planningPolicy = tx().getPolicy(PlanningPolicy.class, planningPolicyDef); planningPolicy.unplan(action); if (action.getState() == State.CREATED) getConfirmationPolicy(action).toCreated(action); diff --git a/li.strolch.service/src/main/java/li/strolch/execution/command/UnplanActivityCommand.java b/li.strolch.service/src/main/java/li/strolch/execution/command/UnplanActivityCommand.java index 8382e7af3..6f02f30c1 100644 --- a/li.strolch.service/src/main/java/li/strolch/execution/command/UnplanActivityCommand.java +++ b/li.strolch.service/src/main/java/li/strolch/execution/command/UnplanActivityCommand.java @@ -22,6 +22,7 @@ import li.strolch.model.Resource; import li.strolch.model.State; import li.strolch.model.activity.Action; import li.strolch.model.activity.Activity; +import li.strolch.model.policy.PolicyDef; import li.strolch.model.timedstate.StrolchTimedState; import li.strolch.model.timevalue.IValueChange; import li.strolch.persistence.api.StrolchTransaction; @@ -66,7 +67,8 @@ public class UnplanActivityCommand extends PlanningCommand { @Override public Void visitAction(Action action) { - PlanningPolicy planningPolicy = tx().getPolicy(action.findPolicy(PlanningPolicy.class, DEFAULT_PLANNING)); + PolicyDef planningPolicyDef = action.findPolicy(PlanningPolicy.class, DEFAULT_PLANNING); + PlanningPolicy planningPolicy = tx().getPolicy(PlanningPolicy.class, planningPolicyDef); planningPolicy.unplan(action); if (action.getState() == State.CREATED) getConfirmationPolicy(action).toCreated(action); diff --git a/li.strolch.service/src/main/java/li/strolch/report/policy/ValueRefReportFilter.java b/li.strolch.service/src/main/java/li/strolch/report/policy/ValueRefReportFilter.java index ea0b7f2eb..19c3f24d6 100644 --- a/li.strolch.service/src/main/java/li/strolch/report/policy/ValueRefReportFilter.java +++ b/li.strolch.service/src/main/java/li/strolch/report/policy/ValueRefReportFilter.java @@ -20,8 +20,9 @@ public class ValueRefReportFilter extends ReportFilterPolicy { public void init(String value) { super.init(value); - this.filterPolicy = tx().getPolicy(PolicyDef - .valueOf(ReportFilterPolicy.class.getSimpleName(), KeyPolicyDef.XML_PREFIX + this.filterValue)); + PolicyDef filterPolicyDef = PolicyDef + .valueOf(ReportFilterPolicy.class.getSimpleName(), KeyPolicyDef.XML_PREFIX + this.filterValue); + this.filterPolicy = tx().getPolicy(ReportFilterPolicy.class, filterPolicyDef); } @Override