package hu.unr.fiber.cardapi.hibernate;
|
|
import hu.unr.fiber.cardapi.interfaces.CardInterface;
|
|
import javax.persistence.*;
|
import java.util.Objects;
|
|
@Entity
|
@Table(name = "Card")
|
public class Card implements CardInterface {
|
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 CardInterface update(CardInterface otherCard) {
|
this.setName(otherCard.getName());
|
this.setNumber(otherCard.getNumber());
|
this.setCardHolder(otherCard.getCardHolder());
|
|
return this;
|
}
|
|
@Override
|
public String toString() {
|
return "#" + this.number + " - " + this.name + " @ " + this.cardHolder;
|
}
|
}
|