diff options
author | snowleo <schneeleo@gmail.com> | 2011-10-23 23:08:18 +0200 |
---|---|---|
committer | snowleo <schneeleo@gmail.com> | 2011-10-23 23:08:42 +0200 |
commit | 8854b3f56585d480cd0c8151e7bbbf12d00cd984 (patch) | |
tree | 1a137b3595e60e0f2aac6f70184f782fb1a37ea7 /EssentialsUpdate/src/com/earth2me/essentials/update/states/AbstractYesNoState.java | |
parent | 6974abea28233fd6118567841dad4e3af0a43d4b (diff) | |
download | Essentials-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.java | 16 |
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 |