soc.message
Class SOCBankTrade

java.lang.Object
  extended by soc.message.SOCMessage
      extended by soc.message.SOCBankTrade
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, SOCMessageForGame

public class SOCBankTrade
extends SOCMessage
implements SOCMessageForGame

This message means that a player wants to trade with the bank or a port.

To undo a bank trade in version 1.1.13 or higher, the player's client can send another BANKTRADE message with the same resources but give/get swapped. For instance, if they gave 3 sheep to get 1 brick, send a BANKTRADE to give 1 brick to get 3 sheep.

Author:
Robert S. Thomas
See Also:
Serialized Form

Field Summary
private  java.lang.String game
          Name of game
private  SOCResourceSet get
          The set of resources being taken from the bank/port
private  SOCResourceSet give
          The set of resources being given to the bank/port
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
SOCBankTrade(java.lang.String ga, SOCResourceSet give, SOCResourceSet get)
          Create a BankTrade message.
 
Method Summary
 java.lang.String getGame()
          Name of game this message is for.
 SOCResourceSet getGetSet()
           
 SOCResourceSet getGiveSet()
           
static SOCBankTrade parseDataStr(java.lang.String s)
          Parse the command String into a BankTrade message
 java.lang.String toCmd()
          Converts the contents of this message into a String that can be transferred by a client or server.
static java.lang.String toCmd(java.lang.String ga, SOCResourceSet give, SOCResourceSet get)
           
 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

private java.lang.String game
Name of game


give

private SOCResourceSet give
The set of resources being given to the bank/port


get

private SOCResourceSet get
The set of resources being taken from the bank/port

Constructor Detail

SOCBankTrade

public SOCBankTrade(java.lang.String ga,
                    SOCResourceSet give,
                    SOCResourceSet get)
Create a BankTrade message.

Parameters:
ga - the name of the game
give - the set of resources being given to the bank/port
get - the set of resources being taken from the bank/port
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

getGiveSet

public SOCResourceSet getGiveSet()
Returns:
the set of resources being given to the bank or port

getGetSet

public SOCResourceSet getGetSet()
Returns:
the set of resources being taken from the bank or port

toCmd

public java.lang.String toCmd()
Description copied from class: SOCMessage
Converts the contents of this message into a String that can be transferred by a client or server. Your class' required method static SOCMessageSubclass parseDataStr(String) must be able to turn this String back into an instance of the message class.

For most message types, at most one SOCMessage.sep token is allowed, separating the type ID from the rest of the parameters. For multi-messages (@link SOCMessageMulti}, multiple SOCMessage.sep tokens are allowed. Multi-messages are parsed with: static SOCMessageSubclass parseDataStr(String[])

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

toCmd

public static java.lang.String toCmd(java.lang.String ga,
                                     SOCResourceSet give,
                                     SOCResourceSet get)
Parameters:
ga - the name of the game
give - the set of resources being given to the bank/port
get - the set of resources being taken from the bank/port
Returns:
the command string

parseDataStr

public static SOCBankTrade parseDataStr(java.lang.String s)
Parse the command String into a BankTrade message

Parameters:
s - the String to parse
Returns:
a BankTrade message, or null of the data is garbled

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