soc.message
Class SOCMessageTemplateMs

java.lang.Object
  extended by soc.message.SOCMessage
      extended by soc.message.SOCMessageMulti
          extended by soc.message.SOCMessageTemplateMs
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, SOCMessageForGame
Direct Known Subclasses:
SOCGameOptionInfo, SOCGamesWithOptions, SOCLocalizedStrings, SOCScenarioInfo

public abstract class SOCMessageTemplateMs
extends SOCMessageMulti
implements SOCMessageForGame

Template for message types with variable number of string parameters. You will have to write parseDataStr, because of its subclass return type and because it's static.

Sample implementation: // format of s: POTENTIALSETTLEMENTS sep game sep2 settlement {sep2 settlement}*... // Must have at least game + 1 settlement param. public static SOCPotentialSettlements parseDataStr(String[] s) { String ga; // the game name String[] sett; // the settlements if ((s == null) || (s.length < 2)) return null; // must have at least game + 1 settlement param ga = s[0]; sett = new String[s.length - 1]; for (int i = 1; i < s.length; ++i) sett[i-1] = s[i]; return new SOCPotentialSettlements(ga, sett); }

For notes on the section you must add to SOCMessage.toMsg(String), see SOCMessageMulti.

Since:
1.1.00
Author:
Jeremy D Monin <jeremy@nand.net>
See Also:
Serialized Form

Field Summary
protected  java.lang.String game
          Name of the game, or null if none.
protected  java.util.List<java.lang.String> pa
          List of string parameters, or null if none.
private static long serialVersionUID
           
 
Fields inherited from class soc.message.SOCMessage
ACCEPTOFFER, ADMINPING, ADMINRESET, AUTHREQUEST, BANKTRADE, BCASTTEXTMSG, BOARDLAYOUT, BOARDLAYOUT2, BOARDSPECIALEDGE, BUILDREQUEST, BUYCARDREQUEST, CANCELBUILDREQUEST, CHANGEFACE, CHANNELS, CHOOSEPLAYER, CHOOSEPLAYERREQUEST, CLEAROFFER, CLEARTRADEMSG, CREATEACCOUNT, DEBUGFREEPLACE, DELETECHANNEL, DELETEGAME, DEVCARDACTION, DEVCARDCOUNT, DICERESULT, DICERESULTRESOURCES, DISCARD, DISCARDREQUEST, DISCOVERYPICK, ENDTURN, FIRSTPLAYER, GAME_NONE, GAMEMEMBERS, GAMEOPTIONGETDEFAULTS, GAMEOPTIONGETINFOS, GAMEOPTIONINFO, GAMES, GAMESERVERTEXT, GAMESTATE, GAMESTATS, GAMESWITHOPTIONS, GAMETEXTMSG, IMAROBOT, INVENTORYITEMACTION, JOIN, JOINAUTH, JOINGAME, JOINGAMEAUTH, LARGESTARMY, LASTSETTLEMENT, LEAVE, LEAVEALL, LEAVEGAME, LEGALEDGES, LOCALIZEDSTRINGS, LONGESTROAD, MAKEOFFER, MEMBERS, messageType, MONOPOLYPICK, MOVEPIECE, MOVEPIECEREQUEST, MOVEROBBER, NEWCHANNEL, NEWGAME, NEWGAMEWITHOPTIONS, NEWGAMEWITHOPTIONSREQUEST, NULLMESSAGE, PICKRESOURCES, PICKRESOURCESREQUEST, PIECEVALUE, PLAYDEVCARDREQUEST, PLAYERELEMENT, PLAYERELEMENTS, PLAYERSTATS, POTENTIALSETTLEMENTS, PUTPIECE, REJECTCONNECTION, REJECTOFFER, REMOVEPIECE, RESETBOARDAUTH, RESETBOARDREJECT, RESETBOARDREQUEST, RESETBOARDVOTE, RESETBOARDVOTEREQUEST, RESOURCECOUNT, REVEALFOGHEX, ROBOTDISMISS, ROBOTJOINGAMEREQUEST, ROLLDICE, ROLLDICEPROMPT, ROLLDICEREQUEST, SCENARIOINFO, sep, sep_char, sep2, sep2_char, SERVERPING, SETPLAYEDDEVCARD, SETSEATLOCK, SETSPECIALITEM, SETTURN, SETUPDONE, SIMPLEACTION, SIMPLEREQUEST, SITDOWN, STARTGAME, STATUSMESSAGE, SVPTEXTMSG, TEXTMSG, TIMINGPING, TURN, UPDATEROBOTPARAMS, VERSION
 
Constructor Summary
protected SOCMessageTemplateMs(int id, java.lang.String ga, java.util.List<java.lang.String> pal)
          Create a new multi-message with string parameters.
 
Method Summary
 java.lang.String getGame()
          Get the game name; see SOCMessageForGame.getGame() for details.
 java.util.List<java.lang.String> getParams()
           
 java.lang.String toCmd()
          MESSAGETYPE [sep game] sep param1 sep param2 sep ...
protected static java.lang.String toCmd(int messageType, java.lang.String gaName, java.util.List<java.lang.String> pal)
          MESSAGETYPE [sep game] sep param1 sep param2 sep ...
 java.lang.String toString()
          Simple human-readable representation, used for debug purposes.
 
Methods inherited from class soc.message.SOCMessage
arrayIntoStringBuf, enumIntoStringBuf, getClassNameShort, getMaximumVersion, getMinimumVersion, getType, isSingleLineAndSafe, isSingleLineAndSafe, toMsg
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface soc.message.SOCMessageForGame
getType
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

game

protected java.lang.String game
Name of the game, or null if none. The server's message treater requires a non-null getGame() for incoming messages from clients; see SOCMessageForGame.getGame() for details.


pa

protected java.util.List<java.lang.String> pa
List of string parameters, or null if none.

Before v2.0.00, this was an array of Strings.

Constructor Detail

SOCMessageTemplateMs

protected SOCMessageTemplateMs(int id,
                               java.lang.String ga,
                               java.util.List<java.lang.String> pal)
Create a new multi-message with string parameters.

Parameters:
id - Message type ID
ga - Name of game this message is for, or null if none. See getGame() for details. The server's message treater requires a non-null getGame() for incoming messages from clients; see SOCMessageForGame.getGame() for details.
pal - List of parameters, or null if none
Method Detail

getGame

public java.lang.String getGame()
Get the game name; see SOCMessageForGame.getGame() for details. If not null, toCmd() sends the game name before getParams() contents, and at the receiver parseDataStr(params) will see that game name as the first parameter.

Specified by:
getGame in interface SOCMessageForGame
Returns:
the name of the game, or null if none
See Also:
SOCMessage.GAME_NONE

getParams

public java.util.List<java.lang.String> getParams()
Returns:
the parameters, or null if none

toCmd

public java.lang.String toCmd()
MESSAGETYPE [sep game] sep param1 sep param2 sep ...

Specified by:
toCmd in class SOCMessage
Returns:
the command String

toCmd

protected static java.lang.String toCmd(int messageType,
                                        java.lang.String gaName,
                                        java.util.List<java.lang.String> pal)
MESSAGETYPE [sep game] sep param1 sep param2 sep ...

Parameters:
messageType - The message type id
gaName - the game name, or null
pal - The parameter list, or null if no additional parameters; elements of pal can be null.
Returns:
the command string

toString

public java.lang.String toString()
Description copied from class: SOCMessage
Simple human-readable representation, used for debug purposes.

Specified by:
toString in class SOCMessage
Returns:
a human readable form of the message