net.sf.colossus.webcommon
Class GameInfo

java.lang.Object
  extended by net.sf.colossus.webcommon.GameInfo

public class GameInfo
extends java.lang.Object

One object of this this class represents a game for which players/users have enrolled to play it together. It starts in state "PROPOSED" as type either instantly or scheduled. Then its state will change along the sequence of states PROPOSED, DUE, ACTIVATED, STARTING, READY_TO_CONNECT, RUNNING, ENDING as denoted in the GameState enum. The actual running/starting of the game will be handled by different classes, namely GameOnServer and (to be done) GameOnClient. The same class is also used at client side, but only part of the data is used there (e.g. the user has only a name, not a socket).

Author:
Clemens Katzer

Nested Class Summary
static class GameInfo.GameState
          Enum for the possible states of a game:
static class GameInfo.GameType
          Enum for the possible TYPES of a game (scheduled or instant, perhaps later also template?)
 
Field Summary
private  boolean autosave
           
private  boolean balancedTowers
           
private  int duration
           
private  int enrolledPlayers
           
private  java.lang.String eventExpiring
           
private  java.lang.String gameId
           
private  IGameRunner gameRunner
           
private  java.lang.String hostingHost
           
private  java.lang.String initiator
           
private static java.util.logging.Logger LOGGER
           
private  int max
           
private  int min
           
private static int nextFreeGameId
           
private  java.util.ArrayList<User> players
           
private  int portNr
           
private  long startTime
           
private  GameInfo.GameState state
           
private  java.lang.String summary
           
private  int target
           
private  GameInfo.GameType type
           
private  boolean unlimitedMulligans
           
private  java.lang.String variant
           
private  java.lang.String viewmode
           
 
Constructor Summary
private GameInfo(GameInfo.GameType type)
           
  GameInfo(java.lang.String gameId, boolean onServer)
           
  GameInfo(java.lang.String initiator, java.lang.String variant, java.lang.String viewmode, long startTime, int duration, java.lang.String summary, java.lang.String expire, boolean unlimitedMulligans, boolean balancedTowers, int min, int target, int max)
           
 
Method Summary
 java.lang.String enroll(User user)
           
static GameInfo fromString(java.lang.String[] tokens, java.util.HashMap<java.lang.String,GameInfo> games, boolean fromFile)
           
 boolean getAutosave()
           
 boolean getBalancedTowers()
           
 java.lang.Integer getDuration()
           
 java.lang.Integer getEnrolledCount()
           
 java.lang.String getEventExpiring()
           
 java.lang.String getGameId()
           
 IGameRunner getGameRunner()
           
 GameInfo.GameState getGameState()
           
 java.lang.String getHostingHost()
           
 java.lang.String getInitiator()
           
 java.lang.Integer getMax()
           
 java.lang.Integer getMin()
           
private  int getNextFreeGameId()
           
 java.lang.String getPlayerListAsString()
           
 java.util.ArrayList<User> getPlayers()
           
 int getPort()
           
 java.lang.Long getStartTime()
           
 java.lang.String getStateString()
           
 java.lang.String getSummary()
           
 int getTarget()
           
 java.lang.Integer getTargetInteger()
           
 boolean getUnlimitedMulligans()
           
 java.lang.String getVariant()
           
 java.lang.String getViewmode()
           
 boolean isEnrolled(java.lang.String searchName)
           
 boolean isScheduledGame()
           
 boolean reEnrollIfNecessary(User newUser)
           
 void setBalancedTowers(boolean val)
           
 void setDuration(java.lang.String val)
           
 void setEnrolledCount(java.lang.Integer val)
           
 void setEventExpiring(java.lang.String val)
           
 void setGameId(java.lang.String val)
           
 void setGameRunner(IGameRunner gr)
           
 void setHostingHost(java.lang.String host)
           
 void setInitiator(java.lang.String val)
           
 void setMax(java.lang.Integer val)
           
 void setMin(java.lang.Integer val)
           
 void setPlayerList(java.util.ArrayList<User> playerlist)
           
 void setPort(int nr)
           
 void setStartTime(java.lang.String val)
           
 void setState(GameInfo.GameState state)
           
 void setSummary(java.lang.String val)
           
 void setTarget(java.lang.Integer val)
           
 void setUnlimitedMulligans(boolean val)
           
 void setVariant(java.lang.String val)
           
 void setViewmode(java.lang.String val)
           
 void storeToOptionsObject(Options gameOptions, java.lang.String localPlayerName, boolean noAIs)
           
 java.lang.String toString(java.lang.String sep)
           
 java.lang.String unenroll(User user)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOGGER

private static final java.util.logging.Logger LOGGER

nextFreeGameId

private static int nextFreeGameId

gameId

private java.lang.String gameId

type

private GameInfo.GameType type

state

private GameInfo.GameState state

portNr

private int portNr

hostingHost

private java.lang.String hostingHost

gameRunner

private IGameRunner gameRunner

initiator

private java.lang.String initiator

variant

private java.lang.String variant

viewmode

private java.lang.String viewmode

autosave

private final boolean autosave
See Also:
Constant Field Values

eventExpiring

private java.lang.String eventExpiring

unlimitedMulligans

private boolean unlimitedMulligans

balancedTowers

private boolean balancedTowers

min

private int min

target

private int target

max

private int max

startTime

private long startTime

duration

private int duration

summary

private java.lang.String summary

enrolledPlayers

private int enrolledPlayers

players

private java.util.ArrayList<User> players
Constructor Detail

GameInfo

private GameInfo(GameInfo.GameType type)

GameInfo

public GameInfo(java.lang.String initiator,
                java.lang.String variant,
                java.lang.String viewmode,
                long startTime,
                int duration,
                java.lang.String summary,
                java.lang.String expire,
                boolean unlimitedMulligans,
                boolean balancedTowers,
                int min,
                int target,
                int max)

GameInfo

public GameInfo(java.lang.String gameId,
                boolean onServer)
Method Detail

getNextFreeGameId

private int getNextFreeGameId()

fromString

public static GameInfo fromString(java.lang.String[] tokens,
                                  java.util.HashMap<java.lang.String,GameInfo> games,
                                  boolean fromFile)

toString

public java.lang.String toString(java.lang.String sep)

setState

public void setState(GameInfo.GameState state)

getGameState

public GameInfo.GameState getGameState()

isScheduledGame

public boolean isScheduledGame()

getStateString

public java.lang.String getStateString()

getGameId

public java.lang.String getGameId()

setGameId

public void setGameId(java.lang.String val)

setGameRunner

public void setGameRunner(IGameRunner gr)

getGameRunner

public IGameRunner getGameRunner()

getPort

public int getPort()

setPort

public void setPort(int nr)

setHostingHost

public void setHostingHost(java.lang.String host)

getHostingHost

public java.lang.String getHostingHost()

getInitiator

public java.lang.String getInitiator()

setInitiator

public void setInitiator(java.lang.String val)

getStartTime

public java.lang.Long getStartTime()

setStartTime

public void setStartTime(java.lang.String val)

getDuration

public java.lang.Integer getDuration()

setDuration

public void setDuration(java.lang.String val)

getSummary

public java.lang.String getSummary()

setSummary

public void setSummary(java.lang.String val)

getVariant

public java.lang.String getVariant()

setVariant

public void setVariant(java.lang.String val)

getViewmode

public java.lang.String getViewmode()

getAutosave

public boolean getAutosave()

setViewmode

public void setViewmode(java.lang.String val)

getEventExpiring

public java.lang.String getEventExpiring()

setEventExpiring

public void setEventExpiring(java.lang.String val)

getUnlimitedMulligans

public boolean getUnlimitedMulligans()

setUnlimitedMulligans

public void setUnlimitedMulligans(boolean val)

getBalancedTowers

public boolean getBalancedTowers()

setBalancedTowers

public void setBalancedTowers(boolean val)

getMin

public java.lang.Integer getMin()

setMin

public void setMin(java.lang.Integer val)

getTargetInteger

public java.lang.Integer getTargetInteger()

getTarget

public int getTarget()

setTarget

public void setTarget(java.lang.Integer val)

getMax

public java.lang.Integer getMax()

setMax

public void setMax(java.lang.Integer val)

getEnrolledCount

public java.lang.Integer getEnrolledCount()

setEnrolledCount

public void setEnrolledCount(java.lang.Integer val)

getPlayers

public java.util.ArrayList<User> getPlayers()

getPlayerListAsString

public java.lang.String getPlayerListAsString()

reEnrollIfNecessary

public boolean reEnrollIfNecessary(User newUser)

isEnrolled

public boolean isEnrolled(java.lang.String searchName)

setPlayerList

public void setPlayerList(java.util.ArrayList<User> playerlist)

enroll

public java.lang.String enroll(User user)

unenroll

public java.lang.String unenroll(User user)

storeToOptionsObject

public void storeToOptionsObject(Options gameOptions,
                                 java.lang.String localPlayerName,
                                 boolean noAIs)