[Major] Added StrolchPolicy.undo()
- and from now on we don't use interfaces anymore. We use abstract classes with StrolchPolicy as the super class. - it would be lovely if Java would get rid of interfaces and abstract classes. We only need one: abstract classes.
This commit is contained in:
parent
01a86ca9f7
commit
cde640d511
|
@ -73,4 +73,9 @@ public abstract class StrolchPolicy {
|
||||||
protected StrolchTransaction tx() {
|
protected StrolchTransaction tx() {
|
||||||
return this.tx;
|
return this.tx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see Command#undo()
|
||||||
|
*/
|
||||||
|
protected abstract void undo();
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,12 +15,19 @@
|
||||||
*/
|
*/
|
||||||
package li.strolch.policytest;
|
package li.strolch.policytest;
|
||||||
|
|
||||||
|
import li.strolch.agent.api.ComponentContainer;
|
||||||
import li.strolch.model.activity.Action;
|
import li.strolch.model.activity.Action;
|
||||||
|
import li.strolch.persistence.api.StrolchTransaction;
|
||||||
|
import li.strolch.policy.StrolchPolicy;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
*/
|
*/
|
||||||
public interface TestConfirmationPolicy {
|
public abstract class TestConfirmationPolicy extends StrolchPolicy {
|
||||||
|
|
||||||
public void confirm(Action action);
|
public TestConfirmationPolicy(ComponentContainer container, StrolchTransaction tx) {
|
||||||
|
super(container, tx);
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract void confirm(Action action);
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,12 +15,19 @@
|
||||||
*/
|
*/
|
||||||
package li.strolch.policytest;
|
package li.strolch.policytest;
|
||||||
|
|
||||||
|
import li.strolch.agent.api.ComponentContainer;
|
||||||
import li.strolch.model.activity.Action;
|
import li.strolch.model.activity.Action;
|
||||||
|
import li.strolch.persistence.api.StrolchTransaction;
|
||||||
|
import li.strolch.policy.StrolchPolicy;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
*/
|
*/
|
||||||
public interface TestExecutionPolicy {
|
public abstract class TestExecutionPolicy extends StrolchPolicy {
|
||||||
|
|
||||||
public void execute(Action action);
|
public TestExecutionPolicy(ComponentContainer container, StrolchTransaction tx) {
|
||||||
|
super(container, tx);
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract void execute(Action action);
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,12 +19,11 @@ import li.strolch.agent.api.ComponentContainer;
|
||||||
import li.strolch.model.State;
|
import li.strolch.model.State;
|
||||||
import li.strolch.model.activity.Action;
|
import li.strolch.model.activity.Action;
|
||||||
import li.strolch.persistence.api.StrolchTransaction;
|
import li.strolch.persistence.api.StrolchTransaction;
|
||||||
import li.strolch.policy.StrolchPolicy;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
*/
|
*/
|
||||||
public class TestNoConfirmationPolicy extends StrolchPolicy implements TestConfirmationPolicy {
|
public class TestNoConfirmationPolicy extends TestConfirmationPolicy {
|
||||||
|
|
||||||
public TestNoConfirmationPolicy(ComponentContainer container, StrolchTransaction tx) {
|
public TestNoConfirmationPolicy(ComponentContainer container, StrolchTransaction tx) {
|
||||||
super(container, tx);
|
super(container, tx);
|
||||||
|
@ -34,4 +33,9 @@ public class TestNoConfirmationPolicy extends StrolchPolicy implements TestConfi
|
||||||
public void confirm(Action action) {
|
public void confirm(Action action) {
|
||||||
action.setState(State.CLOSED);
|
action.setState(State.CLOSED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void undo() {
|
||||||
|
// do nothing
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,12 +15,19 @@
|
||||||
*/
|
*/
|
||||||
package li.strolch.policytest;
|
package li.strolch.policytest;
|
||||||
|
|
||||||
|
import li.strolch.agent.api.ComponentContainer;
|
||||||
import li.strolch.model.activity.Action;
|
import li.strolch.model.activity.Action;
|
||||||
|
import li.strolch.persistence.api.StrolchTransaction;
|
||||||
|
import li.strolch.policy.StrolchPolicy;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
*/
|
*/
|
||||||
public interface TestPlanningPolicy {
|
public abstract class TestPlanningPolicy extends StrolchPolicy {
|
||||||
|
|
||||||
public void plan(Action action);
|
public TestPlanningPolicy(ComponentContainer container, StrolchTransaction tx) {
|
||||||
|
super(container, tx);
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract void plan(Action action);
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,12 +19,11 @@ import li.strolch.agent.api.ComponentContainer;
|
||||||
import li.strolch.model.State;
|
import li.strolch.model.State;
|
||||||
import li.strolch.model.activity.Action;
|
import li.strolch.model.activity.Action;
|
||||||
import li.strolch.persistence.api.StrolchTransaction;
|
import li.strolch.persistence.api.StrolchTransaction;
|
||||||
import li.strolch.policy.StrolchPolicy;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
*/
|
*/
|
||||||
public class TestSimplePlanningPolicy extends StrolchPolicy implements TestPlanningPolicy {
|
public class TestSimplePlanningPolicy extends TestPlanningPolicy {
|
||||||
|
|
||||||
public TestSimplePlanningPolicy(ComponentContainer container, StrolchTransaction tx) {
|
public TestSimplePlanningPolicy(ComponentContainer container, StrolchTransaction tx) {
|
||||||
super(container, tx);
|
super(container, tx);
|
||||||
|
@ -34,4 +33,9 @@ public class TestSimplePlanningPolicy extends StrolchPolicy implements TestPlann
|
||||||
public void plan(Action action) {
|
public void plan(Action action) {
|
||||||
action.setState(State.PLANNED);
|
action.setState(State.PLANNED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void undo() {
|
||||||
|
// do nothing
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,12 +19,11 @@ import li.strolch.agent.api.ComponentContainer;
|
||||||
import li.strolch.model.State;
|
import li.strolch.model.State;
|
||||||
import li.strolch.model.activity.Action;
|
import li.strolch.model.activity.Action;
|
||||||
import li.strolch.persistence.api.StrolchTransaction;
|
import li.strolch.persistence.api.StrolchTransaction;
|
||||||
import li.strolch.policy.StrolchPolicy;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
*/
|
*/
|
||||||
public class TestSimulatedExecutionPolicy extends StrolchPolicy implements TestExecutionPolicy {
|
public class TestSimulatedExecutionPolicy extends TestExecutionPolicy {
|
||||||
|
|
||||||
public TestSimulatedExecutionPolicy(ComponentContainer container, StrolchTransaction tx) {
|
public TestSimulatedExecutionPolicy(ComponentContainer container, StrolchTransaction tx) {
|
||||||
super(container, tx);
|
super(container, tx);
|
||||||
|
@ -34,4 +33,9 @@ public class TestSimulatedExecutionPolicy extends StrolchPolicy implements TestE
|
||||||
public void execute(Action action) {
|
public void execute(Action action) {
|
||||||
action.setState(State.EXECUTION);
|
action.setState(State.EXECUTION);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void undo() {
|
||||||
|
// do nothing
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue