package hu.unr.fiber.cardapi.entity; import javax.persistence.*; import java.util.Objects; @Entity @Table(name = "Card") public class Card implements CardEntityInterface { 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.setId(id); } public Card(long id, String name, String number) { this.setId(id) .setName(name) .setNumber(number); } public Card(long id, String name, String number, String cardHolder) { this.setId(id) .setName(name) .setNumber(number) .setCardHolder(cardHolder); } public long getId() { return id; } public boolean validId() { return (this.getId() != Card.INVALID_ID); } public Card setId(long id) { this.id = id; return this; } public String getName() { return name; } public Card setName(String name) { this.name = name; return this; } public String getNumber() { return number; } public Card setNumber(String number) { this.number = number; return this; } public String getCardHolder() { return cardHolder; } public Card setCardHolder(String cardHolder) { this.cardHolder = cardHolder; return this; } 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; } }