Extract DraftCommunicationChannel to be accessed directly.

This commit is contained in:
marcins78
2013-01-18 17:41:11 +00:00
parent 54270471a9
commit d9d5bdae98
6 changed files with 13 additions and 28 deletions

View File

@@ -117,7 +117,7 @@ public class HallRequestHandler extends LotroServerRequestHandler implements Uri
Player resourceOwner = getResourceOwnerSafely(request, participantId);
try {
_hallServer.draftPick(tournamentId, resourceOwner, blueprintId);
_hallServer.getDraft(tournamentId).playerChosenCard(resourceOwner.getName(), blueprintId);
responseWriter.writeXmlResponse(null);
} catch (DraftFinishedException exp) {
responseWriter.writeError(204);
@@ -177,8 +177,8 @@ public class HallRequestHandler extends LotroServerRequestHandler implements Uri
try {
Draft draft = _hallServer.getDraft(_tournamentId);
SerializeDraftVisitor serializeDraftVisitor = new SerializeDraftVisitor(doc, draftElem);
draft.getCommunicationChannel(_player.getName(), _channelNumber).processCommunicationChannel(draft.getCardChoice(_player.getName()), serializeDraftVisitor);
serializeDraftVisitor.chosenCards(draft.getChosenCards(_player));
draft.getCommunicationChannel(_player.getName(), _channelNumber)
.processCommunicationChannel(draft.getCardChoice(_player.getName()), draft.getChosenCards(_player.getName()), serializeDraftVisitor);
doc.appendChild(draftElem);

View File

@@ -68,6 +68,10 @@ public class CollectionsManager {
return _defaultCollection;
}
public CardCollection getPlayerCollection(String playerName, String collectionType) {
return getPlayerCollection(_playerDAO.getPlayer(playerName), collectionType);
}
public CardCollection getPlayerCollection(Player player, String collectionType) {
_readWriteLock.readLock().lock();
try {

View File

@@ -7,7 +7,6 @@ import com.gempukku.lotro.db.vo.CollectionType;
import com.gempukku.lotro.game.CardCollection;
import com.gempukku.lotro.game.DefaultCardCollection;
import com.gempukku.lotro.game.MutableCardCollection;
import com.gempukku.lotro.game.Player;
import com.gempukku.lotro.packs.PacksStorage;
import com.gempukku.lotro.tournament.TournamentCallback;
@@ -80,7 +79,7 @@ public class DefaultDraft implements Draft {
public void signUpForDraft(String playerName, DraftChannelVisitor draftChannelVisitor) {
DraftCommunicationChannel draftCommunicationChannel = new DraftCommunicationChannel(_nextChannelNumber++);
_playerDraftCommunications.put(playerName, draftCommunicationChannel);
draftCommunicationChannel.processCommunicationChannel(getCardChoice(playerName), draftChannelVisitor);
draftCommunicationChannel.processCommunicationChannel(getCardChoice(playerName), getChosenCards(playerName), draftChannelVisitor);
}
public DraftCommunicationChannel getCommunicationChannel(String playerName, int channelNumber) throws SubscriptionExpiredException, SubscriptionConflictException {
@@ -103,8 +102,8 @@ public class DefaultDraft implements Draft {
}
@Override
public CardCollection getChosenCards(Player player) {
return _collectionsManager.getPlayerCollection(player, _collectionType.getCode());
public CardCollection getChosenCards(String playerName) {
return _collectionsManager.getPlayerCollection(playerName, _collectionType.getCode());
}
@Override

View File

@@ -3,7 +3,6 @@ package com.gempukku.lotro.draft;
import com.gempukku.lotro.SubscriptionConflictException;
import com.gempukku.lotro.SubscriptionExpiredException;
import com.gempukku.lotro.game.CardCollection;
import com.gempukku.lotro.game.Player;
import com.gempukku.lotro.tournament.TournamentCallback;
public interface Draft {
@@ -16,7 +15,7 @@ public interface Draft {
public DraftCommunicationChannel getCommunicationChannel(String playerName, int channelNumber) throws SubscriptionExpiredException, SubscriptionConflictException;
public DraftCardChoice getCardChoice(String playerName);
public CardCollection getChosenCards(Player player);
public CardCollection getChosenCards(String player);
public boolean isFinished();
}

View File

@@ -41,7 +41,7 @@ public class DraftCommunicationChannel {
return sb.toString();
}
public void processCommunicationChannel(DraftCardChoice draftCardChoice, DraftChannelVisitor draftChannelVisitor) {
public void processCommunicationChannel(DraftCardChoice draftCardChoice, CardCollection chosenCards, DraftChannelVisitor draftChannelVisitor) {
updateLastAccess();
CardCollection cardCollection = draftCardChoice.getCardCollection();
@@ -53,5 +53,6 @@ public class DraftCommunicationChannel {
draftChannelVisitor.noCardChoice();
_cardChoiceOnClient = null;
}
draftChannelVisitor.chosenCards(chosenCards);
}
}

View File

@@ -339,24 +339,6 @@ public class HallServer extends AbstractServer {
if (draft == null)
throw new DraftFinishedException();
draft.signUpForDraft(player.getName(), draftChannelVisitor);
CardCollection cardCollection = _collectionsManager.getPlayerCollection(player, tournament.getCollectionType().getCode());
draftChannelVisitor.chosenCards(cardCollection);
} finally {
_hallDataAccessLock.readLock().unlock();
}
}
public void draftPick(String tournamentId, Player player, String blueprintId)
throws DraftFinishedException {
_hallDataAccessLock.readLock().lock();
try {
Tournament tournament = _runningTournaments.get(tournamentId);
if (tournament == null)
throw new DraftFinishedException();
Draft draft = tournament.getDraft();
if (draft == null)
throw new DraftFinishedException();
draft.playerChosenCard(player.getName(), blueprintId);
} finally {
_hallDataAccessLock.readLock().unlock();
}