Transfer DAO is now caching the information about undelivered packages.
This commit is contained in:
@@ -0,0 +1,40 @@
|
|||||||
|
package com.gempukku.lotro.collection;
|
||||||
|
|
||||||
|
import com.gempukku.lotro.game.CardCollection;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
public class CachedTransferDAO implements TransferDAO {
|
||||||
|
private TransferDAO _delegate;
|
||||||
|
private Set<String> _playersWithoutDelivery = Collections.synchronizedSet(new HashSet<String>());
|
||||||
|
|
||||||
|
public CachedTransferDAO(TransferDAO delegate) {
|
||||||
|
_delegate = delegate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasUndeliveredPackages(String player) {
|
||||||
|
if (_playersWithoutDelivery.contains(player))
|
||||||
|
return false;
|
||||||
|
boolean value = _delegate.hasUndeliveredPackages(player);
|
||||||
|
if (!value)
|
||||||
|
_playersWithoutDelivery.add(player);
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, ? extends CardCollection> consumeUndeliveredPackages(String player) {
|
||||||
|
return _delegate.consumeUndeliveredPackages(player);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addTransferTo(boolean notifyPlayer, String player, String reason, String collectionName, int currency, CardCollection items) {
|
||||||
|
if (notifyPlayer)
|
||||||
|
_playersWithoutDelivery.remove(player);
|
||||||
|
_delegate.addTransferTo(notifyPlayer, player, reason, collectionName, currency, items);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addTransferFrom(String player, String reason, String collectionName, int currency, CardCollection items) {
|
||||||
|
_delegate.addTransferFrom(player, reason, collectionName, currency, items);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.gempukku.lotro.server.provider;
|
package com.gempukku.lotro.server.provider;
|
||||||
|
|
||||||
|
import com.gempukku.lotro.collection.CachedTransferDAO;
|
||||||
import com.gempukku.lotro.collection.CollectionSerializer;
|
import com.gempukku.lotro.collection.CollectionSerializer;
|
||||||
import com.gempukku.lotro.collection.TransferDAO;
|
import com.gempukku.lotro.collection.TransferDAO;
|
||||||
import com.gempukku.lotro.db.*;
|
import com.gempukku.lotro.db.*;
|
||||||
@@ -29,6 +30,9 @@ public class DaoBuilder {
|
|||||||
objectMap.put(DeckDAO.class, new DbDeckDAO(dbAccess, library));
|
objectMap.put(DeckDAO.class, new DbDeckDAO(dbAccess, library));
|
||||||
objectMap.put(CollectionDAO.class, new DbCollectionDAO(dbAccess, collectionSerializer));
|
objectMap.put(CollectionDAO.class, new DbCollectionDAO(dbAccess, collectionSerializer));
|
||||||
objectMap.put(PlayerDAO.class, new DbPlayerDAO(dbAccess));
|
objectMap.put(PlayerDAO.class, new DbPlayerDAO(dbAccess));
|
||||||
objectMap.put(TransferDAO.class, new DbTransferDAO(dbAccess));
|
|
||||||
|
DbTransferDAO dbTransferDao = new DbTransferDAO(dbAccess);
|
||||||
|
CachedTransferDAO transferDao = new CachedTransferDAO(dbTransferDao);
|
||||||
|
objectMap.put(TransferDAO.class, transferDao);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user