Thread: [Cruce-commit] SF.net SVN: cruce:[88] Java/trunk
Status: Beta
Brought to you by:
caiusb
|
From: <ca...@us...> - 2010-04-01 14:49:33
|
Revision: 88
http://cruce.svn.sourceforge.net/cruce/?rev=88&view=rev
Author: caiusb
Date: 2010-04-01 14:49:26 +0000 (Thu, 01 Apr 2010)
Log Message:
-----------
Am mutat chestiile un trebe, ca am uitat sa pun trunk la cale
Added Paths:
-----------
Java/trunk/.classpath
Java/trunk/.project
Added: Java/trunk/.classpath
===================================================================
--- Java/trunk/.classpath (rev 0)
+++ Java/trunk/.classpath 2010-04-01 14:49:26 UTC (rev 88)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Added: Java/trunk/.project
===================================================================
--- Java/trunk/.project (rev 0)
+++ Java/trunk/.project 2010-04-01 14:49:26 UTC (rev 88)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>Cruce</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ca...@us...> - 2010-04-01 15:12:15
|
Revision: 91
http://cruce.svn.sourceforge.net/cruce/?rev=91&view=rev
Author: caiusb
Date: 2010-04-01 15:12:07 +0000 (Thu, 01 Apr 2010)
Log Message:
-----------
Am creat cateva pachete.
Added Paths:
-----------
Java/trunk/src/
Java/trunk/src/prc/
Java/trunk/src/prc/bubulina/
Java/trunk/src/prc/bubulina/cruce/
Java/trunk/src/prc/bubulina/cruce/client/
Java/trunk/src/prc/bubulina/cruce/remote/
Java/trunk/src/prc/bubulina/cruce/server/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ali...@us...> - 2010-04-07 17:32:01
|
Revision: 103
http://cruce.svn.sourceforge.net/cruce/?rev=103&view=rev
Author: alinposho
Date: 2010-04-07 17:31:52 +0000 (Wed, 07 Apr 2010)
Log Message:
-----------
Am adaugat teste pentru metoda "setupPlayer(Strin name)" din clasa StartGameLogic.
Modified Paths:
--------------
Java/trunk/.classpath
Java/trunk/src/prc/bubulina/cruce/server/PlayerFactory.java
Java/trunk/src/prc/bubulina/cruce/server/StartGameLogic.java
Java/trunk/src/prc/bubulina/cruce/server/Team.java
Added Paths:
-----------
Java/trunk/src/prc/bubulina/cruce/tests/
Java/trunk/src/prc/bubulina/cruce/tests/server/
Java/trunk/src/prc/bubulina/cruce/tests/server/StartGameLogicTest.java
Modified: Java/trunk/.classpath
===================================================================
--- Java/trunk/.classpath 2010-04-07 16:38:07 UTC (rev 102)
+++ Java/trunk/.classpath 2010-04-07 17:31:52 UTC (rev 103)
@@ -1,6 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Modified: Java/trunk/src/prc/bubulina/cruce/server/PlayerFactory.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/server/PlayerFactory.java 2010-04-07 16:38:07 UTC (rev 102)
+++ Java/trunk/src/prc/bubulina/cruce/server/PlayerFactory.java 2010-04-07 17:31:52 UTC (rev 103)
@@ -3,8 +3,10 @@
import prc.bubulina.cruce.remote.Player;
public class PlayerFactory {
- private static int val = 0;
- public static Player getPlayer(String name) {
+
+ private int val = 0;
+
+ public Player getPlayer(String name) {
return new Player(name, val++);
}
}
\ No newline at end of file
Modified: Java/trunk/src/prc/bubulina/cruce/server/StartGameLogic.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/server/StartGameLogic.java 2010-04-07 16:38:07 UTC (rev 102)
+++ Java/trunk/src/prc/bubulina/cruce/server/StartGameLogic.java 2010-04-07 17:31:52 UTC (rev 103)
@@ -1,6 +1,5 @@
package prc.bubulina.cruce.server;
-import java.util.LinkedList;
import java.util.List;
import prc.bubulina.cruce.remote.Player;
@@ -10,23 +9,27 @@
private int joinedPlayers;
private int readyPlayers;
private List<Team> teams;
+ private PlayerFactory factory;
- public StartGameLogic() {
+ public StartGameLogic(List<Team> teams) {
+
joinedPlayers = 0;
readyPlayers = 0;
- teams = new LinkedList<Team>();
- teams.add(new Team());
- teams.add(new Team());
+ factory = new PlayerFactory();
+
+ this.teams = teams;
}
public ServerSidePlayer setupPlayer(String name) {
if (joinedPlayers < 4) {
- Player player = PlayerFactory.getPlayer(name);
+ Player player = factory.getPlayer(name);
ServerSidePlayer ssplayer = new ServerSidePlayer(player);
joinedPlayers++;
- int teamIndex = player.getID() % 2;
+ //First two players are added to team one and the next two to team 2
+ int teamIndex = player.getID() / 2;
+
teams.get(teamIndex).addPlayer(ssplayer);
return ssplayer;
@@ -46,4 +49,5 @@
public boolean gameReady() {
return readyPlayers == 4;
}
+
}
\ No newline at end of file
Modified: Java/trunk/src/prc/bubulina/cruce/server/Team.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/server/Team.java 2010-04-07 16:38:07 UTC (rev 102)
+++ Java/trunk/src/prc/bubulina/cruce/server/Team.java 2010-04-07 17:31:52 UTC (rev 103)
@@ -31,22 +31,31 @@
public void addCard(Card card) {
cardsTaken.add(card);
}
+
public void setGoal(int goal) {
this.goal = goal;
}
+
public int computeScore() {
+
int result = anunturi;
for (Card card : cardsTaken)
result += card.getValue();
result /= 33;
if (result < goal)
- result *= -1;
+ {
+ result = -goal;
+ }
+
overallScore += result;
+
return result;
}
+
public int getOverallScore() {
return overallScore;
}
+
public void resetRound() {
anunturi = 0;
goal = 0;
Added: Java/trunk/src/prc/bubulina/cruce/tests/server/StartGameLogicTest.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/tests/server/StartGameLogicTest.java (rev 0)
+++ Java/trunk/src/prc/bubulina/cruce/tests/server/StartGameLogicTest.java 2010-04-07 17:31:52 UTC (rev 103)
@@ -0,0 +1,136 @@
+package prc.bubulina.cruce.tests.server;
+
+import static org.junit.Assert.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import prc.bubulina.cruce.remote.Player;
+import prc.bubulina.cruce.server.ServerSidePlayer;
+import prc.bubulina.cruce.server.StartGameLogic;
+import prc.bubulina.cruce.server.Team;
+
+public class StartGameLogicTest
+{
+
+ private StartGameLogic startGameLogic;
+ private List<Team> teams;
+
+ @Before
+ public void setUp() throws Exception
+ {
+ teams = new ArrayList<Team>();
+ teams.add(new Team());
+ teams.add(new Team());
+ startGameLogic = new StartGameLogic(teams);
+ }
+
+ @Test
+ public void testSetupPlayer_OnePlayer_BestCaseScenario()
+ {
+ String playerName = "Player1";
+ teams.clear();
+ teams.add(new Team());
+
+ //Actual test
+ ServerSidePlayer actual = startGameLogic.setupPlayer(playerName);
+ ServerSidePlayer expected = teams.get(0).getPlayers().get(0);
+ assertEquals(expected, actual);
+ assertEquals(1, teams.size());
+ assertEquals(1, teams.get(0).getPlayers().size());
+ assertEquals(playerName, actual.getInfo().getName());
+ }
+
+ @Test
+ public void testSetupPlayer_FourPlayers_BestCaseScenario()
+ {
+ String[] playerName = {"Player1", "Player2", "Player3", "Player4"};
+
+ //Actual test
+ for (int i = 0; i < playerName.length; i++)
+ {
+ ServerSidePlayer actual = startGameLogic.setupPlayer(playerName[i]);
+ ServerSidePlayer expected = teams.get(i / 2).getPlayers().get(i % 2);
+ assertEquals(expected, actual);
+ assertEquals(2, teams.size());
+ assertEquals((i % 2 + 1), teams.get(i / 2).getPlayers().size());
+ assertEquals(playerName[i], actual.getInfo().getName());
+ }
+ }
+
+ @Test
+ public void testSetupPlayer_FivePlayers_BestCaseScenario()
+ {
+ String[] playerName = {"Player1", "Player2", "Player3", "Player4", "Player5"};
+
+ //Actual test
+ for (int i = 0; i < playerName.length - 1; i++)
+ {
+ ServerSidePlayer actual = startGameLogic.setupPlayer(playerName[i]);
+ ServerSidePlayer expected = teams.get(i / 2).getPlayers().get(i % 2);
+ assertEquals(expected, actual);
+ assertEquals(2, teams.size());
+ assertEquals((i % 2 + 1), teams.get(i / 2).getPlayers().size());
+ assertEquals(playerName[i], actual.getInfo().getName());
+ }
+
+ ServerSidePlayer actual = startGameLogic.setupPlayer(playerName[4]);
+ assertNull(actual);
+ //Checking if the player was added to a team
+ for(Team team : teams)
+ {
+ for (ServerSidePlayer player : team.getPlayers())
+ {
+ assertNotSame(playerName[4], player.getInfo().getName());
+ }
+ }
+ }
+
+ @Test
+ public void testSetupPlayer_TwoPlayersWithTheSameName()
+ {
+ String[] playerName = {"Player1", "Player1"};
+
+ assertEquals(playerName[0], playerName[1]);
+
+ //Actual test
+ for (int i = 0; i < playerName.length - 1; i++)
+ {
+ ServerSidePlayer actual = startGameLogic.setupPlayer(playerName[i]);
+ ServerSidePlayer expected = teams.get(i / 2).getPlayers().get(i % 2);
+ assertEquals(expected, actual);
+ assertEquals(2, teams.size());
+ assertEquals((i % 2 + 1), teams.get(i / 2).getPlayers().size());
+ assertEquals(playerName[i], actual.getInfo().getName());
+ assertEquals(playerName[0], actual.getInfo().getName());
+ }
+ }
+
+ @Test
+ public void testSetupPlayer_AllPlayersWithTheSameName()
+ {
+ String[] playerName = {"Player1", "Player1", "Player1", "Player1"};
+
+ //Actual test
+ for (int i = 0; i < playerName.length - 1; i++)
+ {
+ ServerSidePlayer actual = startGameLogic.setupPlayer(playerName[i]);
+ ServerSidePlayer expected = teams.get(i / 2).getPlayers().get(i % 2);
+ assertEquals(expected, actual);
+ assertEquals(2, teams.size());
+ assertEquals((i % 2 + 1), teams.get(i / 2).getPlayers().size());
+ assertEquals(playerName[i], actual.getInfo().getName());
+ assertEquals(playerName[0], actual.getInfo().getName());
+ }
+ }
+
+ @Test
+ public void testPlayerReady()
+ {
+ fail("Not yet implemented");
+ }
+
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ca...@us...> - 2010-04-11 21:52:55
|
Revision: 110
http://cruce.svn.sourceforge.net/cruce/?rev=110&view=rev
Author: caiusb
Date: 2010-04-11 21:52:49 +0000 (Sun, 11 Apr 2010)
Log Message:
-----------
Am adaugat urmatoarele functionalitati la client:
- Start Game
- Join Game
- Bid
- Send Cards
Am facut si teste care verifica aceste metode.
Stiu ca clasa Game pare un pic cam redundanta deoarece nu face mare lucru in afara de a adauga un nivel de indirectare intre client si UI. Dar scopul ei ar fi sa verifice anumite chestii (de exemplu cand se da o carte, s-ar putea verifica daca (,) cartea este corecta (sa nu se faca -3 sau alte bucurii)).
UI nu exista momentan, decat sub forma unei clase abstracte. DummyUI este folosit pentru testing purposes. Ideea din spate este de a face, momentan, un UI textual urmand sa vina si ceva grafic :D. Dar momentan m-am concentrat pe functionalitate.
Daca aveti un timp, va rog uitati-va putin peste chestia si trimite-ti comentarii.
O seara faina,
Caius
Modified Paths:
--------------
Java/trunk/.classpath
Added Paths:
-----------
Java/trunk/src/prc/bubulina/cruce/client/Client.java
Java/trunk/src/prc/bubulina/cruce/client/Game.java
Java/trunk/src/prc/bubulina/cruce/client/UI.java
Java/trunk/test/
Java/trunk/test/prc/
Java/trunk/test/prc/bubulina/
Java/trunk/test/prc/bubulina/cruce/
Java/trunk/test/prc/bubulina/cruce/client/
Java/trunk/test/prc/bubulina/cruce/client/DummyUI.java
Java/trunk/test/prc/bubulina/cruce/client/GameTest.java
Modified: Java/trunk/.classpath
===================================================================
--- Java/trunk/.classpath 2010-04-09 09:33:41 UTC (rev 109)
+++ Java/trunk/.classpath 2010-04-11 21:52:49 UTC (rev 110)
@@ -1,7 +1,8 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
- <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" output="testBin" path="test"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Added: Java/trunk/src/prc/bubulina/cruce/client/Client.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/client/Client.java (rev 0)
+++ Java/trunk/src/prc/bubulina/cruce/client/Client.java 2010-04-11 21:52:49 UTC (rev 110)
@@ -0,0 +1,96 @@
+package prc.bubulina.cruce.client;
+
+import java.rmi.Naming;
+import java.rmi.RemoteException;
+import java.rmi.server.UnicastRemoteObject;
+import java.util.List;
+
+import prc.bubulina.cruce.remote.Card;
+import prc.bubulina.cruce.remote.ClientInterface;
+import prc.bubulina.cruce.remote.Color;
+import prc.bubulina.cruce.remote.Player;
+import prc.bubulina.cruce.remote.Score;
+import prc.bubulina.cruce.remote.ServerInterface;
+
+public class Client extends UnicastRemoteObject implements ClientInterface {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -8368188426444139259L;
+
+ private Game game;
+ private ServerInterface server;
+ private Player player;
+
+ /**
+ *
+ * @param game
+ * the <code>Game</code> object for this game
+ * @param gameServerAddress
+ * the address of the used game server
+ * @param gameServerName
+ * the name of the used game server
+ * @throws RemoteException
+ */
+ public Client(Game game, String gameServerAddress, String gameServerName)
+ throws RemoteException {
+ super();
+ String url = "rmi://" + gameServerAddress + "/" + gameServerName;
+
+ this.game = game;
+
+ //TODO instantiate server
+ //server = (ServerInterface) Naming.lookup(url);
+ // TODO this looks weird
+ if (game.joinGame())
+ player = server.joinGame(game.getPlayerName(), this);
+ if (game.startGame())
+ server.startGame(player);
+ }
+
+ @Override
+ public int bid() throws RemoteException {
+ return game.bid();
+ }
+
+ @Override
+ public void endGame(Score score) throws RemoteException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void forceReceive(List<Card> cards) throws RemoteException {
+ game.setCards(cards, true);
+ }
+
+ @Override
+ public void hit() throws RemoteException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void inform(String information) throws RemoteException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean receiveCards(List<Card> cards) throws RemoteException {
+ return game.setCards(cards, false);
+ }
+
+ @Override
+ public void receiveRoundScore(Score score) throws RemoteException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setTromf(Color tromf) throws RemoteException {
+ game.setTromf(tromf);
+ }
+
+}
Added: Java/trunk/src/prc/bubulina/cruce/client/Game.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/client/Game.java (rev 0)
+++ Java/trunk/src/prc/bubulina/cruce/client/Game.java 2010-04-11 21:52:49 UTC (rev 110)
@@ -0,0 +1,89 @@
+package prc.bubulina.cruce.client;
+
+import java.rmi.Naming;
+import java.util.ArrayList;
+import java.util.List;
+
+import prc.bubulina.cruce.remote.Card;
+import prc.bubulina.cruce.remote.Color;
+import prc.bubulina.cruce.remote.ServerInterface;
+
+public class Game {
+ private int bidAmount;
+ private List<Card> cardsInHand;
+ private List<Card> cardsTaken;
+ private Color tromf;
+ private UI ui;
+ private String name;
+
+ /**
+ * Constructor
+ *
+ * @param name
+ * the name of the player
+ * @param ui
+ * the UI used
+ */
+ public Game(String name, UI ui) {
+ this.name = name;
+ this.ui = ui;
+ cardsTaken = new ArrayList<Card>();
+ }
+
+ public boolean joinGame() {
+ return ui.joinGame();
+ }
+
+ public boolean startGame() {
+ return ui.startGame();
+ }
+
+ /**
+ * Gets the amount bided by the player
+ *
+ * @return the amount bided
+ */
+ public int bid() {
+ bidAmount = ui.bid();
+ return bidAmount;
+ }
+
+ /**
+ * Anounces the tromph color
+ *
+ * @param color
+ * the color
+ */
+ public void setTromf(Color color) {
+ tromf = color;
+ ui.setTromf(tromf);
+ }
+
+ /**
+ * Gives the player it's cards
+ *
+ * @param cards
+ * the cards
+ * @param force
+ * true if the user has no choice and has to accept them
+ * @return true if the player accepts them, false otherwise
+ */
+ public boolean setCards(List<Card> cards, boolean force) {
+ boolean accept = ui.setCards(cards, force);
+ if (force || accept) {
+ cardsInHand = cards;
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Returns the players name
+ *
+ * @return the players name
+ */
+ public String getPlayerName() {
+ return name;
+ }
+}
Added: Java/trunk/src/prc/bubulina/cruce/client/UI.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/client/UI.java (rev 0)
+++ Java/trunk/src/prc/bubulina/cruce/client/UI.java 2010-04-11 21:52:49 UTC (rev 110)
@@ -0,0 +1,79 @@
+package prc.bubulina.cruce.client;
+
+import java.util.List;
+
+import prc.bubulina.cruce.remote.Card;
+import prc.bubulina.cruce.remote.Color;
+
+public abstract class UI {
+
+ /**
+ * Ask the user if he wants to start a game
+ *
+ * @return the answer of the user
+ */
+ public abstract boolean startGame();
+
+ /**
+ * Ask the user if he wants to join the game
+ *
+ * @return the answer of the user
+ */
+ public abstract boolean joinGame();
+
+ /**
+ * Sends the cards the user has received from the server. If
+ * <code>force</code> is false, he can refuse them
+ *
+ * @param cards
+ * the cards
+ * @param force
+ * <code>true</code> if he cannot refuse them
+ * @return true if the user accepts the cards, false otherwise
+ */
+ public abstract boolean setCards(List<Card> cards, boolean force);
+
+ /**
+ * Gets the amount bided by the user
+ *
+ * @return the amount bided by the user
+ */
+ public abstract int bid();
+
+ /**
+ * Informs the player of a card that has been played
+ *
+ * @param card
+ * the card played
+ */
+ public abstract void putCard(Card card);
+
+ /**
+ * Informs the player about the tromph color.
+ *
+ * @param color
+ * the color
+ */
+ public abstract void setTromf(Color color);
+
+ /**
+ * Gets the card played by this player in this round
+ *
+ * @return the card played
+ */
+ public abstract Card showCard();
+
+ /**
+ * Announces the winner of the bid, hand or game
+ *
+ * @param name
+ * the name of the winner
+ */
+ public abstract void announceWinner(String name);
+
+ /**
+ * Sends a message to the user
+ * @param message
+ */
+ public abstract void sendMessage(String message);
+}
Added: Java/trunk/test/prc/bubulina/cruce/client/DummyUI.java
===================================================================
--- Java/trunk/test/prc/bubulina/cruce/client/DummyUI.java (rev 0)
+++ Java/trunk/test/prc/bubulina/cruce/client/DummyUI.java 2010-04-11 21:52:49 UTC (rev 110)
@@ -0,0 +1,65 @@
+package prc.bubulina.cruce.client;
+
+import java.util.List;
+
+import prc.bubulina.cruce.remote.Card;
+import prc.bubulina.cruce.remote.Color;
+
+public class DummyUI extends UI {
+ public Color tromf;
+ public boolean reject;
+ public boolean join;
+ public boolean start;
+
+ @Override
+ public void announceWinner(String name) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public int bid() {
+ return 1;
+ }
+
+ @Override
+ public boolean joinGame() {
+ return join;
+ }
+
+ @Override
+ public void putCard(Card card) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void sendMessage(String message) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean setCards(List<Card> cards, boolean force) {
+ if (!force && reject)
+ return false;
+ return true;
+ }
+
+ @Override
+ public void setTromf(Color color) {
+ this.tromf = color;
+ }
+
+ @Override
+ public Card showCard() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public boolean startGame() {
+ return start;
+ }
+
+}
Added: Java/trunk/test/prc/bubulina/cruce/client/GameTest.java
===================================================================
--- Java/trunk/test/prc/bubulina/cruce/client/GameTest.java (rev 0)
+++ Java/trunk/test/prc/bubulina/cruce/client/GameTest.java 2010-04-11 21:52:49 UTC (rev 110)
@@ -0,0 +1,83 @@
+package prc.bubulina.cruce.client;
+
+import static org.junit.Assert.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import prc.bubulina.cruce.remote.Card;
+import prc.bubulina.cruce.remote.Color;
+
+public class GameTest {
+ private DummyUI ui;
+ private Game game;
+ private Client client;
+
+ @Before
+ public void setUp() throws Exception {
+ ui = new DummyUI();
+ game = new Game("Test Player",ui);
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ ui = null;
+ game = null;
+ }
+
+ @Test
+ public void testJoinGame() {
+ ui.join = false;
+ assertFalse(game.joinGame());
+ ui.join = true;
+ assertTrue(game.joinGame());
+ }
+
+ @Test
+ public void testStartGame() {
+ ui.start = false;
+ assertFalse(game.startGame());
+ ui.start = true;
+ assertTrue(game.startGame());
+ }
+
+ @Test
+ public void testBid() {
+ assertEquals(game.bid(),1);
+ }
+
+ @Test
+ public void testSetTromf() {
+ game.setTromf(Color.DUBA);
+ assertEquals(ui.tromf,Color.DUBA);
+ }
+
+ @Test
+ public void testSetCards() {
+ List<Card> card = new ArrayList<Card>();
+ card.add(new Card(0,Color.DUBA));
+ assertFalse(testRejectCards(card));
+ assertTrue(testRejectForce(card));
+ assertTrue(notRejectCards(card));
+ }
+
+ private boolean testRejectCards(List<Card> cards) {
+ ui.reject = true;
+ return game.setCards(cards, false);
+ }
+
+ private boolean testRejectForce(List<Card> cards) {
+ ui.reject = true;
+ return game.setCards(cards, true);
+ }
+
+ private boolean notRejectCards(List<Card> cards) {
+ ui.reject = false;
+ return game.setCards(cards, false);
+ }
+
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hor...@us...> - 2010-04-12 16:54:43
|
Revision: 115
http://cruce.svn.sourceforge.net/cruce/?rev=115&view=rev
Author: horiaradu
Date: 2010-04-12 16:54:21 +0000 (Mon, 12 Apr 2010)
Log Message:
-----------
Modified Paths:
--------------
Java/trunk/.classpath
Java/trunk/.project
Added Paths:
-----------
Java/trunk/.settings/
Java/trunk/.settings/net.genady.rmi.prefs
Java/trunk/.settings/org.eclipse.jdt.core.prefs
Java/trunk/security.policy
Modified: Java/trunk/.classpath
===================================================================
--- Java/trunk/.classpath 2010-04-12 16:52:40 UTC (rev 114)
+++ Java/trunk/.classpath 2010-04-12 16:54:21 UTC (rev 115)
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="src" output="testBin" path="test"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
- <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" output="testBin" path="test"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6.0_18"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Modified: Java/trunk/.project
===================================================================
--- Java/trunk/.project 2010-04-12 16:52:40 UTC (rev 114)
+++ Java/trunk/.project 2010-04-12 16:54:21 UTC (rev 115)
@@ -1,17 +1,23 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>Cruce</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>Cruce</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>net.genady.rmi.RMIBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>net.genady.rmi.RMINature</nature>
+ </natures>
+</projectDescription>
Added: Java/trunk/.settings/net.genady.rmi.prefs
===================================================================
--- Java/trunk/.settings/net.genady.rmi.prefs (rev 0)
+++ Java/trunk/.settings/net.genady.rmi.prefs 2010-04-12 16:54:21 UTC (rev 115)
@@ -0,0 +1,7 @@
+#Mon Apr 12 12:57:06 EEST 2010
+eclipse.preferences.version=1
+flags.advancedHierarchy=false
+flags.debug=true
+flags.internalCompiler=true
+flags.keepSrc=true
+flags.stubsVersion=2
Added: Java/trunk/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- Java/trunk/.settings/org.eclipse.jdt.core.prefs (rev 0)
+++ Java/trunk/.settings/org.eclipse.jdt.core.prefs 2010-04-12 16:54:21 UTC (rev 115)
@@ -0,0 +1,12 @@
+#Mon Apr 12 12:58:15 EEST 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
Added: Java/trunk/security.policy
===================================================================
--- Java/trunk/security.policy (rev 0)
+++ Java/trunk/security.policy 2010-04-12 16:54:21 UTC (rev 115)
@@ -0,0 +1,36 @@
+// This file was generated by the RMI Plugin for Eclipse.
+
+///////////////////////////////////////////////////////////////
+// This is a sample policy file that grants the application all permissions.
+// A policy file is needed by the RMISecurityManager and your application might
+// not work after installing the RMISecurityManager unless you provide a
+// security policy file at launch.
+//
+// You can configure the security policy of a launched application using either
+// the RMI Launcher or by manually setting the java.security.policy property.
+//
+// SECURITY NOTE: This security policy is good for development. For deployment
+// you may need a stricter security policy.
+//
+// For more information see:
+// http://java.sun.com/docs/books/tutorial/rmi/running.html
+// http://java.sun.com/j2se/1.5.0/docs/guide/security/PolicyFiles.html
+//
+
+grant {
+ permission java.security.AllPermission;
+
+ // Other options:
+ // permission java.net.SocketPermission "127.0.0.1:1024-", "accept, connect, listen, resolve";
+ // permission java.net.SocketPermission "localhost:1024-", "accept, connect, listen, resolve";
+
+ // From http://java.sun.com/docs/books/tutorial/rmi/running.html
+ // Copyright 1995-2005 Sun Microsystems, Inc. Reprinted with permission
+
+ // permission java.net.SocketPermission "*:1024-65535", "connect,accept";
+ // permission java.net.SocketPermission "*:80", "connect";
+
+ // permission java.net.SocketPermission "*:1024-65535", "connect,accept";
+ // permission java.io.FilePermission "c:\\home\\ann\\public_html\\classes\\-", "read";
+ // permission java.io.FilePermission "c:\\home\\jones\\public_html\\classes\\-", "read";
+};
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ca...@us...> - 2010-04-12 18:09:21
|
Revision: 116
http://cruce.svn.sourceforge.net/cruce/?rev=116&view=rev
Author: caiusb
Date: 2010-04-12 18:09:15 +0000 (Mon, 12 Apr 2010)
Log Message:
-----------
Clean-up
Removed Paths:
-------------
Java/trunk/security.policy
Java/trunk/src/prc/bubulina/cruce/tests/
Deleted: Java/trunk/security.policy
===================================================================
--- Java/trunk/security.policy 2010-04-12 16:54:21 UTC (rev 115)
+++ Java/trunk/security.policy 2010-04-12 18:09:15 UTC (rev 116)
@@ -1,36 +0,0 @@
-// This file was generated by the RMI Plugin for Eclipse.
-
-///////////////////////////////////////////////////////////////
-// This is a sample policy file that grants the application all permissions.
-// A policy file is needed by the RMISecurityManager and your application might
-// not work after installing the RMISecurityManager unless you provide a
-// security policy file at launch.
-//
-// You can configure the security policy of a launched application using either
-// the RMI Launcher or by manually setting the java.security.policy property.
-//
-// SECURITY NOTE: This security policy is good for development. For deployment
-// you may need a stricter security policy.
-//
-// For more information see:
-// http://java.sun.com/docs/books/tutorial/rmi/running.html
-// http://java.sun.com/j2se/1.5.0/docs/guide/security/PolicyFiles.html
-//
-
-grant {
- permission java.security.AllPermission;
-
- // Other options:
- // permission java.net.SocketPermission "127.0.0.1:1024-", "accept, connect, listen, resolve";
- // permission java.net.SocketPermission "localhost:1024-", "accept, connect, listen, resolve";
-
- // From http://java.sun.com/docs/books/tutorial/rmi/running.html
- // Copyright 1995-2005 Sun Microsystems, Inc. Reprinted with permission
-
- // permission java.net.SocketPermission "*:1024-65535", "connect,accept";
- // permission java.net.SocketPermission "*:80", "connect";
-
- // permission java.net.SocketPermission "*:1024-65535", "connect,accept";
- // permission java.io.FilePermission "c:\\home\\ann\\public_html\\classes\\-", "read";
- // permission java.io.FilePermission "c:\\home\\jones\\public_html\\classes\\-", "read";
-};
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ca...@us...> - 2010-04-12 18:20:42
|
Revision: 118
http://cruce.svn.sourceforge.net/cruce/?rev=118&view=rev
Author: caiusb
Date: 2010-04-12 18:20:36 +0000 (Mon, 12 Apr 2010)
Log Message:
-----------
Fixed the problem with askBinaryQuestion. Acum ar trebui sa mearga.
Modified Paths:
--------------
Java/trunk/.classpath
Java/trunk/.project
Java/trunk/src/prc/bubulina/cruce/client/TextUI.java
Modified: Java/trunk/.classpath
===================================================================
--- Java/trunk/.classpath 2010-04-12 18:13:08 UTC (rev 117)
+++ Java/trunk/.classpath 2010-04-12 18:20:36 UTC (rev 118)
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="src" output="testBin" path="test"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6.0_18"/>
- <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" output="testBin" path="test"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Modified: Java/trunk/.project
===================================================================
--- Java/trunk/.project 2010-04-12 18:13:08 UTC (rev 117)
+++ Java/trunk/.project 2010-04-12 18:20:36 UTC (rev 118)
@@ -1,23 +1,18 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>Cruce</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>net.genady.rmi.RMIBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>net.genady.rmi.RMINature</nature>
- </natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>Cruce</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>net.genady.rmi.RMINature</nature>
+ </natures>
+</projectDescription>
Modified: Java/trunk/src/prc/bubulina/cruce/client/TextUI.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/client/TextUI.java 2010-04-12 18:13:08 UTC (rev 117)
+++ Java/trunk/src/prc/bubulina/cruce/client/TextUI.java 2010-04-12 18:20:36 UTC (rev 118)
@@ -34,7 +34,9 @@
char answer = 'n';
System.out.println(question);
try {
+ System.in.skip(System.in.available()); // sar peste ce este in buffer
answer = (char) System.in.read();
+ System.in.skip(System.in.available()); // sar peste newline si restul
} catch (IOException e) {
System.out.println("Error reading input");
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hor...@us...> - 2010-04-20 22:05:37
|
Revision: 124
http://cruce.svn.sourceforge.net/cruce/?rev=124&view=rev
Author: horiaradu
Date: 2010-04-20 22:05:30 +0000 (Tue, 20 Apr 2010)
Log Message:
-----------
Am facut echipele astfel incat sa aiba nume, iar Player stie numele echipei din care face parte deoarece Player reprezinta o incapsulare a info pe care clientul ar trebui sa le primeasca si ar fi fain sa stie si numele echipei. Neesential insa.
Am facut ordinea initiala de joc sa fie corecta, adica Player1 din Team1, P1T2, P2T1, P2T2.
Am facut la client sa returneze de la bid valoare 1, 2, sau cat zice de la tastatura, nu codul ascii al lui 1 sau 2 :)))) ca nu stiam de ce imi zice ca "am zis 50" :)))
Modified Paths:
--------------
Java/trunk/src/prc/bubulina/cruce/client/TextUI.java
Java/trunk/src/prc/bubulina/cruce/remote/Player.java
Java/trunk/src/prc/bubulina/cruce/server/GameLogic.java
Java/trunk/src/prc/bubulina/cruce/server/OrderKeeper.java
Java/trunk/src/prc/bubulina/cruce/server/PlayerMap.java
Java/trunk/src/prc/bubulina/cruce/server/RoundLogic.java
Java/trunk/src/prc/bubulina/cruce/server/ServerImplementation.java
Java/trunk/src/prc/bubulina/cruce/server/ServerSidePlayer.java
Java/trunk/src/prc/bubulina/cruce/server/StartGameLogic.java
Java/trunk/src/prc/bubulina/cruce/server/Team.java
Java/trunk/test/prc/bubulina/cruce/tests/server/OrderKeeperTest.java
Java/trunk/test/prc/bubulina/cruce/tests/server/StartGameLogicTest.java
Java/trunk/test/prc/bubulina/cruce/tests/server/TeamTest.java
Modified: Java/trunk/src/prc/bubulina/cruce/client/TextUI.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/client/TextUI.java 2010-04-20 21:26:41 UTC (rev 123)
+++ Java/trunk/src/prc/bubulina/cruce/client/TextUI.java 2010-04-20 22:05:30 UTC (rev 124)
@@ -24,7 +24,7 @@
} catch (IOException e) {
System.out.println("Error reading input");
}
- return bidAmount;
+ return bidAmount - '0';
}
@Override
Modified: Java/trunk/src/prc/bubulina/cruce/remote/Player.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/remote/Player.java 2010-04-20 21:26:41 UTC (rev 123)
+++ Java/trunk/src/prc/bubulina/cruce/remote/Player.java 2010-04-20 22:05:30 UTC (rev 124)
@@ -11,6 +11,7 @@
private String name;
private int id;
+ private String teamName;
public Player(String name, int ID) {
this.name = name;
@@ -25,6 +26,14 @@
return id;
}
+ public void setTeamName(String teamName) {
+ this.teamName = teamName;
+ }
+
+ public String getTeamName() {
+ return teamName;
+ }
+
public boolean equals(Object o) {
if (o instanceof Player)
if (((Player)o).name.equals(name) && ((Player)o).id == id)
Modified: Java/trunk/src/prc/bubulina/cruce/server/GameLogic.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/server/GameLogic.java 2010-04-20 21:26:41 UTC (rev 123)
+++ Java/trunk/src/prc/bubulina/cruce/server/GameLogic.java 2010-04-20 22:05:30 UTC (rev 124)
@@ -1,11 +1,16 @@
package prc.bubulina.cruce.server;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
+import prc.bubulina.cruce.remote.Player;
+import prc.bubulina.cruce.remote.Score;
+
public class GameLogic {
private List<Team> teams;
- private RoundLogic roundLogic;
+ private RoundLogic roundLogic;
public void startGame(List<Team> teams, ServerImplementation server) {
this.teams = teams;
@@ -20,4 +25,13 @@
return true;
return false;
}
+
+ public Score getOverallScore() {
+ Map<Player, Integer> scoreMap = new HashMap<Player, Integer>();
+ for (Team t : teams)
+ for (ServerSidePlayer p : t.getPlayers())
+ scoreMap.put(p.getInfo(), t.getOverallScore());
+
+ return new Score(scoreMap);
+ }
}
\ No newline at end of file
Modified: Java/trunk/src/prc/bubulina/cruce/server/OrderKeeper.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/server/OrderKeeper.java 2010-04-20 21:26:41 UTC (rev 123)
+++ Java/trunk/src/prc/bubulina/cruce/server/OrderKeeper.java 2010-04-20 22:05:30 UTC (rev 124)
@@ -5,16 +5,17 @@
import java.util.Map.Entry;
public class OrderKeeper extends HashMap<Integer, ServerSidePlayer> {
-
+
/**
*
*/
private static final long serialVersionUID = -8527789594990649607L;
/**
- * This will reorder the values stored in the HashMap so that the
- * argument is the first followed by the value after it and so on.
- * The keys will be always be fist key 0, second key one, and so one
+ * This will reorder the values stored in the HashMap so that the argument
+ * is the first followed by the value after it and so on. The keys will be
+ * always be fist key 0, second key one, and so one
+ *
* @param firstPlayer
*/
public void resetOrder(ServerSidePlayer firstPlayer) {
@@ -32,7 +33,7 @@
this.clear();
this.putAll(newPlayerOrder);
}
-
+
public int getOrder(ServerSidePlayer player) {
for (Entry<Integer, ServerSidePlayer> p : this.entrySet())
if (p.getValue().equals(player))
Modified: Java/trunk/src/prc/bubulina/cruce/server/PlayerMap.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/server/PlayerMap.java 2010-04-20 21:26:41 UTC (rev 123)
+++ Java/trunk/src/prc/bubulina/cruce/server/PlayerMap.java 2010-04-20 22:05:30 UTC (rev 124)
@@ -36,7 +36,7 @@
return e.getKey();
return null;
}
-
+
public Collection<ClientInterface> getClients() {
return clients.values();
}
@@ -44,6 +44,7 @@
public void reset() {
data.clear();
}
+
public String toString() {
return data.toString() + "\n" + clients.toString();
}
Modified: Java/trunk/src/prc/bubulina/cruce/server/RoundLogic.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/server/RoundLogic.java 2010-04-20 21:26:41 UTC (rev 123)
+++ Java/trunk/src/prc/bubulina/cruce/server/RoundLogic.java 2010-04-20 22:05:30 UTC (rev 124)
@@ -8,7 +8,7 @@
import prc.bubulina.cruce.remote.Card;
public class RoundLogic {
-
+
private List<Team> teams;
private OrderKeeper playerOrder;
private ServerImplementation server;
@@ -17,14 +17,20 @@
private int handNr;
public RoundLogic(List<Team> teams, ServerImplementation server) {
-
+
playerOrder = new OrderKeeper();
this.server = server;
this.teams = teams;
- int i = 0;
- for (Team t : teams)
- for (ServerSidePlayer p : t.getPlayers())
- playerOrder.put(i++, p);
+ int i = -1;
+ for (Team t : teams) {
+ i++;
+ for (ServerSidePlayer p : t.getPlayers()) {
+ playerOrder.put(i, p);
+ i += 2;
+ }
+ i -= 4;
+ }
+ System.out.println(playerOrder);
}
public Team getTeam(ServerSidePlayer player) {
@@ -39,7 +45,7 @@
startBid();
for (handNr = 0; handNr < 6; handNr++)
playHand();
- //de bagat cu scorul!
+ // de bagat cu scorul!
}
private void sendCards() {
@@ -54,10 +60,11 @@
do {
card = Card.getRandomCard();
} while (givenCards.contains(card));
-
- //in order for givenCards.contains(card) to work properly you have to
- //override equals(Object o) in Card
-
+
+ // in order for givenCards.contains(card) to work properly you
+ // have to
+ // override equals(Object o) in Card
+
givenCards.add(card);
cards.add(card);
}
@@ -68,7 +75,7 @@
}
}
}
-
+
private void startBid() {
int max = 0;
ServerSidePlayer winner = null;
@@ -84,25 +91,20 @@
getTeam(winner).setGoal(max);
playerOrder.resetOrder(winner);
}
-
- /*private void resetOrder(ServerSidePlayer firstPlayer) {
- int oldPosition = 0;
- for (Entry<Integer, ServerSidePlayer> p : playerOrder.entrySet())
- if (p.getValue().equals(firstPlayer))
- oldPosition = p.getKey();
- Map<Integer, ServerSidePlayer> newPlayerOrder = new HashMap<Integer, ServerSidePlayer>();
- for (Entry<Integer, ServerSidePlayer> p : playerOrder.entrySet()) {
- int newPosition;
- if (p.getKey() >= oldPosition)
- newPosition = p.getKey() - oldPosition;
- else
- newPosition = p.getKey() - oldPosition + 4;
- ServerSidePlayer player = p.getValue();
- newPlayerOrder.put(newPosition, player);
- }
- playerOrder = newPlayerOrder;
- }*/
-
+
+ /*
+ * private void resetOrder(ServerSidePlayer firstPlayer) { int oldPosition =
+ * 0; for (Entry<Integer, ServerSidePlayer> p : playerOrder.entrySet()) if
+ * (p.getValue().equals(firstPlayer)) oldPosition = p.getKey(); Map<Integer,
+ * ServerSidePlayer> newPlayerOrder = new HashMap<Integer,
+ * ServerSidePlayer>(); for (Entry<Integer, ServerSidePlayer> p :
+ * playerOrder.entrySet()) { int newPosition; if (p.getKey() >= oldPosition)
+ * newPosition = p.getKey() - oldPosition; else newPosition = p.getKey() -
+ * oldPosition + 4; ServerSidePlayer player = p.getValue();
+ * newPlayerOrder.put(newPosition, player); } playerOrder = newPlayerOrder;
+ * }
+ */
+
private void playHand() {
cardsDown = new HashMap<Integer, Card>();
for (int i = 0; i < 4; i++) {
@@ -117,7 +119,7 @@
ServerSidePlayer winner = playerOrder.get(maxIndex);
playerOrder.resetOrder(winner);
}
-
+
private int getMaxCard(Map<Integer, Card> cards) {
int maxIndex = 0;
Card max = cards.get(0);
@@ -142,7 +144,7 @@
}
return maxIndex;
}
-
+
public boolean acceptCard(ServerSidePlayer player, Card card) {
Card[] c = (Card[]) cardsDown.values().toArray();
if (player.checkHit(card, c) == true) {
@@ -155,16 +157,17 @@
}
return false;
}
-
+
public boolean acceptCard(ServerSidePlayer player, Card card, int anunt) {
- if (player.hasAnunt(card, anunt) == false)
+ if (player.hasAnunt(card, anunt) == false)
return false;
if (playerOrder.getOrder(player) != 0)
return false;
Card[] c = (Card[]) cardsDown.values().toArray();
if (player.checkHit(card, c) == true) {
cardsDown.put(playerOrder.getOrder(player), card);
- hitInfoMessage = player.getInfo().getName() + " a dat " + c + " anuntand " + anunt;
+ hitInfoMessage = player.getInfo().getName() + " a dat " + c
+ + " anuntand " + anunt;
this.getTeam(player).addAnunt(anunt);
if (handNr == 0)
Card.setTromf(card.getColor());
Modified: Java/trunk/src/prc/bubulina/cruce/server/ServerImplementation.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/server/ServerImplementation.java 2010-04-20 21:26:41 UTC (rev 123)
+++ Java/trunk/src/prc/bubulina/cruce/server/ServerImplementation.java 2010-04-20 22:05:30 UTC (rev 124)
@@ -11,34 +11,38 @@
import prc.bubulina.cruce.remote.Score;
import prc.bubulina.cruce.remote.ServerInterface;
-public class ServerImplementation extends UnicastRemoteObject implements ServerInterface {
+public class ServerImplementation extends UnicastRemoteObject implements
+ ServerInterface {
/**
* Needed for serialization
*/
private static final long serialVersionUID = 6398777327639353025L;
-
+
private List<Team> teams = new LinkedList<Team>();
private List<ClientInterface> clients = new LinkedList<ClientInterface>();
private StartGameLogic startGameLogic;
private GameLogic gameLogic;
private RoundLogic roundLogic;
private PlayerMap playerMap = new PlayerMap();
-
public ServerImplementation() throws RemoteException {
super();
teams = new LinkedList<Team>();
- teams.add(new Team());
- teams.add(new Team());
+ teams.add(new Team("Poker Faces"));
+ teams.add(new Team("Bulanosii"));
startGameLogic = new StartGameLogic(teams);
gameLogic = new GameLogic();
}
-
- public synchronized Player joinGame(String name, ClientInterface client) throws RemoteException {
+
+ public synchronized Player joinGame(String name, ClientInterface client)
+ throws RemoteException {
System.out.println(name + " joined the game");
client.inform("welcome to the game");
ServerSidePlayer ssplayer = startGameLogic.setupPlayer(name);
+ client.inform("you are in team " + ssplayer.getInfo().getTeamName());
+ this.informAll(ssplayer.getInfo().getName() + " from "
+ + ssplayer.getInfo().getTeamName() + " joined the game");
clients.add(client);
playerMap.put(ssplayer, client);
if (ssplayer != null)
@@ -59,7 +63,8 @@
}
}
- public synchronized boolean sendCards(List<Card> cards, ServerSidePlayer player) {
+ public synchronized boolean sendCards(List<Card> cards,
+ ServerSidePlayer player) {
ClientInterface client = playerMap.getClient(player.getInfo());
try {
@@ -77,18 +82,19 @@
}
return true;
}
-
+
public int bid(ServerSidePlayer player) {
ClientInterface client = playerMap.getClient(player.getInfo());
try {
int amount = client.bid();
+ System.out.println(player.getInfo().getName() + " " + +amount);
return amount;
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
-
+
public void hit(ServerSidePlayer player) {
ClientInterface client = playerMap.getClient(player.getInfo());
try {
@@ -97,7 +103,7 @@
e.printStackTrace();
}
}
-
+
public void informAll(String message) {
for (ClientInterface c : playerMap.getClients()) {
try {
@@ -107,17 +113,20 @@
}
}
}
-
- public synchronized boolean acceptCard(Player sender, Card card) throws RemoteException {
- return roundLogic.acceptCard(playerMap.getServerSidePlayer(sender), card);
+
+ public synchronized boolean acceptCard(Player sender, Card card)
+ throws RemoteException {
+ return roundLogic.acceptCard(playerMap.getServerSidePlayer(sender),
+ card);
}
- public synchronized boolean acceptCard(Player sender, Card card, int anunt) throws RemoteException {
- return roundLogic.acceptCard(playerMap.getServerSidePlayer(sender), card, anunt);
+ public synchronized boolean acceptCard(Player sender, Card card, int anunt)
+ throws RemoteException {
+ return roundLogic.acceptCard(playerMap.getServerSidePlayer(sender),
+ card, anunt);
}
public synchronized Score getOverallScore() throws RemoteException {
- // TODO Auto-generated method stub
- return null;
+ return gameLogic.getOverallScore();
}
}
\ No newline at end of file
Modified: Java/trunk/src/prc/bubulina/cruce/server/ServerSidePlayer.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/server/ServerSidePlayer.java 2010-04-20 21:26:41 UTC (rev 123)
+++ Java/trunk/src/prc/bubulina/cruce/server/ServerSidePlayer.java 2010-04-20 22:05:30 UTC (rev 124)
@@ -61,7 +61,7 @@
public Player getInfo() {
return player;
}
-
+
public void removeCard(Card card) {
this.cards.remove(card);
}
Modified: Java/trunk/src/prc/bubulina/cruce/server/StartGameLogic.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/server/StartGameLogic.java 2010-04-20 21:26:41 UTC (rev 123)
+++ Java/trunk/src/prc/bubulina/cruce/server/StartGameLogic.java 2010-04-20 22:05:30 UTC (rev 124)
@@ -31,6 +31,7 @@
// 2
int teamIndex = player.getID() / 2;
+ player.setTeamName(teams.get(teamIndex).getName());
teams.get(teamIndex).addPlayer(ssplayer);
return ssplayer;
Modified: Java/trunk/src/prc/bubulina/cruce/server/Team.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/server/Team.java 2010-04-20 21:26:41 UTC (rev 123)
+++ Java/trunk/src/prc/bubulina/cruce/server/Team.java 2010-04-20 22:05:30 UTC (rev 124)
@@ -11,8 +11,10 @@
private int goal;
private List<Card> cardsTaken;
private int overallScore;
+ private String teamName;
- public Team() {
+ public Team(String teamName) {
+ this.teamName = teamName;
players = new LinkedList<ServerSidePlayer>();
cardsTaken = new LinkedList<Card>();
anunturi = 0;
@@ -70,4 +72,7 @@
cardsTaken.clear();
}
+ public String getName() {
+ return teamName;
+ }
}
\ No newline at end of file
Modified: Java/trunk/test/prc/bubulina/cruce/tests/server/OrderKeeperTest.java
===================================================================
--- Java/trunk/test/prc/bubulina/cruce/tests/server/OrderKeeperTest.java 2010-04-20 21:26:41 UTC (rev 123)
+++ Java/trunk/test/prc/bubulina/cruce/tests/server/OrderKeeperTest.java 2010-04-20 22:05:30 UTC (rev 124)
@@ -25,8 +25,8 @@
public void setUp() {
o = new OrderKeeper();
teams = new ArrayList<Team>();
- teams.add(new Team());
- teams.add(new Team());
+ teams.add(new Team("A"));
+ teams.add(new Team("B"));
StartGameLogic startGameLogic = new StartGameLogic(teams);
p1 = startGameLogic.setupPlayer("P1");
p2 = startGameLogic.setupPlayer("P2");
Modified: Java/trunk/test/prc/bubulina/cruce/tests/server/StartGameLogicTest.java
===================================================================
--- Java/trunk/test/prc/bubulina/cruce/tests/server/StartGameLogicTest.java 2010-04-20 21:26:41 UTC (rev 123)
+++ Java/trunk/test/prc/bubulina/cruce/tests/server/StartGameLogicTest.java 2010-04-20 22:05:30 UTC (rev 124)
@@ -20,8 +20,8 @@
@Before
public void setUp() throws Exception {
teams = new ArrayList<Team>();
- teams.add(new Team());
- teams.add(new Team());
+ teams.add(new Team("A"));
+ teams.add(new Team("B"));
startGameLogic = new StartGameLogic(teams);
}
@@ -29,7 +29,7 @@
public void testSetupPlayer_OnePlayer_BestCaseScenario() {
String playerName = "Player1";
teams.clear();
- teams.add(new Team());
+ teams.add(new Team("C"));
// Actual test
ServerSidePlayer actual = startGameLogic.setupPlayer(playerName);
Modified: Java/trunk/test/prc/bubulina/cruce/tests/server/TeamTest.java
===================================================================
--- Java/trunk/test/prc/bubulina/cruce/tests/server/TeamTest.java 2010-04-20 21:26:41 UTC (rev 123)
+++ Java/trunk/test/prc/bubulina/cruce/tests/server/TeamTest.java 2010-04-20 22:05:30 UTC (rev 124)
@@ -17,7 +17,7 @@
@Before
public void setUp() throws Exception {
- team = new Team();
+ team = new Team("A");
}
@Test
@@ -123,7 +123,7 @@
team.addAnunt(20);
// Notice how we can add more that one 40 and 3 20's
- team = new Team();
+ team = new Team("B");
team.addAnunt(40);
team.addAnunt(20);
team.addAnunt(20);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ali...@us...> - 2010-04-27 16:15:46
|
Revision: 133
http://cruce.svn.sourceforge.net/cruce/?rev=133&view=rev
Author: alinposho
Date: 2010-04-27 16:15:39 +0000 (Tue, 27 Apr 2010)
Log Message:
-----------
Am modificat urmatoarele:
-Am sters diagrama de secventa de la fisrt hand pentru ca nu exista o asemenea metoda in RoundLogic.
-Am facut diagrama pentru metoda playHand() din clasa RoundLogic.
-Am adaugat interfata Hitable si am facut modificarile necesare in clasa ServerImplementation, pentru ca nu mai exista metodele acceptCard(Card, anunt) si acceptCard(Card).
Am modificat diagrama de clase pentru Remote pentru a fi la zi cu modificarile din cod.
Toate modificarile sunt facute in proiectul StarUML de pe SVN. De asemenea am generat fisierele .jpg corespunzatoare diagramelor modificate.
Verificati si voi daca aveti timp. Sper sa nu fi gresit ceva.
Modified Paths:
--------------
Java/trunk/.classpath
Java/trunk/Documentation/CruceUML.uml
Java/trunk/Documentation/CruceUML.~ml
Java/trunk/Documentation/GameLogicSequenceDiagram.jpg
Java/trunk/Documentation/Overview of remote.jpg
Added Paths:
-----------
Java/trunk/.settings/
Java/trunk/.settings/net.genady.rmi.prefs
Java/trunk/Documentation/PlayHandSequenceDiagram.jpg
Removed Paths:
-------------
Java/trunk/Documentation/FirstHandSequenceDiagram.jpg
Modified: Java/trunk/.classpath
===================================================================
--- Java/trunk/.classpath 2010-04-27 13:44:33 UTC (rev 132)
+++ Java/trunk/.classpath 2010-04-27 16:15:39 UTC (rev 133)
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="src" output="testBin" path="test"/>
- <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6.0_18"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" output="testBin" path="test"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Added: Java/trunk/.settings/net.genady.rmi.prefs
===================================================================
--- Java/trunk/.settings/net.genady.rmi.prefs (rev 0)
+++ Java/trunk/.settings/net.genady.rmi.prefs 2010-04-27 16:15:39 UTC (rev 133)
@@ -0,0 +1,7 @@
+#Tue Apr 27 18:07:54 EEST 2010
+eclipse.preferences.version=1
+flags.advancedHierarchy=false
+flags.debug=true
+flags.internalCompiler=true
+flags.keepSrc=false
+flags.stubsVersion=2
Modified: Java/trunk/Documentation/CruceUML.uml
===================================================================
--- Java/trunk/Documentation/CruceUML.uml 2010-04-27 13:44:33 UTC (rev 132)
+++ Java/trunk/Documentation/CruceUML.uml 2010-04-27 16:15:39 UTC (rev 133)
@@ -2,6 +2,11 @@
<XPD:PROJECT xmlns:XPD="http://www.staruml.com" version="1">
<XPD:HEADER>
<XPD:SUBUNITS>
+<XPD:UNIT owner="tAIggzSJEkO/wUvTETnc/AAA" index="1">C:\Program Files (x86)\StarUML\modules\staruml-java\frameworks\j2ee1.4\J2EE14 (java).unt</XPD:UNIT>
+<XPD:UNIT owner="tAIggzSJEkO/wUvTETnc/AAA" index="2">C:\Program Files (x86)\StarUML\modules\staruml-java\frameworks\j2ee1.4\J2EE14 (javax).unt</XPD:UNIT>
+<XPD:UNIT owner="tAIggzSJEkO/wUvTETnc/AAA" index="3">C:\Program Files (x86)\StarUML\modules\staruml-java\frameworks\j2ee1.4\J2EE14 (org).unt</XPD:UNIT>
+<XPD:UNIT owner="tAIggzSJEkO/wUvTETnc/AAA" index="4">C:\Program Files (x86)\StarUML\modules\staruml-java\frameworks\j2ee1.4\J2EE14 (com).unt</XPD:UNIT>
+<XPD:UNIT owner="tAIggzSJEkO/wUvTETnc/AAA" index="5">C:\Program Files (x86)\StarUML\modules\staruml-java\frameworks\j2ee1.4\J2EE14 (sunw).unt</XPD:UNIT>
</XPD:SUBUNITS>
<XPD:PROFILES>
<XPD:PROFILE>UMLStandard</XPD:PROFILE>
@@ -77,12 +82,12 @@
<XPD:REF name="DiagramOwner">WZJo7Rk1nES8KPIyEw203QAA</XPD:REF>
<XPD:OBJ name="DiagramView" type="UMLClassDiagramView" guid="bzDL4R8ZIEePFXYJvW8VOQAA">
<XPD:REF name="Diagram">kB6uEY7a+kKkWIgVidGuDQAA</XPD:REF>
-<XPD:ATTR name="#OwnedViews" type="integer">6</XPD:ATTR>
+<XPD:ATTR name="#OwnedViews" type="integer">15</XPD:ATTR>
<XPD:OBJ name="OwnedViews[0]" type="UMLClassView" guid="/GVlO808V0+qCKBYu2DdiAAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
-<XPD:ATTR name="Left" type="integer">148</XPD:ATTR>
-<XPD:ATTR name="Top" type="integer">64</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">184</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">152</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">217</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">108</XPD:ATTR>
<XPD:REF name="Model">Qytbzt0YlESz74qB/EayuAAA</XPD:REF>
@@ -139,42 +144,11 @@
<XPD:REF name="Model">8wyE1IjMREuSgeLp8voQxAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
-<XPD:OBJ name="OwnedViews[2]" type="UMLClassView" guid="I0dxuvynbEec9LirwzQ9dAAA">
+<XPD:OBJ name="OwnedViews[2]" type="UMLClassView" guid="fMeY1JnhZk+5q5hZEfpcQwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
-<XPD:ATTR name="Left" type="integer">116</XPD:ATTR>
-<XPD:ATTR name="Top" type="integer">264</XPD:ATTR>
-<XPD:ATTR name="Width" type="integer">219</XPD:ATTR>
-<XPD:ATTR name="Height" type="integer">147</XPD:ATTR>
-<XPD:REF name="Model">MbuAaMHJS0i+Xs+p80XUBQAA</XPD:REF>
-<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="7jPHq8OKv0KNJE9p5MOlEwAA">
-<XPD:OBJ name="NameLabel" type="LabelView" guid="13kj8mYNSkCblbKVljwFrgAA">
-<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
-<XPD:ATTR name="Text" type="string">Card</XPD:ATTR>
-</XPD:OBJ>
-<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="YTfkSHlL5ka7lg4KvAB5VQAA">
-<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
-</XPD:OBJ>
-<XPD:OBJ name="PropertyLabel" type="LabelView" guid="CvW2oBjacUqwnOvMDs60GAAA">
-<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
-</XPD:OBJ>
-</XPD:OBJ>
-<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="t2k7GbpinUm/H2V+gCK03wAA">
-<XPD:REF name="Model">MbuAaMHJS0i+Xs+p80XUBQAA</XPD:REF>
-</XPD:OBJ>
-<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="LFner7HRrkKg9/ButWJ9rwAA">
-<XPD:REF name="Model">MbuAaMHJS0i+Xs+p80XUBQAA</XPD:REF>
-</XPD:OBJ>
-<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="9orx8B4G9ki5VA7BisfuxQAA">
-<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
-<XPD:REF name="Model">MbuAaMHJS0i+Xs+p80XUBQAA</XPD:REF>
-</XPD:OBJ>
-</XPD:OBJ>
-<XPD:OBJ name="OwnedViews[3]" type="UMLClassView" guid="fMeY1JnhZk+5q5hZEfpcQwAA">
-<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
-<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
-<XPD:ATTR name="Left" type="integer">504</XPD:ATTR>
-<XPD:ATTR name="Top" type="integer">380</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">428</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">340</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">237</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">69</XPD:ATTR>
<XPD:REF name="Model">TppH4voMDEmOkDhEMBL77gAA</XPD:REF>
@@ -201,7 +175,7 @@
<XPD:REF name="Model">TppH4voMDEmOkDhEMBL77gAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
-<XPD:OBJ name="OwnedViews[4]" type="UMLInterfaceView" guid="LqbI/wsy8Ue5vCAjRaYhAwAA">
+<XPD:OBJ name="OwnedViews[3]" type="UMLInterfaceView" guid="LqbI/wsy8Ue5vCAjRaYhAwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">1009</XPD:ATTR>
@@ -231,7 +205,7 @@
<XPD:REF name="Model">8wyE1IjMREuSgeLp8voQxAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
-<XPD:OBJ name="OwnedViews[5]" type="UMLAssociationView" guid="aZ4hKrwseUyhDyYVOlblLwAA">
+<XPD:OBJ name="OwnedViews[4]" type="UMLAssociationView" guid="aZ4hKrwseUyhDyYVOlblLwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">684,118;1009,147</XPD:ATTR>
@@ -315,9 +289,519 @@
<XPD:REF name="Model">AFufgiZAOUOIOwtVFEa0IAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
+<XPD:OBJ name="OwnedViews[5]" type="UMLClassView" guid="FaO2byLzMUWW6AO6yRY/TQAA">
+<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
+<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">1212</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">440</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">80</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">69</XPD:ATTR>
+<XPD:REF name="Model">cS6423ey8kmiUige0R6IxwAA</XPD:REF>
+<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="sHWou6uCbky3P7rWn2seNAAA">
+<XPD:OBJ name="NameLabel" type="LabelView" guid="wp+3oaG62kiFmfIG3uBUaAAA">
+<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
+<XPD:ATTR name="Text" type="string">Anunt</XPD:ATTR>
</XPD:OBJ>
+<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="OtGv01vZ2EehMXs9POaN+gAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
-<XPD:ATTR name="#OwnedElements" type="integer">11</XPD:ATTR>
+<XPD:OBJ name="PropertyLabel" type="LabelView" guid="Hs6XlUjd4ECYUDp65UvBlwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="zi35M82KrUCTNZcMtKYQewAA">
+<XPD:REF name="Model">cS6423ey8kmiUige0R6IxwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="sJ13HjEti0K2FtARPQ4PgQAA">
+<XPD:REF name="Model">cS6423ey8kmiUige0R6IxwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="kzZqoMafIUaD9PpmlByP3wAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:REF name="Model">cS6423ey8kmiUige0R6IxwAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedViews[6]" type="UMLClassView" guid="JE2eQY//o0GJJu/fNIdFNwAA">
+<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
+<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">944</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">440</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">219</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">147</XPD:ATTR>
+<XPD:REF name="Model">MbuAaMHJS0i+Xs+p80XUBQAA</XPD:REF>
+<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="pi1FjOaa40+MYNWAp6ym7gAA">
+<XPD:OBJ name="NameLabel" type="LabelView" guid="o2kfzrS11k210AFYZ5tcywAA">
+<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
+<XPD:ATTR name="Text" type="string">Card</XPD:ATTR>
+</XPD:OBJ>
+<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="Va12ODsLaEawog1678lDWwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+</XPD:OBJ>
+<XPD:OBJ name="PropertyLabel" type="LabelView" guid="iSN1ccV8yEWob2aJq0EKvAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="hoInrxvWhEGJRdgDWwzddQAA">
+<XPD:REF name="Model">MbuAaMHJS0i+Xs+p80XUBQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="MonDOZpQlkK1XXF4DM7ogAAA">
+<XPD:REF name="Model">MbuAaMHJS0i+Xs+p80XUBQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="yXgeWRqKN0OO16zs9icC8AAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:REF name="Model">MbuAaMHJS0i+Xs+p80XUBQAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedViews[7]" type="UMLAssociationView" guid="+ClTPcEfSEeL4lPsb7SVdwAA">
+<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
+<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
+<XPD:ATTR name="Points" type="Points">976,440;657,136</XPD:ATTR>
+<XPD:REF name="Model">dc1y69QHY0erA2ikqS06vQAA</XPD:REF>
+<XPD:REF name="Head">kbVb0Zi16kyetqFSKMSoDgAA</XPD:REF>
+<XPD:REF name="Tail">JE2eQY//o0GJJu/fNIdFNwAA</XPD:REF>
+<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="6M2Y0QQ9CkmpdMuVlFH5CQAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">dc1y69QHY0erA2ikqS06vQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="93R+HOfC2Ue1kMzaekeHrAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:REF name="Model">dc1y69QHY0erA2ikqS06vQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="sUeBSTVIPEye6UPk4xrAeAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">dc1y69QHY0erA2ikqS06vQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadRoleNameLabel" type="EdgeLabelView" guid="HJhj0FjUOEyQMDYfKVzYhgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0.523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">rkbdeWhPzkWyu19nF7wljwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailRoleNameLabel" type="EdgeLabelView" guid="WVwLALOIBE6Y/tKH/C0e+wAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0.523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:REF name="Model">JWv0RD0fvEKOcVJJ6LfXvQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadMultiplicityLabel" type="EdgeLabelView" guid="ZYtkDB7OJ0qxIRJHYMFpIAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0.523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">rkbdeWhPzkWyu19nF7wljwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailMultiplicityLabel" type="EdgeLabelView" guid="JbbhMlorj0ifeRGNRVYpqgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0.523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:REF name="Model">JWv0RD0fvEKOcVJJ6LfXvQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadPropertyLabel" type="EdgeLabelView" guid="eglo+Cuxdk+/aVOmLwMv5wAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0.785398163397448</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">rkbdeWhPzkWyu19nF7wljwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailPropertyLabel" type="EdgeLabelView" guid="8NGS9V4M8EO70Ti33iKciAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0.785398163397448</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:REF name="Model">JWv0RD0fvEKOcVJJ6LfXvQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadQualifierCompartment" type="UMLQualifierCompartmentView" guid="0Rh/0nvqQ0y57VDZFBojVgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">-1000</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">-1000</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
+<XPD:REF name="Model">rkbdeWhPzkWyu19nF7wljwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailQualifierCompartment" type="UMLQualifierCompartmentView" guid="wEDMXxV4N0KNTe11Y7FEdAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">-1000</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">-1000</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
+<XPD:REF name="Model">JWv0RD0fvEKOcVJJ6LfXvQAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedViews[8]" type="UMLAssociationView" guid="IYsAlwR8SEW5Sffq1VrWgQAA">
+<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
+<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
+<XPD:ATTR name="Points" type="Points">1054,440;1059,173</XPD:ATTR>
+<XPD:REF name="Model">dc1y69QHY0erA2ikqS06vQAA</XPD:REF>
+<XPD:REF name="Head">LqbI/wsy8Ue5vCAjRaYhAwAA</XPD:REF>
+<XPD:REF name="Tail">JE2eQY//o0GJJu/fNIdFNwAA</XPD:REF>
+<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="waNb5wsX6UKcSnfImYgt8wAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">dc1y69QHY0erA2ikqS06vQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="AR1G4bL54kq44I5WJMG/EwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:REF name="Model">dc1y69QHY0erA2ikqS06vQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="V8kKIY/rIkeAFnUdJAZcmAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">dc1y69QHY0erA2ikqS06vQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadRoleNameLabel" type="EdgeLabelView" guid="MJPGOp+GK0GOgf3uFm4WnwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0.523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">rkbdeWhPzkWyu19nF7wljwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailRoleNameLabel" type="EdgeLabelView" guid="K1UtJOoWGEe0r0dVZvLw/wAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0.523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:REF name="Model">JWv0RD0fvEKOcVJJ6LfXvQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadMultiplicityLabel" type="EdgeLabelView" guid="77tjAXZYrUauGmLW4BtZzAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0.523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">rkbdeWhPzkWyu19nF7wljwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailMultiplicityLabel" type="EdgeLabelView" guid="SERHbQXT3Eq1lZtWaOvndwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0.523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:REF name="Model">JWv0RD0fvEKOcVJJ6LfXvQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadPropertyLabel" type="EdgeLabelView" guid="1o0q1xQEDU+quTKIhgl7tgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0.785398163397448</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">rkbdeWhPzkWyu19nF7wljwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailPropertyLabel" type="EdgeLabelView" guid="aHk4Tl9RY0SxR28JtpEeDgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0.785398163397448</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:REF name="Model">JWv0RD0fvEKOcVJJ6LfXvQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadQualifierCompartment" type="UMLQualifierCompartmentView" guid="8Ig1nLX1TU+Mi2T4WyOzgwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">-1000</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">-1000</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
+<XPD:REF name="Model">rkbdeWhPzkWyu19nF7wljwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailQualifierCompartment" type="UMLQualifierCompartmentView" guid="8RXw2TeCn0SpYMOXC935GwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">-1000</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">-1000</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
+<XPD:REF name="Model">JWv0RD0fvEKOcVJJ6LfXvQAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedViews[9]" type="UMLAssociationView" guid="pdODkp/OMUe3YWfQcF8ohwAA">
+<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
+<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
+<XPD:ATTR name="Points" type="Points">976,440;657,136</XPD:ATTR>
+<XPD:REF name="Model">g3vP9rbFDE6Je2Q9UgDKFwAA</XPD:REF>
+<XPD:REF name="Head">kbVb0Zi16kyetqFSKMSoDgAA</XPD:REF>
+<XPD:REF name="Tail">JE2eQY//o0GJJu/fNIdFNwAA</XPD:REF>
+<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="VzKF0yyuRU6UdU4VI8aQxwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">g3vP9rbFDE6Je2Q9UgDKFwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="003OnY0ouEi5VRhpZLLaTQAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:REF name="Model">g3vP9rbFDE6Je2Q9UgDKFwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="CwvbERpvAkWv0NyLMWatzwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">g3vP9rbFDE6Je2Q9UgDKFwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadRoleNameLabel" type="EdgeLabelView" guid="8hlzs2QP80SAFc0qi9i9fAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0.523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">HVRf7+1kKkyJs6h1Y7857wAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailRoleNameLabel" type="EdgeLabelView" guid="ph9Md9Opt0aNagYSG35CkQAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0.523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:REF name="Model">ZXnX0VzA00GzMXyJXBBUsAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadMultiplicityLabel" type="EdgeLabelView" guid="o+SzfnUKMkC2A3NMwCB6/AAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0.523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">HVRf7+1kKkyJs6h1Y7857wAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailMultiplicityLabel" type="EdgeLabelView" guid="DEHYYX9hQ0mKVjAbdIEOAgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0.523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:REF name="Model">ZXnX0VzA00GzMXyJXBBUsAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadPropertyLabel" type="EdgeLabelView" guid="nKd8ctv3/kessn8ZYUi0JwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0.785398163397448</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">HVRf7+1kKkyJs6h1Y7857wAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailPropertyLabel" type="EdgeLabelView" guid="XKT0DeDUTU+LRadVmpuDYQAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0.785398163397448</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:REF name="Model">ZXnX0VzA00GzMXyJXBBUsAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadQualifierCompartment" type="UMLQualifierCompartmentView" guid="I0Joi3UDsUqU1xxwe5XtYQAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">-1000</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">-1000</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
+<XPD:REF name="Model">HVRf7+1kKkyJs6h1Y7857wAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailQualifierCompartment" type="UMLQualifierCompartmentView" guid="kK+EeW3Ix02qUkXXr2f5vAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">-1000</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">-1000</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
+<XPD:REF name="Model">ZXnX0VzA00GzMXyJXBBUsAAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedViews[10]" type="UMLAssociationView" guid="Sx2HryGZVUaixYneM2M7aAAA">
+<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
+<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
+<XPD:ATTR name="Points" type="Points">1054,440;1059,173</XPD:ATTR>
+<XPD:REF name="Model">g3vP9rbFDE6Je2Q9UgDKFwAA</XPD:REF>
+<XPD:REF name="Head">LqbI/wsy8Ue5vCAjRaYhAwAA</XPD:REF>
+<XPD:REF name="Tail">JE2eQY//o0GJJu/fNIdFNwAA</XPD:REF>
+<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="F6DBu5/cv0STWTd7IebwRwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">g3vP9rbFDE6Je2Q9UgDKFwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="QFmFAji5P0GqfNhxJ0vgiAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:REF name="Model">g3vP9rbFDE6Je2Q9UgDKFwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="QHtyC4qYJEqsc1yoh6/BcAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">g3vP9rbFDE6Je2Q9UgDKFwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadRoleNameLabel" type="EdgeLabelView" guid="irBM90DHA0mBxehuxObZFgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0.523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">HVRf7+1kKkyJs6h1Y7857wAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailRoleNameLabel" type="EdgeLabelView" guid="3YBCZ7yvuUCBFI5VXuuXpAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0.523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:REF name="Model">ZXnX0VzA00GzMXyJXBBUsAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadMultiplicityLabel" type="EdgeLabelView" guid="hAkysJwAJ0W2iTsPKyHuwwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0.523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">HVRf7+1kKkyJs6h1Y7857wAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailMultiplicityLabel" type="EdgeLabelView" guid="k4KXd6mMpUSLbGVrhFj1gAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0.523598775598299</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XPD:REF name="Model">ZXnX0VzA00GzMXyJXBBUsAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadPropertyLabel" type="EdgeLabelView" guid="vJOBlPZsOUO1KN42EZ6GDgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-0.785398163397448</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
+<XPD:REF name="Model">HVRf7+1kKkyJs6h1Y7857wAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="TailPropertyLabel" type="EdgeLabelView" guid="/CMjshXTJUKMumBHkelgGAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">0.785398163397448</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
+<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
+<XP...
[truncated message content] |
|
From: <ali...@us...> - 2010-04-27 16:51:34
|
Revision: 134
http://cruce.svn.sourceforge.net/cruce/?rev=134&view=rev
Author: alinposho
Date: 2010-04-27 16:51:27 +0000 (Tue, 27 Apr 2010)
Log Message:
-----------
O mica modificare in diagrama de clase de la remote. Plus am scos campul roundLogic din ServerImplementation pentru ca nu era folosit.
Am adaugat 2 dagrame de secveta in fiserul .docx, plus am grupat diagramele de secventa la final. Am dat commit si fisierului cu documentatia dupa ce l-am convertit in .doc. Sper ca este OK.
Modified Paths:
--------------
Java/trunk/Documentation/CruceUML.uml
Java/trunk/Documentation/CruceUML.~ml
Java/trunk/Documentation/Overview of remote.jpg
Java/trunk/src/prc/bubulina/cruce/server/ServerImplementation.java
Added Paths:
-----------
Java/trunk/Documentation/prc_java.doc
Java/trunk/Documentation/~$c_java.doc
Java/trunk/Documentation/~WRL0004.tmp
Modified: Java/trunk/Documentation/CruceUML.uml
===================================================================
--- Java/trunk/Documentation/CruceUML.uml 2010-04-27 16:15:39 UTC (rev 133)
+++ Java/trunk/Documentation/CruceUML.uml 2010-04-27 16:51:27 UTC (rev 134)
@@ -82,7 +82,7 @@
<XPD:REF name="DiagramOwner">WZJo7Rk1nES8KPIyEw203QAA</XPD:REF>
<XPD:OBJ name="DiagramView" type="UMLClassDiagramView" guid="bzDL4R8ZIEePFXYJvW8VOQAA">
<XPD:REF name="Diagram">kB6uEY7a+kKkWIgVidGuDQAA</XPD:REF>
-<XPD:ATTR name="#OwnedViews" type="integer">15</XPD:ATTR>
+<XPD:ATTR name="#OwnedViews" type="integer">14</XPD:ATTR>
<XPD:OBJ name="OwnedViews[0]" type="UMLClassView" guid="/GVlO808V0+qCKBYu2DdiAAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
@@ -175,123 +175,9 @@
<XPD:REF name="Model">TppH4voMDEmOkDhEMBL77gAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
-<XPD:OBJ name="OwnedViews[3]" type="UMLInterfaceView" guid="LqbI/wsy8Ue5vCAjRaYhAwAA">
+<XPD:OBJ name="OwnedViews[3]" type="UMLClassView" guid="FaO2byLzMUWW6AO6yRY/TQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
-<XPD:ATTR name="Left" type="integer">1009</XPD:ATTR>
-<XPD:ATTR name="Top" type="integer">129</XPD:ATTR>
-<XPD:ATTR name="Width" type="integer">101</XPD:ATTR>
-<XPD:ATTR name="Height" type="integer">45</XPD:ATTR>
-<XPD:ATTR name="StereotypeDisplay" type="UMLStereotypeDisplayKind">sdkIcon</XPD:ATTR>
-<XPD:REF name="Model">8wyE1IjMREuSgeLp8voQxAAA</XPD:REF>
-<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="v2BX7xDfx0WeRFraz6Vo9AAA">
-<XPD:OBJ name="NameLabel" type="LabelView" guid="LsFzkufrw0iH5lL42VozKwAA">
-<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
-<XPD:ATTR name="Text" type="string">ServerInterface</XPD:ATTR>
-</XPD:OBJ>
-<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="P8bCHRmtCESNcQNyLPgU2AAA">
-<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
-</XPD:OBJ>
-<XPD:OBJ name="PropertyLabel" type="LabelView" guid="gU2MaQ7RFU6dSyIe3rMq+gAA">
-<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
-</XPD:OBJ>
-</XPD:OBJ>
-<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="+zK9lv6T2UGcYI8FrQqFPgAA">
-<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
-<XPD:REF name="Model">8wyE1IjMREuSgeLp8voQxAAA</XPD:REF>
-</XPD:OBJ>
-<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="m3wiUmkQsEGUIaj7FH3gKQAA">
-<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
-<XPD:REF name="Model">8wyE1IjMREuSgeLp8voQxAAA</XPD:REF>
-</XPD:OBJ>
-</XPD:OBJ>
-<XPD:OBJ name="OwnedViews[4]" type="UMLAssociationView" guid="aZ4hKrwseUyhDyYVOlblLwAA">
-<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
-<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
-<XPD:ATTR name="Points" type="Points">684,118;1009,147</XPD:ATTR>
-<XPD:REF name="Model">IWEbkzrl+UGk52i1p3l1ZAAA</XPD:REF>
-<XPD:REF name="Head">LqbI/wsy8Ue5vCAjRaYhAwAA</XPD:REF>
-<XPD:REF name="Tail">kbVb0Zi16kyetqFSKMSoDgAA</XPD:REF>
-<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="UDYlmoqolUG3MuqlHREhRAAA">
-<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
-<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
-<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
-<XPD:REF name="Model">IWEbkzrl+UGk52i1p3l1ZAAA</XPD:REF>
-</XPD:OBJ>
-<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="1JoadzL340KAL1vSwjjkUAAA">
-<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
-<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
-<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
-<XPD:REF name="Model">IWEbkzrl+UGk52i1p3l1ZAAA</XPD:REF>
-</XPD:OBJ>
-<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="oi1TZIv4gEmJs8+lARyilgAA">
-<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
-<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
-<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
-<XPD:REF name="Model">IWEbkzrl+UGk52i1p3l1ZAAA</XPD:REF>
-</XPD:OBJ>
-<XPD:OBJ name="HeadRoleNameLabel" type="EdgeLabelView" guid="gWPWPP7WZ0Ona6I/e1uzagAA">
-<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
-<XPD:ATTR name="Alpha" type="real">-0.523598775598299</XPD:ATTR>
-<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
-<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
-<XPD:REF name="Model">qvc4VvifTEG6ipoMH+yQggAA</XPD:REF>
-</XPD:OBJ>
-<XPD:OBJ name="TailRoleNameLabel" type="EdgeLabelView" guid="nF6TprBWmEiYOm6yvWYtqQAA">
-<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
-<XPD:ATTR name="Alpha" type="real">0.523598775598299</XPD:ATTR>
-<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
-<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
-<XPD:REF name="Model">AFufgiZAOUOIOwtVFEa0IAAA</XPD:REF>
-</XPD:OBJ>
-<XPD:OBJ name="HeadMultiplicityLabel" type="EdgeLabelView" guid="6xy2TFnbM06+zobCAjFbRgAA">
-<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
-<XPD:ATTR name="Alpha" type="real">0.523598775598299</XPD:ATTR>
-<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
-<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
-<XPD:REF name="Model">qvc4VvifTEG6ipoMH+yQggAA</XPD:REF>
-</XPD:OBJ>
-<XPD:OBJ name="TailMultiplicityLabel" type="EdgeLabelView" guid="vTRR35YGLUiryPkXb7UsgAAA">
-<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
-<XPD:ATTR name="Alpha" type="real">-0.523598775598299</XPD:ATTR>
-<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
-<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
-<XPD:REF name="Model">AFufgiZAOUOIOwtVFEa0IAAA</XPD:REF>
-</XPD:OBJ>
-<XPD:OBJ name="HeadPropertyLabel" type="EdgeLabelView" guid="xIQiHmwto0GfvXJoS5GU/QAA">
-<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
-<XPD:ATTR name="Alpha" type="real">-0.785398163397448</XPD:ATTR>
-<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
-<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
-<XPD:REF name="Model">qvc4VvifTEG6ipoMH+yQggAA</XPD:REF>
-</XPD:OBJ>
-<XPD:OBJ name="TailPropertyLabel" type="EdgeLabelView" guid="B9jAdxR/j0+mrVaNYOmeMQAA">
-<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
-<XPD:ATTR name="Alpha" type="real">0.785398163397448</XPD:ATTR>
-<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
-<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
-<XPD:REF name="Model">AFufgiZAOUOIOwtVFEa0IAAA</XPD:REF>
-</XPD:OBJ>
-<XPD:OBJ name="HeadQualifierCompartment" type="UMLQualifierCompartmentView" guid="Di1Lz7PI50uFcNHsmIg/VQAA">
-<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
-<XPD:ATTR name="Left" type="integer">-1000</XPD:ATTR>
-<XPD:ATTR name="Top" type="integer">-1000</XPD:ATTR>
-<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
-<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
-<XPD:REF name="Model">qvc4VvifTEG6ipoMH+yQggAA</XPD:REF>
-</XPD:OBJ>
-<XPD:OBJ name="TailQualifierCompartment" type="UMLQualifierCompartmentView" guid="+Jr15hOlQEmnA57bnQ0UFAAA">
-<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
-<XPD:ATTR name="Left" type="integer">-1000</XPD:ATTR>
-<XPD:ATTR name="Top" type="integer">-1000</XPD:ATTR>
-<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
-<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
-<XPD:REF name="Model">AFufgiZAOUOIOwtVFEa0IAAA</XPD:REF>
-</XPD:OBJ>
-</XPD:OBJ>
-<XPD:OBJ name="OwnedViews[5]" type="UMLClassView" guid="FaO2byLzMUWW6AO6yRY/TQAA">
-<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
-<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">1212</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">440</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">80</XPD:ATTR>
@@ -320,7 +206,7 @@
<XPD:REF name="Model">cS6423ey8kmiUige0R6IxwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
-<XPD:OBJ name="OwnedViews[6]" type="UMLClassView" guid="JE2eQY//o0GJJu/fNIdFNwAA">
+<XPD:OBJ name="OwnedViews[4]" type="UMLClassView" guid="JE2eQY//o0GJJu/fNIdFNwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">944</XPD:ATTR>
@@ -351,13 +237,13 @@
<XPD:REF name="Model">MbuAaMHJS0i+Xs+p80XUBQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
-<XPD:OBJ name="OwnedViews[7]" type="UMLAssociationView" guid="+ClTPcEfSEeL4lPsb7SVdwAA">
+<XPD:OBJ name="OwnedViews[5]" type="UMLAssociationView" guid="+ClTPcEfSEeL4lPsb7SVdwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
-<XPD:ATTR name="Points" type="Points">976,440;657,136</XPD:ATTR>
+<XPD:ATTR name="Points" type="Points">1032,378;667,136</XPD:ATTR>
<XPD:REF name="Model">dc1y69QHY0erA2ikqS06vQAA</XPD:REF>
<XPD:REF name="Head">kbVb0Zi16kyetqFSKMSoDgAA</XPD:REF>
-<XPD:REF name="Tail">JE2eQY//o0GJJu/fNIdFNwAA</XPD:REF>
+<XPD:REF name="Tail">3yDFSM01gEiAR9cHphdN9AAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="6M2Y0QQ9CkmpdMuVlFH5CQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
@@ -435,373 +321,403 @@
<XPD:REF name="Model">JWv0RD0fvEKOcVJJ6LfXvQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
-<XPD:OBJ name="OwnedViews[8]" type="UMLAssociationView" guid="IYsAlwR8SEW5Sffq1VrWgQAA">
+<XPD:OBJ name="OwnedViews[6]" type="UMLInterfaceView" guid="VVDxlDD3CkSYj9RsZOzOswAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
-<XPD:ATTR name="Points" type="Points">1054,440;1059,173</XPD:ATTR>
-<XPD:REF name="Model">dc1y69QHY0erA2ikqS06vQAA</XPD:REF>
-<XPD:REF name="Head">LqbI/wsy8Ue5vCAjRaYhAwAA</XPD:REF>
+<XPD:ATTR name="Left" type="integer">1228</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">368</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">45</XPD:ATTR>
+<XPD:ATTR name="StereotypeDisplay" type="UMLStereotypeDisplayKind">sdkIcon</XPD:ATTR>
+<XPD:REF name="Model">Im7vdVVaf0q69mVtl5NmGAAA</XPD:REF>
+<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="0xOW/j47M0a+Zg/E6EKBjAAA">
+<XPD:OBJ name="NameLabel" type="LabelView" guid="7nAFQJ73MUW7CPQIG+JpjQAA">
+<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
+<XPD:ATTR name="Text" type="string">Hitable</XPD:ATTR>
+</XPD:OBJ>
+<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="tmjy24B1/k2tVBScbp7KfgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+</XPD:OBJ>
+<XPD:OBJ name="PropertyLabel" type="LabelView" guid="71vZk7IP10uok+vwWJ/aEAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="HtWA1l7hrEWeRIQJ2/fPbwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:REF name="Model">Im7vdVVaf0q69mVtl5NmGAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="WArh1NuJf0O6Ztpxsz71QgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:REF name="Model">Im7vdVVaf0q69mVtl5NmGAAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedViews[7]" type="UMLInterfaceView" guid="3yDFSM01gEiAR9cHphdN9AAA">
+<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
+<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">1032</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">372</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">45</XPD:ATTR>
+<XPD:ATTR name="StereotypeDisplay" type="UMLStereotypeDisplayKind">sdkIcon</XPD:ATTR>
+<XPD:REF name="Model">Im7vdVVaf0q69mVtl5NmGAAA</XPD:REF>
+<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="UuLHnbdjCE2E4gaeRHNmYAAA">
+<XPD:OBJ name="NameLabel" type="LabelView" guid="7YA8iGljakSZdU1GGE0g9wAA">
+<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
+<XPD:ATTR name="Text" type="string">Hitable</XPD:ATTR>
+</XPD:OBJ>
+<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="zaRxzF9e/06rk2cP8Nvb8AAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+</XPD:OBJ>
+<XPD:OBJ name="PropertyLabel" type="LabelView" guid="P8R5NvjXaEG5/waBFKs7PAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="JaZjfmHX7kqOgztSC4mJQwAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:REF name="Model">Im7vdVVaf0q69mVtl5NmGAAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="uJVhgG2SkkaxCtclHuGPJQAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:REF name="Model">Im7vdVVaf0q69mVtl5NmGAAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedViews[8]" type="UMLRealizationView" guid="2R0r7FxunkiXnQuIHJL3qgAA">
+<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
+<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
+<XPD:ATTR name="Points" type="Points">1055,440;1056,393</XPD:ATTR>
+<XPD:REF name="Model">Ru2t2TId7EKKer1B5Bh4ygAA</XPD:REF>
+<XPD:REF name="Head">3yDFSM01gEiAR9cHphdN9AAA</XPD:REF>
<XPD:REF name="Tail">JE2eQY//o0GJJu/fNIdFNwAA</XPD:REF>
-<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="waNb5wsX6UKcSnfImYgt8wAA">
+<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="/+y4MjjL+EKyASQe0/h1ygAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
-<XPD:REF name="Model">dc1y69QHY0erA2ikqS06vQAA</XPD:REF>
+<XPD:REF name="Model">Ru2t2TId7EKKer1B5Bh4ygAA</XPD:REF>
</XPD:OBJ>
-<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="AR1G4bL54kq44I5WJMG/EwAA">
+<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="fXK136sBFE2gIiSuBLjXzAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
-<XPD:REF name="Model">dc1y69QHY0erA2ikqS06vQAA</XPD:REF>
+<XPD:REF name="Model">Ru2t2TId7EKKer1B5Bh4ygAA</XPD:REF>
</XPD:OBJ>
-<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="V8kKIY/rIkeAFnUdJAZcmAAA">
+<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="yZARaQPwbECsoJcjo944OwAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
-<XPD:REF name="Model">dc1y69QHY0erA2ikqS06vQAA</XPD:REF>
+<XPD:REF name="Model">Ru2t2TId7EKKer1B5Bh4ygAA</XPD:REF>
</XPD:OBJ>
-<XPD:OBJ name="HeadRoleNameLabel" type="EdgeLabelView" guid="MJPGOp+GK0GOgf3uFm4WnwAA">
+</XPD:OBJ>
+<XPD:OBJ name="OwnedViews[9]" type="UMLRealizationView" guid="HddD7OskDUawRmmKso1H4AAA">
+<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
+<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
+<XPD:ATTR name="Points" type="Points">1251,440;1252,389</XPD:ATTR>
+<XPD:REF name="Model">dbIH+GHwRUqixvEid+eDKwAA</XPD:REF>
+<XPD:REF name="Head">VVDxlDD3CkSYj9RsZOzOswAA</XPD:REF>
+<XPD:REF name="Tail">FaO2byLzMUWW6AO6yRY/TQAA</XPD:REF>
+<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="A8PCB4S79UmJHfY8XzthmAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">dbIH+GHwRUqixvEid+eDKwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="f8ejwNyvgEegb1RYVEgmywAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:REF name="Model">dbIH+GHwRUqixvEid+eDKwAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="1Fuohjb7RUWxHLdhdV1KGgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">dbIH+GHwRUqixvEid+eDKwAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedViews[10]" type="UMLInterfaceView" guid="sGkIEEYdN0Wxcdn+K5UlcQAA">
+<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
+<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
+<XPD:ATTR name="Left" type="integer">1092</XPD:ATTR>
+<XPD:ATTR name="Top" type="integer">124</XPD:ATTR>
+<XPD:ATTR name="Width" type="integer">95</XPD:ATTR>
+<XPD:ATTR name="Height" type="integer">45</XPD:ATTR>
+<XPD:ATTR name="StereotypeDisplay" type="UMLStereotypeDisplayKind">sdkIcon</XPD:ATTR>
+<XPD:REF name="Model">/DSDmvM+WUS8jXPOxuUa6QAA</XPD:REF>
+<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="4zURFxN790OiiVtOtBeRRAAA">
+<XPD:OBJ name="NameLabel" type="LabelView" guid="sO1xxNL3LUOYCNK24W2dowAA">
+<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
+<XPD:ATTR name="Text" type="string">ClientInterface</XPD:ATTR>
+</XPD:OBJ>
+<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="dF4nlefAWUSh3069WM2bOAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+</XPD:OBJ>
+<XPD:OBJ name="PropertyLabel" type="LabelView" guid="oWWFmek+j0uC/uT3iiVSNgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="k9bV4J5xZEKStJENXvdpSgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:REF name="Model">/DSDmvM+WUS8jXPOxuUa6QAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="JSwu43lkBkeQD2zqubYbYgAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:REF name="Model">/DSDmvM+WUS8jXPOxuUa6QAA</XPD:REF>
+</XPD:OBJ>
+</XPD:OBJ>
+<XPD:OBJ name="OwnedViews[11]" type="UMLAssociationView" guid="kghnrvyr5kSs4zM45PdcXAAA">
+<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
+<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
+<XPD:ATTR name="Points" type="Points">1134,168;1070,440</XPD:ATTR>
+<XPD:REF name="Model">TtfSS4IRK0qbZSjPA/pweQAA</XPD:REF>
+<XPD:REF name="Head">JE2eQY//o0GJJu/fNIdFNwAA</XPD:REF>
+<XPD:REF name="Tail">sGkIEEYdN0Wxcdn+K5UlcQAA</XPD:REF>
+<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="f3luD0oic0Ktj/QsbI299gAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">TtfSS4IRK0qbZSjPA/pweQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="1QS8E5m76ES0ck1113Xj1QAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
+<XPD:REF name="Model">TtfSS4IRK0qbZSjPA/pweQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="2Ty7MNIlgUOhd0KVNNue0gAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
+<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
+<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
+<XPD:REF name="Model">TtfSS4IRK0qbZSjPA/pweQAA</XPD:REF>
+</XPD:OBJ>
+<XPD:OBJ name="HeadRoleNameLabel" type="EdgeLabelView" guid="LX/VA+K5O0iqhkkyFmPBJAAA">
+<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-0.523598775598299</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
-<XPD:REF name="Model">rkbdeWhPzkWyu19nF7wljwAA</XPD:REF>
+<XPD:REF name="Model">Zf7vxf5VQ0+YSfgpYQMtLwAA</XPD:REF>
</XPD:OBJ>
-<XPD:OBJ name="TailRoleNameLabel" type="EdgeLabelView" guid="K1UtJOoWGEe0r0dVZvLw/wAA">
+<XPD:OBJ name="TailRoleNameLabel" type="EdgeLabelView" guid="ubBBPxXTzk2pkYuhgQQ4TQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">0.523598775598299</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
-<XPD:REF name="Model">JWv0RD0fvEKOcVJJ6LfXvQAA</XPD:REF>
+<XPD:REF name="Model">a1AoqgETQkmK3FjmVw6fFQAA</XPD:REF>
</XPD:OBJ>
-<XPD:OBJ name="HeadMultiplicityLabel" type="EdgeLabelView" guid="77tjAXZYrUauGmLW4BtZzAAA">
+<XPD:OBJ name="HeadMultiplicityLabel" type="EdgeLabelView" guid="GThNdebJdEGpD03fi7IYrQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">0.523598775598299</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
-<XPD:REF name="Model">rkbdeWhPzkWyu19nF7wljwAA</XPD:REF>
+<XPD:REF name="Model">Zf7vxf5VQ0+YSfgpYQMtLwAA</XPD:REF>
</XPD:OBJ>
-<XPD:OBJ name="TailMultiplicityLabel" type="EdgeLabelView" guid="SERHbQXT3Eq1lZtWaOvndwAA">
+<XPD:OBJ name="TailMultiplicityLabel" type="EdgeLabelView" guid="kw4o4JhWyUmUPNSoxJQKlAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-0.523598775598299</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
-<XPD:REF name="Model">JWv0RD0fvEKOcVJJ6LfXvQAA</XPD:REF>
+<XPD:REF name="Model">a1AoqgETQkmK3FjmVw6fFQAA</XPD:REF>
</XPD:OBJ>
-<XPD:OBJ name="HeadPropertyLabel" type="EdgeLabelView" guid="1o0q1xQEDU+quTKIhgl7tgAA">
+<XPD:OBJ name="HeadPropertyLabel" type="EdgeLabelView" guid="VCK7U3z0o0qzfpBFsMQymQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-0.785398163397448</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
-<XPD:REF name="Model">rkbdeWhPzkWyu19nF7wljwAA</XPD:REF>
+<XPD:REF name="Model">Zf7vxf5VQ0+YSfgpYQMtLwAA</XPD:REF>
</XPD:OBJ>
-<XPD:OBJ name="TailPropertyLabel" type="EdgeLabelView" guid="aHk4Tl9RY0SxR28JtpEeDgAA">
+<XPD:OBJ name="TailPropertyLabel" type="EdgeLabelView" guid="YQPbtB1/EUmn/SQgLGkgAQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">0.785398163397448</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
-<XPD:REF name="Model">JWv0RD0fvEKOcVJJ6LfXvQAA</XPD:REF>
+<XPD:REF name="Model">a1AoqgETQkmK3FjmVw6fFQAA</XPD:REF>
</XPD:OBJ>
-<XPD:OBJ name="HeadQualifierCompartment" type="UMLQualifierCompartmentView" guid="8Ig1nLX1TU+Mi2T4WyOzgwAA">
+<XPD:OBJ name="HeadQualifierCompartment" type="UMLQualifierCompartmentView" guid="23xLoWS37UuJka1IBz2u3AAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">-1000</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">-1000</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
-<XPD:REF name="Model">rkbdeWhPzkWyu19nF7wljwAA</XPD:REF>
+<XPD:REF name="Model">Zf7vxf5VQ0+YSfgpYQMtLwAA</XPD:REF>
</XPD:OBJ>
-<XPD:OBJ name="TailQualifierCompartment" type="UMLQualifierCompartmentView" guid="8RXw2TeCn0SpYMOXC935GwAA">
+<XPD:OBJ name="TailQualifierCompartment" type="UMLQualifierCompartmentView" guid="6fmPdUHB/0+HJw9mxTkG6QAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">-1000</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">-1000</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
-<XPD:REF name="Model">JWv0RD0fvEKOcVJJ6LfXvQAA</XPD:REF>
+<XPD:REF name="Model">a1AoqgETQkmK3FjmVw6fFQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
-<XPD:OBJ name="OwnedViews[9]" type="UMLAssociationView" guid="pdODkp/OMUe3YWfQcF8ohwAA">
+<XPD:OBJ name="OwnedViews[12]" type="UMLAssociationView" guid="J3EDML8GFE69bDJ1Ls5PSwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
-<XPD:ATTR name="Points" type="Points">976,440;657,136</XPD:ATTR>
-<XPD:REF name="Model">g3vP9rbFDE6Je2Q9UgDKFwAA</XPD:REF>
-<XPD:REF name="Head">kbVb0Zi16kyetqFSKMSoDgAA</XPD:REF>
-<XPD:REF name="Tail">JE2eQY//o0GJJu/fNIdFNwAA</XPD:REF>
-<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="VzKF0yyuRU6UdU4VI8aQxwAA">
+<XPD:ATTR name="Points" type="Points">684,117;1092,143</XPD:ATTR>
+<XPD:REF name="Model">QOJQ2S5w6UuCmXZtxm1kVQAA</XPD:REF>
+<XPD:REF name="Head">sGkIEEYdN0Wxcdn+K5UlcQAA</XPD:REF>
+<XPD:REF name="Tail">kbVb0Zi16kyetqFSKMSoDgAA</XPD:REF>
+<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="odoVOcQ5CEykrqL6stetmAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
-<XPD:REF name="Model">g3vP9rbFDE6Je2Q9UgDKFwAA</XPD:REF>
+<XPD:REF name="Model">QOJQ2S5w6UuCmXZtxm1kVQAA</XPD:REF>
</XPD:OBJ>
-<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="003OnY0ouEi5VRhpZLLaTQAA">
+<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="mdJAaZn3a0OuNMYCqch1ugAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
-<XPD:REF name="Model">g3vP9rbFDE6Je2Q9UgDKFwAA</XPD:REF>
+<XPD:REF name="Model">QOJQ2S5w6UuCmXZtxm1kVQAA</XPD:REF>
</XPD:OBJ>
-<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="CwvbERpvAkWv0NyLMWatzwAA">
+<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="NBaIMDWgN0OdrpPyJ06UngAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
-<XPD:REF name="Model">g3vP9rbFDE6Je2Q9UgDKFwAA</XPD:REF>
+<XPD:REF name="Model">QOJQ2S5w6UuCmXZtxm1kVQAA</XPD:REF>
</XPD:OBJ>
-<XPD:OBJ name="HeadRoleNameLabel" type="EdgeLabelView" guid="8hlzs2QP80SAFc0qi9i9fAAA">
+<XPD:OBJ name="HeadRoleNameLabel" type="EdgeLabelView" guid="orb/KAhsr0apqlusT2yZLQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-0.523598775598299</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
-<XPD:REF name="Model">HVRf7+1kKkyJs6h1Y7857wAA</XPD:REF>
+<XPD:REF name="Model">CcpI08sO20+J0mzYHrp8GwAA</XPD:REF>
</XPD:OBJ>
-<XPD:OBJ name="TailRoleNameLabel" type="EdgeLabelView" guid="ph9Md9Opt0aNagYSG35CkQAA">
+<XPD:OBJ name="TailRoleNameLabel" type="EdgeLabelView" guid="/YhX7UMJ8kixILnHWWuo7AAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">0.523598775598299</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
-<XPD:REF name="Model">ZXnX0VzA00GzMXyJXBBUsAAA</XPD:REF>
+<XPD:REF name="Model">lnnYxBVqDkm+P2VSDdgPCQAA</XPD:REF>
</XPD:OBJ>
-<XPD:OBJ name="HeadMultiplicityLabel" type="EdgeLabelView" guid="o+SzfnUKMkC2A3NMwCB6/AAA">
+<XPD:OBJ name="HeadMultiplicityLabel" type="EdgeLabelView" guid="jQh1lju+NEStSA5Nl2BZJgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">0.523598775598299</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
-<XPD:REF name="Model">HVRf7+1kKkyJs6h1Y7857wAA</XPD:REF>
+<XPD:REF name="Model">CcpI08sO20+J0mzYHrp8GwAA</XPD:REF>
</XPD:OBJ>
-<XPD:OBJ name="TailMultiplicityLabel" type="EdgeLabelView" guid="DEHYYX9hQ0mKVjAbdIEOAgAA">
+<XPD:OBJ name="TailMultiplicityLabel" type="EdgeLabelView" guid="9Fx2Aj5HmEiWLaWg50A5ggAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-0.523598775598299</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
-<XPD:REF name="Model">ZXnX0VzA00GzMXyJXBBUsAAA</XPD:REF>
+<XPD:REF name="Model">lnnYxBVqDkm+P2VSDdgPCQAA</XPD:REF>
</XPD:OBJ>
-<XPD:OBJ name="HeadPropertyLabel" type="EdgeLabelView" guid="nKd8ctv3/kessn8ZYUi0JwAA">
+<XPD:OBJ name="HeadPropertyLabel" type="EdgeLabelView" guid="vy7QU+PzuUe4XJdKyEbMVAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-0.785398163397448</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
-<XPD:REF name="Model">HVRf7+1kKkyJs6h1Y7857wAA</XPD:REF>
+<XPD:REF name="Model">CcpI08sO20+J0mzYHrp8GwAA</XPD:REF>
</XPD:OBJ>
-<XPD:OBJ name="TailPropertyLabel" type="EdgeLabelView" guid="XKT0DeDUTU+LRadVmpuDYQAA">
+<XPD:OBJ name="TailPropertyLabel" type="EdgeLabelView" guid="5JaZ9inJpUG4hxFLHE6S5wAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">0.785398163397448</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTa...
[truncated message content] |
|
From: <ali...@us...> - 2010-04-01 20:59:29
|
Revision: 93
http://cruce.svn.sourceforge.net/cruce/?rev=93&view=rev
Author: alinposho
Date: 2010-04-01 20:59:15 +0000 (Thu, 01 Apr 2010)
Log Message:
-----------
am facut si o diagrama UML pentru ierarhia de clase a server-ului. Imaginea am adaugat-o intr-un folder "Documentatie". In acelasi folder
eu propun sa punem si CRC de la intalnirea de azi dimineata.
Modified Paths:
--------------
Java/trunk/src/prc/bubulina/cruce/remote/ClientInterface.java
Added Paths:
-----------
Java/trunk/Documentation/
Java/trunk/Documentation/ServerClass_Diagram.jpg
Added: Java/trunk/Documentation/ServerClass_Diagram.jpg
===================================================================
(Binary files differ)
Property changes on: Java/trunk/Documentation/ServerClass_Diagram.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified: Java/trunk/src/prc/bubulina/cruce/remote/ClientInterface.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/remote/ClientInterface.java 2010-04-01 20:20:26 UTC (rev 92)
+++ Java/trunk/src/prc/bubulina/cruce/remote/ClientInterface.java 2010-04-01 20:59:15 UTC (rev 93)
@@ -17,7 +17,7 @@
* Through this method the client will receive the cards at the beginning of
* the round
* @param cards The list of card sent by the server
- * @return True in case the client accepts the cars. False in case the cient rejects the
+ * @return True in case the client accepts the cars. False in case the client rejects the
* cards
* @throws RemoteException
*/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ali...@us...> - 2010-04-07 15:15:00
|
Revision: 100
http://cruce.svn.sourceforge.net/cruce/?rev=100&view=rev
Author: alinposho
Date: 2010-04-07 15:14:54 +0000 (Wed, 07 Apr 2010)
Log Message:
-----------
Am modificat diagrama de secventa: GameLogicSequenceDiagram.
Modified Paths:
--------------
Java/trunk/Documentation/GameLogicSequenceDiagram.jpg
Java/trunk/src/prc/bubulina/cruce/server/PlayerMap.java
Java/trunk/src/prc/bubulina/cruce/server/RoundLogic.java
Java/trunk/src/prc/bubulina/cruce/server/ServerImplementation.java
Modified: Java/trunk/Documentation/GameLogicSequenceDiagram.jpg
===================================================================
(Binary files differ)
Modified: Java/trunk/src/prc/bubulina/cruce/server/PlayerMap.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/server/PlayerMap.java 2010-04-07 14:12:12 UTC (rev 99)
+++ Java/trunk/src/prc/bubulina/cruce/server/PlayerMap.java 2010-04-07 15:14:54 UTC (rev 100)
@@ -11,31 +11,38 @@
private Map<Player, ServerSidePlayer> data;
private Map<Player, ClientInterface> clients;
private static PlayerMap instance;
+
private PlayerMap() {
data = new HashMap<Player, ServerSidePlayer>();
clients = new HashMap<Player, ClientInterface>();
}
+
public static PlayerMap getInstance() {
if (instance == null)
instance = new PlayerMap();
return instance;
}
+
public void put(ServerSidePlayer ssplayer, ClientInterface client) {
data.put(ssplayer.getInfo(), ssplayer);
clients.put(ssplayer.getInfo(), client);
}
+
public ServerSidePlayer getServerSidePlayer(Player player) {
return data.get(player);
}
+
public ClientInterface getClient(Player player) {
return clients.get(player);
}
+
public Player getPlayer(ClientInterface client) {
for (Entry<Player, ClientInterface> e : clients.entrySet())
if (e.getValue().equals(client))
return e.getKey();
return null;
}
+
public void reset() {
data.clear();
}
Modified: Java/trunk/src/prc/bubulina/cruce/server/RoundLogic.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/server/RoundLogic.java 2010-04-07 14:12:12 UTC (rev 99)
+++ Java/trunk/src/prc/bubulina/cruce/server/RoundLogic.java 2010-04-07 15:14:54 UTC (rev 100)
@@ -9,6 +9,7 @@
public class RoundLogic {
private List<Team> teams;
private Map<Integer, ServerSidePlayer> playerOrder;
+
public RoundLogic(List<Team> teams) {
this.teams = teams;
int i = 0;
@@ -16,15 +17,18 @@
for (ServerSidePlayer p : t.getPlayers())
playerOrder.put(i++, p);
}
- private Team getTeam(ServerSidePlayer player) {
+
+ public Team getTeam(ServerSidePlayer player) {
for (Team t : teams)
if (t.getPlayers().contains(player))
return t;
return null;
}
+
public void startRound() {
sendCards();
}
+
private void sendCards() {
List<Card> givenCards = new LinkedList<Card>();
for (int i = 0; i < 4; i++) {
@@ -32,9 +36,12 @@
List<Card> cards = new LinkedList<Card>();
for (int j = 0; j < 6; j++) {
Card card;
+
do {
card = Card.getRandomCard();
- } while (givenCards.contains(card));
+ }
+ while (givenCards.contains(card));
+
givenCards.add(card);
cards.add(card);
}
Modified: Java/trunk/src/prc/bubulina/cruce/server/ServerImplementation.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/server/ServerImplementation.java 2010-04-07 14:12:12 UTC (rev 99)
+++ Java/trunk/src/prc/bubulina/cruce/server/ServerImplementation.java 2010-04-07 15:14:54 UTC (rev 100)
@@ -12,17 +12,22 @@
public class ServerImplementation implements ServerInterface {
private static ServerImplementation instance;
+
private ServerImplementation() {}
- public static ServerImplementation getInstance() {
+
+ public synchronized static ServerImplementation getInstance() {
if (instance == null)
instance = new ServerImplementation();
return instance;
}
+
private List<Team> teams = new LinkedList<Team>();
private List<ClientInterface> clients = new LinkedList<ClientInterface>();
private StartGameLogic startGameLogic;
private GameLogic gameLogic;
- public boolean sendCards(List<Card> cards, ServerSidePlayer player) {
+
+
+ public synchronized boolean sendCards(List<Card> cards, ServerSidePlayer player) {
ClientInterface client = PlayerMap.getInstance().getClient(player.getInfo());
try {
if (client.receiveCards(cards) == false) {
@@ -39,28 +44,33 @@
}
return true;
}
- public boolean acceptCard(Player sender, Card card) throws RemoteException {
+
+ public synchronized boolean acceptCard(Player sender, Card card) throws RemoteException {
// TODO Auto-generated method stub
return false;
}
- public boolean acceptCard(Player sender, Card card, int anunt) throws RemoteException {
+
+ public synchronized boolean acceptCard(Player sender, Card card, int anunt) throws RemoteException {
// TODO Auto-generated method stub
return false;
}
- public Score getOverallScore() throws RemoteException {
+
+ public synchronized Score getOverallScore() throws RemoteException {
// TODO Auto-generated method stub
return null;
}
- public Player joinGame(String name, ClientInterface client) throws RemoteException {
+ public synchronized Player joinGame(String name, ClientInterface client) throws RemoteException {
ServerSidePlayer ssplayer = startGameLogic.setupPlayer(name, client);
if (ssplayer != null)
return ssplayer.getInfo();
return null;
}
- public void registerForNotifications(ClientInterface callback) throws RemoteException {
+
+ public synchronized void registerForNotifications(ClientInterface callback) throws RemoteException {
clients.add(callback);
}
- public void startGame(Player sender) throws RemoteException {
+
+ public synchronized void startGame(Player sender) throws RemoteException {
startGameLogic.playerReady();
if (startGameLogic.gameReady()) {
for (ClientInterface client : clients)
@@ -68,4 +78,5 @@
gameLogic.startGame(teams);
}
}
+
}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ca...@us...> - 2010-04-20 19:53:20
|
Revision: 122
http://cruce.svn.sourceforge.net/cruce/?rev=122&view=rev
Author: caiusb
Date: 2010-04-20 19:53:14 +0000 (Tue, 20 Apr 2010)
Log Message:
-----------
Am implementat partea in care se primesc cartile. Se intreba user-ul daca ii plac, si se si afiseaza pe ecran.
Modified Paths:
--------------
Java/trunk/src/prc/bubulina/cruce/client/Client.java
Java/trunk/src/prc/bubulina/cruce/client/Game.java
Java/trunk/src/prc/bubulina/cruce/client/TextUI.java
Java/trunk/src/prc/bubulina/cruce/client/UI.java
Java/trunk/test/prc/bubulina/cruce/client/DummyUI.java
Modified: Java/trunk/src/prc/bubulina/cruce/client/Client.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/client/Client.java 2010-04-20 15:30:00 UTC (rev 121)
+++ Java/trunk/src/prc/bubulina/cruce/client/Client.java 2010-04-20 19:53:14 UTC (rev 122)
@@ -15,7 +15,8 @@
import prc.bubulina.cruce.remote.Score;
import prc.bubulina.cruce.remote.ServerInterface;
-public class Client extends UnicastRemoteObject implements ClientInterface, Serializable {
+public class Client extends UnicastRemoteObject implements ClientInterface,
+ Serializable {
/**
*
@@ -42,30 +43,25 @@
String url = "rmi://" + gameServerAddress + "/" + gameServerName;
this.game = game;
-
- //TODO instantiate server
+
try {
server = (ServerInterface) Naming.lookup(url);
} catch (MalformedURLException e) {
- // TODO Auto-generated catch block
e.printStackTrace();
} catch (NotBoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ System.out.println("Server not found!");
}
// TODO this looks weird
try {
- if (game.joinGame()) {
- player = server.joinGame(game.getPlayerName(), this);
- System.out.println(player.getName());
- System.out.println(player);
- }
- game.joinGame();
- game.joinGame();
- if (game.startGame()) {
- System.out.println("Yes");
- server.startGame(player);
- }
+ if (game.joinGame())
+ player = server.joinGame(game.getPlayerName(), this);
+
+ // TODO remove this
+ game.joinGame();
+ game.joinGame();
+
+ if (game.startGame())
+ server.startGame(player);
} catch (RemoteException e) {
e.printStackTrace();
}
@@ -89,14 +85,17 @@
@Override
public void hit() throws RemoteException {
- // TODO Auto-generated method stub
-
+ Card card = game.hit();
+ try {
+ server.acceptCard(player, card);
+ } catch (RemoteException e) {
+ e.printStackTrace();
+ }
}
@Override
public void inform(String information) throws RemoteException {
// TODO Auto-generated method stub
-
}
@Override
Modified: Java/trunk/src/prc/bubulina/cruce/client/Game.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/client/Game.java 2010-04-20 15:30:00 UTC (rev 121)
+++ Java/trunk/src/prc/bubulina/cruce/client/Game.java 2010-04-20 19:53:14 UTC (rev 122)
@@ -49,6 +49,16 @@
}
/**
+ * Gets the card played by the player
+ *
+ * @return the card played
+ */
+ public Card hit() {
+ Card card = ui.playCard();
+ return null;
+ }
+
+ /**
* Anounces the tromph color
*
* @param color
Modified: Java/trunk/src/prc/bubulina/cruce/client/TextUI.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/client/TextUI.java 2010-04-20 15:30:00 UTC (rev 121)
+++ Java/trunk/src/prc/bubulina/cruce/client/TextUI.java 2010-04-20 19:53:14 UTC (rev 122)
@@ -7,6 +7,8 @@
import prc.bubulina.cruce.remote.Color;
public class TextUI extends UI {
+ private List<Card> cards;
+ private Color tromf;
@Override
public void announceWinner(String name) {
@@ -34,9 +36,11 @@
char answer = 'n';
System.out.println(question);
try {
- System.in.skip(System.in.available()); // sar peste ce este in buffer
+ System.in.skip(System.in.available()); // sar peste ce este in
+ // buffer
answer = (char) System.in.read();
- System.in.skip(System.in.available()); // sar peste newline si restul
+ System.in.skip(System.in.available()); // sar peste newline si
+ // restul
} catch (IOException e) {
System.out.println("Error reading input");
}
@@ -52,6 +56,11 @@
}
@Override
+ public Card playCard() {
+ return null;
+ }
+
+ @Override
public void sendMessage(String message) {
// TODO Auto-generated method stub
@@ -59,14 +68,24 @@
@Override
public boolean setCards(List<Card> cards, boolean force) {
- // TODO Auto-generated method stub
- return false;
+ this.cards = cards;
+ showAvailableCards();
+ if (!force)
+ if (askBinaryQuestion("Sunt bune cartile?") == false)
+ return false;
+
+ return true;
}
+ private void showAvailableCards() {
+ for (Card c : cards)
+ System.out.print("[" + c.getColor() + " " + c.getValue() + "], ");
+ System.out.println();
+ }
+
@Override
public void setTromf(Color color) {
- // TODO Auto-generated method stub
-
+ this.tromf = color;
}
@Override
Modified: Java/trunk/src/prc/bubulina/cruce/client/UI.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/client/UI.java 2010-04-20 15:30:00 UTC (rev 121)
+++ Java/trunk/src/prc/bubulina/cruce/client/UI.java 2010-04-20 19:53:14 UTC (rev 122)
@@ -49,6 +49,13 @@
public abstract void putCard(Card card);
/**
+ * Gets the card played by the player.
+ *
+ * @return the card played
+ */
+ public abstract Card playCard();
+
+ /**
* Informs the player about the tromph color.
*
* @param color
@@ -70,9 +77,10 @@
* the name of the winner
*/
public abstract void announceWinner(String name);
-
+
/**
* Sends a message to the user
+ *
* @param message
*/
public abstract void sendMessage(String message);
Modified: Java/trunk/test/prc/bubulina/cruce/client/DummyUI.java
===================================================================
--- Java/trunk/test/prc/bubulina/cruce/client/DummyUI.java 2010-04-20 15:30:00 UTC (rev 121)
+++ Java/trunk/test/prc/bubulina/cruce/client/DummyUI.java 2010-04-20 19:53:14 UTC (rev 122)
@@ -32,6 +32,11 @@
// TODO Auto-generated method stub
}
+
+ @Override
+ public Card playCard() {
+ return null;
+ }
@Override
public void sendMessage(String message) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <hor...@us...> - 2010-04-20 21:26:48
|
Revision: 123
http://cruce.svn.sourceforge.net/cruce/?rev=123&view=rev
Author: horiaradu
Date: 2010-04-20 21:26:41 +0000 (Tue, 20 Apr 2010)
Log Message:
-----------
am implementat metoda inform() de la client ca sa putem vedea chestii pe ecran.
Modified Paths:
--------------
Java/trunk/.project
Java/trunk/src/prc/bubulina/cruce/client/Client.java
Java/trunk/src/prc/bubulina/cruce/client/Game.java
Java/trunk/src/prc/bubulina/cruce/client/TextUI.java
Modified: Java/trunk/.project
===================================================================
--- Java/trunk/.project 2010-04-20 19:53:14 UTC (rev 122)
+++ Java/trunk/.project 2010-04-20 21:26:41 UTC (rev 123)
@@ -1,18 +1,23 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>Cruce</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>net.genady.rmi.RMINature</nature>
- </natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>Cruce</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>net.genady.rmi.RMIBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>net.genady.rmi.RMINature</nature>
+ </natures>
+</projectDescription>
Modified: Java/trunk/src/prc/bubulina/cruce/client/Client.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/client/Client.java 2010-04-20 19:53:14 UTC (rev 122)
+++ Java/trunk/src/prc/bubulina/cruce/client/Client.java 2010-04-20 21:26:41 UTC (rev 123)
@@ -55,11 +55,6 @@
try {
if (game.joinGame())
player = server.joinGame(game.getPlayerName(), this);
-
- // TODO remove this
- game.joinGame();
- game.joinGame();
-
if (game.startGame())
server.startGame(player);
} catch (RemoteException e) {
@@ -95,7 +90,7 @@
@Override
public void inform(String information) throws RemoteException {
- // TODO Auto-generated method stub
+ game.inform(information);
}
@Override
Modified: Java/trunk/src/prc/bubulina/cruce/client/Game.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/client/Game.java 2010-04-20 19:53:14 UTC (rev 122)
+++ Java/trunk/src/prc/bubulina/cruce/client/Game.java 2010-04-20 21:26:41 UTC (rev 123)
@@ -96,4 +96,8 @@
public String getPlayerName() {
return name;
}
+
+ public void inform(String information) {
+ ui.sendMessage(information);
+ }
}
Modified: Java/trunk/src/prc/bubulina/cruce/client/TextUI.java
===================================================================
--- Java/trunk/src/prc/bubulina/cruce/client/TextUI.java 2010-04-20 19:53:14 UTC (rev 122)
+++ Java/trunk/src/prc/bubulina/cruce/client/TextUI.java 2010-04-20 21:26:41 UTC (rev 123)
@@ -62,8 +62,7 @@
@Override
public void sendMessage(String message) {
- // TODO Auto-generated method stub
-
+ System.out.println(message);
}
@Override
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|