li.strolch.execution.policy.DurationExecution Maven / Gradle / Ivy
package li.strolch.execution.policy;
import li.strolch.agent.api.ComponentContainer;
import li.strolch.model.Locator;
import li.strolch.model.activity.Action;
import li.strolch.model.parameter.DurationParameter;
import li.strolch.persistence.api.StrolchTransaction;
import li.strolch.runtime.StrolchConstants.PolicyConstants;
/**
*
* Simple Execution Policy which starts the execution immediately, i.e. set state to in execution and completes after
* the {@link Action Action's} duration has passed.
*
*
* @author Robert von Burg
*/
public class DurationExecution extends SimpleExecution {
public DurationExecution(ComponentContainer container, StrolchTransaction tx) {
super(container, tx);
}
@Override
public void toExecution(Action action) {
DurationParameter durationP = action.findParameter(PolicyConstants.BAG_OBJECTIVES,
PolicyConstants.PARAM_DURATION, true);
String realmName = tx().getRealmName();
Locator locator = action.getLocator();
logger.info("Executing action " + action.getLocator() + " has a duration of " + durationP.getValueAsString());
getDelayedExecutionTimer().execute(realmName, getContainer(), locator, durationP.getValue());
super.toExecution(action);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy