1   /*
2    * Company.java
3    * Created on 14 Август 2005 г., 0:28
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  //@org.hibernate.annotations.Entity(dynamicUpdate=true)
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 }