package net.socialgamer.cah.data;
import java.util.HashMap;
import java.util.Map;
import net.socialgamer.cah.Constants.WhiteCardData;
public abstract class WhiteCard {
public abstract int getId();
public abstract String getText();
public abstract String getWatermark();
public abstract boolean isWriteIn();
@Override
public final boolean equals(final Object other) {
if (!(other instanceof WhiteCard)) {
return false;
}
return ((WhiteCard) other).getId() == getId();
}
@Override
public final int hashCode() {
return getId();
}
/**
* @return Client representation of this card.
*/
public final Map<WhiteCardData, Object> getClientData() {
final Map<WhiteCardData, Object> cardData = new HashMap<WhiteCardData, Object>();
cardData.put(WhiteCardData.ID, getId());
cardData.put(WhiteCardData.TEXT, getText());
cardData.put(WhiteCardData.WATERMARK, getWatermark());
cardData.put(WhiteCardData.WRITE_IN, isWriteIn());
return cardData;
}
/**
* @return Client representation of a face-down White Card.
*/
public static final Map<WhiteCardData, Object> getFaceDownCardClientData() {
final Map<WhiteCardData, Object> cardData = new HashMap<WhiteCardData, Object>();
cardData.put(WhiteCardData.ID, -1);
cardData.put(WhiteCardData.TEXT, "");
cardData.put(WhiteCardData.WATERMARK, "");
cardData.put(WhiteCardData.WRITE_IN, false);
return cardData;
}
@Override
public String toString() {
return String.format("%s %s (id:%d, watermark:%s)", getClass().getName(), getText(), getId(),
getWatermark());
}
}