package com.flexpoker.model.card; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; public class Card implements Comparable<Card> { private final int id; private final CardRank cardRank; private final CardSuit cardSuit; @JsonCreator public Card(@JsonProperty(value = "id") int id, @JsonProperty(value = "cardRank") CardRank cardRank, @JsonProperty(value = "cardSuit") CardSuit cardSuit) { this.id = id; this.cardRank = cardRank; this.cardSuit = cardSuit; } public int getId() { return id; } public CardRank getCardRank() { return cardRank; } public CardSuit getCardSuit() { return cardSuit; } @Override public int compareTo(Card otherCard) { return cardRank.compareTo(otherCard.cardRank); } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + id; return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Card other = (Card) obj; if (id != other.id) return false; return true; } }