Source code: org/zazof/jteg/ExchangeCardMessage.java
1 /**
2 * Message that processes "canje=" events.
3 * This message is valid for following protocols:
4 * version 3: OK
5 * version 4: ?
6 * version 5: ?
7 *
8 * Content = "canje=playerid, number of armies, country_id1, country_id2, country_id"
9 *
10 * @author Jef De Geeter
11 * @author Yves Vandewoude
12 */
13
14 package org.zazof.jteg;
15
16 import java.util.StringTokenizer;
17
18 public class ExchangeCardMessage extends Message{
19
20 /**
21 @param message
22 */
23 public ExchangeCardMessage(Message nextMessage){
24 setNextMessage(nextMessage);
25 }
26
27 public Message decodeMessage(String messageDescription)
28 throws UnknownMessageException
29 {
30 String firstToken = (new StringTokenizer(messageDescription,"=")).nextToken();
31 if (!(firstToken.equals("canje")))
32 {
33 // Not for me...
34 if (this.hasNextMessage())
35 {
36 return getNextMessage().decodeMessage(messageDescription);
37 }
38 throw new UnknownMessageException(messageDescription);
39 }
40 else
41 {
42 StringTokenizer st = new StringTokenizer(messageDescription, "=,");
43 st.nextToken(); //canje
44 $playerID = Integer.parseInt(st.nextToken());
45 $numberOfArmies = Integer.parseInt(st.nextToken());
46 $firstCardCountryID = Integer.parseInt(st.nextToken());
47 $secondCardCountryID = Integer.parseInt(st.nextToken());
48 $thirdCardCountryID = Integer.parseInt(st.nextToken());
49 return this;
50 }
51 }
52
53
54 public String constructMessageString(String[] messageParts)
55 throws UnknownMessageException
56 {
57 if (!(messageParts[0]).equals("exchangecards"))
58 {
59 // Not for me...
60 if (this.hasNextMessage())
61 {
62 return getNextMessage().constructMessageString(messageParts);
63 }
64 throw new UnknownMessageException("No String could be constructed for a message with this parameter: " + messageParts[0]);
65 }
66 else
67 {
68 StringBuffer sb = new StringBuffer("canje=");
69 sb.append(messageParts[1]); // CountryID of card 1
70 sb.append(",");
71 sb.append(messageParts[2]); // CountryID of card 2
72 sb.append(",");
73 sb.append(messageParts[3]); // CountryID of card 3
74 return sb.toString();
75 }
76 }
77
78 public String getMessageName(){
79 return "canje";
80 }
81
82 public int getPlayerID(){
83 return $playerID;
84 }
85
86 public int getNbOfArmies(){
87 return $numberOfArmies;
88 }
89
90 public int firstCardCountryID(){
91 return $firstCardCountryID;
92 }
93
94 public int secondCardCountryID(){
95 return $secondCardCountryID;
96 }
97
98 public int thirdCardCountryID(){
99 return $thirdCardCountryID;
100 }
101
102
103 private int $playerID;
104 private int $numberOfArmies;
105 private int $firstCardCountryID;
106 private int $secondCardCountryID;
107 private int $thirdCardCountryID;
108 }