Fibinger Ádám
2019-03-11 94fead6be729cfb23b657d853c5499709a3d27c4
commit | author | age
94fead 1 package hu.unr.fiber.cardapi.hibernate;
2
3 import hu.unr.fiber.cardapi.interfaces.CardInterface;
37e2b6 4
5 import javax.persistence.*;
ca2732 6 import java.util.Objects;
7
a3ad94 8 @Entity
37e2b6 9 @Table(name = "Card")
94fead 10 public class Card implements CardInterface {
ca2732 11     public static final long INVALID_ID = 0;
a3ad94 12
13     @Id
37e2b6 14     @GeneratedValue(strategy = GenerationType.IDENTITY)
15     @Column(name = "id", updatable = false, nullable = false)
ca2732 16     private long id = INVALID_ID;
9b7a17 17     private String name;
ca2732 18     //FIXME: @Pattern([0-9]+)
464000 19     @Column(unique = true)
9b7a17 20     private String number;
21     private String cardHolder;
22
464000 23     public Card() {
a3ad94 24         super();
25     }
26
9b7a17 27     public Card(long id) {
464000 28         this.setId(id);
9b7a17 29     }
30
464000 31     public Card(long id, String name, String number) {
32         this.setId(id)
33                 .setName(name)
34                 .setNumber(number);
35     }
36
37     public Card(long id, String name, String number, String cardHolder) {
38         this.setId(id)
39                 .setName(name)
40                 .setNumber(number)
41                 .setCardHolder(cardHolder);
9b7a17 42     }
43
44     public long getId() {
45         return id;
ca2732 46     }
47
48     public boolean validId() {
49         return (this.getId() != Card.INVALID_ID);
9b7a17 50     }
51
464000 52     public Card setId(long id) {
9b7a17 53         this.id = id;
464000 54         return this;
9b7a17 55     }
56
57     public String getName() {
58         return name;
59     }
60
464000 61     public Card setName(String name) {
9b7a17 62         this.name = name;
464000 63         return this;
9b7a17 64     }
65
66     public String getNumber() {
67         return number;
68     }
69
464000 70     public Card setNumber(String number) {
9b7a17 71         this.number = number;
464000 72         return this;
9b7a17 73     }
74
75     public String getCardHolder() {
76         return cardHolder;
77     }
78
464000 79     public Card setCardHolder(String cardHolder) {
9b7a17 80         this.cardHolder = cardHolder;
464000 81         return this;
9b7a17 82     }
ca2732 83
84     public boolean equals(Object o) {
85         if (this == o) return true;
86         if (o == null || getClass() != o.getClass()) return false;
87         Card card = (Card) o;
88         return id == card.id &&
89                 name.equals(card.name) &&
90                 number.equals(card.number) &&
91                 Objects.equals(cardHolder, card.cardHolder);
92     }
93
94fead 94     public CardInterface update(CardInterface otherCard) {
ca2732 95         this.setName(otherCard.getName());
96         this.setNumber(otherCard.getNumber());
97         this.setCardHolder(otherCard.getCardHolder());
94fead 98
99         return this;
ca2732 100     }
37e2b6 101
102     @Override
103     public String toString() {
464000 104         return "#" + this.number + " - " + this.name + " @ " + this.cardHolder;
37e2b6 105     }
464000 106 }