package hu.unr.fiber.cardapi; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import javax.persistence.*; import java.util.Objects; @Entity @Table(name = "Card") @JsonIgnoreProperties({"hibernateLazyInitializer", "handler"}) public class Card { public static final long INVALID_ID = 0; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id", updatable = false, nullable = false) private long id = INVALID_ID; private String name; //FIXME: @Pattern([0-9]+) @Column(unique=true) private String number; private String cardHolder; public Card(){ super(); } public Card(long id) { this.id = id; } public Card(long id, String name, String number) { this.id = id; this.name = name; this.number = number; } public long getId() { return id; } public boolean validId() { return (this.getId() != Card.INVALID_ID); } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } public String getCardHolder() { return cardHolder; } public void setCardHolder(String cardHolder) { this.cardHolder = cardHolder; } public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Card card = (Card) o; return id == card.id && name.equals(card.name) && number.equals(card.number) && Objects.equals(cardHolder, card.cardHolder); } public void update(Card otherCard) { this.setName(otherCard.getName()); this.setNumber(otherCard.getNumber()); this.setCardHolder(otherCard.getCardHolder()); } @Override public String toString() { return "#" + this.number + " - " + this.name + " @ " + this.cardHolder; } }