From: Stefan F. <ste...@us...> - 2010-02-26 08:04:26
|
Update of /cvsroot/rails/18xx/rails/game/state In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv4652/rails/game/state Added Files: GenericState.java Log Message: Fix of the undo tile lay bug (ID : 2954642, 2954984) After undo the number of tile lays is not updated correctly. TileLaysPerColour is state variable. Adds GenericState class. --- NEW FILE: GenericState.java --- /* $Header: /cvsroot/rails/18xx/rails/game/state/GenericState.java,v 1.1 2010/02/26 08:04:17 stefanfrey Exp $*/ package rails.game.state; import rails.game.model.ModelObject; import rails.game.move.StateChange; public final class GenericState<E> extends ModelObject implements StateI { private String stateName; private E stateObject; public GenericState(String name, E object) { stateName = name; if (object == null) { new Exception("NULL object not allowed in creating State wrapper").printStackTrace(); } else { stateObject = object; } } public void set(E object, boolean forced) { if (object == null) { if (stateObject != null) new StateChange(this, object); } else if (!object.equals(stateObject) || forced) new StateChange(this, object); } public void set(E object) { set(object, false); } public void setForced(E object) { set(object, true); } public E getObject() { return stateObject; } /** Must only be called by the Move execute() and undo() methods */ public void setState(Object object) { @SuppressWarnings("unchecked") E objE = (E)object; stateObject = objE; update(); } public String getName() { return stateName; } @Override public String getText() { if (stateObject != null) { return stateObject.toString(); } else { return ""; } } @Override public String toString() { return stateName; } } |