summaryrefslogtreecommitdiffstats
path: root/EssentialsUpdate/src/com/earth2me/essentials/update/states/AbstractYesNoState.java
diff options
context:
space:
mode:
authorsnowleo <schneeleo@gmail.com>2011-10-23 23:08:18 +0200
committersnowleo <schneeleo@gmail.com>2011-10-23 23:08:42 +0200
commit8854b3f56585d480cd0c8151e7bbbf12d00cd984 (patch)
tree1a137b3595e60e0f2aac6f70184f782fb1a37ea7 /EssentialsUpdate/src/com/earth2me/essentials/update/states/AbstractYesNoState.java
parent6974abea28233fd6118567841dad4e3af0a43d4b (diff)
downloadEssentials-8854b3f56585d480cd0c8151e7bbbf12d00cd984.tar
Essentials-8854b3f56585d480cd0c8151e7bbbf12d00cd984.tar.gz
Essentials-8854b3f56585d480cd0c8151e7bbbf12d00cd984.tar.lz
Essentials-8854b3f56585d480cd0c8151e7bbbf12d00cd984.tar.xz
Essentials-8854b3f56585d480cd0c8151e7bbbf12d00cd984.zip
Moving the link between the states from the constructor of the state machine to the states classes.
Diffstat (limited to 'EssentialsUpdate/src/com/earth2me/essentials/update/states/AbstractYesNoState.java')
-rw-r--r--EssentialsUpdate/src/com/earth2me/essentials/update/states/AbstractYesNoState.java16
1 files changed, 12 insertions, 4 deletions
diff --git a/EssentialsUpdate/src/com/earth2me/essentials/update/states/AbstractYesNoState.java b/EssentialsUpdate/src/com/earth2me/essentials/update/states/AbstractYesNoState.java
index 67701c8db..67baf6bb6 100644
--- a/EssentialsUpdate/src/com/earth2me/essentials/update/states/AbstractYesNoState.java
+++ b/EssentialsUpdate/src/com/earth2me/essentials/update/states/AbstractYesNoState.java
@@ -4,11 +4,17 @@ package com.earth2me.essentials.update.states;
public abstract class AbstractYesNoState extends AbstractState
{
private boolean answer = false;
- private final transient AbstractState yesState;
- private final transient AbstractState noState;
+ private final transient Class<? extends AbstractState> yesState;
+ private final transient Class<? extends AbstractState> noState;
- public AbstractYesNoState(final AbstractState yesState, final AbstractState noState)
+ public AbstractYesNoState(final StateMap states, final Class<? extends AbstractState> nextState)
{
+ this(states, nextState, nextState);
+ }
+
+ public AbstractYesNoState(final StateMap states, final Class<? extends AbstractState> yesState, final Class<? extends AbstractState> noState)
+ {
+ super(states);
this.yesState = yesState;
this.noState = noState;
}
@@ -16,7 +22,9 @@ public abstract class AbstractYesNoState extends AbstractState
@Override
public AbstractState getNextState()
{
- return answer ? yesState : noState;
+ return answer
+ ? (yesState == null ? null : getState(yesState))
+ : (noState == null ? null : getState(noState));
}
@Override