1
2
3
4
5
6 package org.weda.domain;
7
8 import java.io.Serializable;
9 import java.sql.Date;
10 import javax.persistence.Column;
11 import javax.persistence.Entity;
12 import javax.persistence.EntityListeners;
13 import javax.persistence.GeneratedValue;
14 import javax.persistence.GenerationType;
15 import javax.persistence.Id;
16 import javax.persistence.OneToOne;
17 import javax.persistence.PrePersist;
18 import org.apache.commons.beanutils.BeanUtils;
19 import org.apache.commons.lang.ObjectUtils;
20 import org.weda.property.annotations.ConstraintId;
21 import org.weda.property.annotations.Constraints;
22 import org.weda.property.annotations.Description;
23 import org.weda.store.Auditable;
24
25 @Entity
26 @EntityListeners(CompanyListener.class)
27
28 public class Company implements Serializable, Auditable {
29 private Long id;
30 private String name;
31 private String comment;
32 private String dsc;
33 private Address address;
34 private Integer employeCount;
35 private Date foundationDate;
36
37 @Id @GeneratedValue(strategy=GenerationType.AUTO)
38 @Description(displayName="s/n")
39 public Long getId() {
40 return id;
41 }
42
43 public void setId(Long id) {
44 this.id = id;
45 }
46
47 @Description(displayName="message:displayName")
48 @Constraints({
49 @ConstraintId("notNull")
50 })
51 public String getName() {
52 return name;
53 }
54
55 public void setName(String name) {
56 this.name = name;
57 }
58
59 @Description(displayName="Комментарий")
60 @Column(name="descr")
61 public String getComment() {
62 return comment;
63 }
64
65 public void setComment(String comment) {
66 this.comment = comment;
67 }
68
69 public String getDsc() {
70 return dsc;
71 }
72
73 public void setDsc(String dsc) {
74 this.dsc = dsc;
75 }
76 @OneToOne()
77 @Description(displayName="Юридический адрес компании")
78 @Constraints({
79 @ConstraintId("address")
80 })
81 public Address getAddress() {
82 return address;
83 }
84
85 public void setAddress(Address address) {
86 this.address = address;
87 }
88
89 public String toString(){
90 return name;
91 }
92
93 @Description(displayName="Количество сотрудников")
94 public Integer getEmployeCount() {
95 return employeCount;
96 }
97
98 public void setEmployeCount(Integer employeCount) {
99 this.employeCount = employeCount;
100 }
101
102 @Description(displayName="Дата основания", pattern="dd.MM.yyyy")
103 public Date getFoundationDate() {
104 return foundationDate;
105 }
106
107 public void setFoundationDate(Date foundationDate) {
108 this.foundationDate = foundationDate;
109 }
110
111 public boolean equals(Object o){
112 if (o instanceof Company){
113 return ObjectUtils.equals(id, ((Company)o).getId());
114 }else
115 return false;
116 }
117
118 public int hashCode() {
119 return id.hashCode();
120 }
121
122 @PrePersist()
123 public void beforePersist() {
124 foundationDate = new Date(System.currentTimeMillis());
125 }
126
127
128 }