package net.socialgamer.cah.data; import java.util.HashMap; import java.util.Map; import net.socialgamer.cah.Constants.BlackCardData; public abstract class BlackCard { public abstract int getId(); public abstract String getText(); public abstract String getWatermark(); public abstract int getDraw(); public abstract int getPick(); @Override public final boolean equals(final Object other) { if (!(other instanceof BlackCard)) { return false; } return ((BlackCard) other).getId() == getId(); } @Override public final int hashCode() { return getId(); } /** * @return Client representation of this card. */ public final Map<BlackCardData, Object> getClientData() { final Map<BlackCardData, Object> cardData = new HashMap<BlackCardData, Object>(); cardData.put(BlackCardData.ID, getId()); cardData.put(BlackCardData.TEXT, getText()); cardData.put(BlackCardData.DRAW, getDraw()); cardData.put(BlackCardData.PICK, getPick()); cardData.put(BlackCardData.WATERMARK, getWatermark()); return cardData; } @Override public String toString() { return String.format("%s %s (id:%d, draw:%d, pick:%d, watermark:%s)", getClass().getName(), getText(), getId(), getDraw(), getPick(), getWatermark()); } }