soc.message
Class SOCMessageTemplate4i

java.lang.Object
  extended by soc.message.SOCMessage
      extended by soc.message.SOCMessageTemplate4i
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, SOCMessageForGame
Direct Known Subclasses:
SOCMovePiece, SOCMovePieceRequest, SOCSimpleAction, SOCSimpleRequest

public abstract class SOCMessageTemplate4i
extends SOCMessage
implements SOCMessageForGame

Template for per-game message types with 4 integer parameters. Your class javadoc should explain the meaning of param1, param2, param3, and param4, so that you won't need to write getters for those.

You will have to write parseDataStr, because of its return type and because it's static.

Sample implementation:

   // format of s: MOVEPIECE sep game sep2 playerNumber sep2 pieceType sep2 coordFrom sep2 coordTo
   public static SOCMovePiece parseDataStr(final String s)
   {
       String ga; // the game name
       int pn; // the player number
       int pt; // piece type
       int cf; // coordinates from
       int ct; // coordinates to

       StringTokenizer st = new StringTokenizer(s, sep2);

       try
       {
           ga = st.nextToken();
           pn = Integer.parseInt(st.nextToken());
           pt = Integer.parseInt(st.nextToken());
           cf = Integer.parseInt(st.nextToken());
           ct = Integer.parseInt(st.nextToken());
       }
       catch (Exception e)
       {
           return null;
       }

        return new SOCMovePiece(ga, pn, pt, cf, ct);
   }

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

Field Summary
protected  java.lang.String game
          Name of the game.
protected  int p1
          First integer parameter.
protected  int p2
          Second integer parameter.
protected  int p3
          Third integer parameter.
protected  int p4
          Fourth integer parameter.
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 SOCMessageTemplate4i(int messageType, java.lang.String ga, int p1, int p2, int p3, int p4)
          Create a new message.
 
Method Summary
 java.lang.String getGame()
          Name of game this message is for.
 int getParam1()
           
 int getParam2()
           
 int getParam3()
           
 int getParam4()
           
 java.lang.String toCmd()
          MESSAGETYPE sep game sep2 param1 sep2 param2 sep2 param3 sep2 param4
protected static java.lang.String toCmd(int messageType, java.lang.String ga, int p1, int p2, int p3, int p4)
          MESSAGETYPE sep game sep2 param1 sep2 param2 sep2 param3 sep2 param4
 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.


p1

protected int p1
First integer parameter.


p2

protected int p2
Second integer parameter.


p3

protected int p3
Third integer parameter.


p4

protected int p4
Fourth integer parameter.

Constructor Detail

SOCMessageTemplate4i

protected SOCMessageTemplate4i(int messageType,
                               java.lang.String ga,
                               int p1,
                               int p2,
                               int p3,
                               int p4)
Create a new message.

Parameters:
messageType - Message type ID
ga - Name of game this message is for
p1 - Parameter 1
p2 - Parameter 2
p3 - Parameter 3
p4 - Parameter 4
Method Detail

getGame

public java.lang.String getGame()
Description copied from interface: SOCMessageForGame
Name of game this message is for. Must not be null if message is in per-game structures or code.

At the server, the message treater dispatches incoming SOCMessageForGames based on their getGame():

Specified by:
getGame in interface SOCMessageForGame
Returns:
the name of the game
See Also:
SOCMessage.GAME_NONE

getParam1

public int getParam1()
Returns:
the first parameter

getParam2

public int getParam2()
Returns:
the second parameter

getParam3

public int getParam3()
Returns:
the third parameter

getParam4

public int getParam4()
Returns:
the fourth parameter

toCmd

public java.lang.String toCmd()
MESSAGETYPE sep game sep2 param1 sep2 param2 sep2 param3 sep2 param4

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

toCmd

protected static java.lang.String toCmd(int messageType,
                                        java.lang.String ga,
                                        int p1,
                                        int p2,
                                        int p3,
                                        int p4)
MESSAGETYPE sep game sep2 param1 sep2 param2 sep2 param3 sep2 param4

Parameters:
messageType - The message type id
ga - the new game name
p1 - The first parameter
p2 - The second parameter
p3 - the third parameter
p4 - the fourth parameter
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