1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.kns.document.authorization;
17
18 import java.sql.Timestamp;
19 import java.util.LinkedHashMap;
20
21 import javax.persistence.Column;
22 import javax.persistence.Entity;
23 import javax.persistence.Id;
24 import javax.persistence.Table;
25 import javax.persistence.Transient;
26
27 import org.kuali.rice.kim.bo.Person;
28 import org.kuali.rice.kim.bo.impl.PersonImpl;
29 import org.kuali.rice.kns.bo.PersistableBusinessObjectBase;
30 import org.kuali.rice.kns.service.KNSServiceLocator;
31
32
33
34
35
36
37
38
39
40
41
42 @Entity
43 @Table(name="KRNS_PESSIMISTIC_LOCK_T")
44 public class PessimisticLock extends PersistableBusinessObjectBase {
45
46 private static final long serialVersionUID = -5210762282545093555L;
47
48 public static final String DEFAULT_LOCK_DESCRIPTOR = null;
49
50
51 @Id
52 @Column(name="PESSIMISTIC_LOCK_ID")
53 private Long id;
54
55 @Column(name="PRNCPL_ID")
56 private String ownedByPrincipalIdentifier;
57
58 @Column(name="LOCK_DESC_TXT")
59 private String lockDescriptor;
60
61 @Column(name="GNRT_DT")
62 private Timestamp generatedTimestamp;
63
64 @Column(name="DOC_HDR_ID")
65 private String documentNumber;
66
67 @Transient
68 private Person ownedByUser;
69
70
71
72
73
74
75
76 @Deprecated
77 public PessimisticLock() {}
78
79
80
81
82 public PessimisticLock(String documentNumber, String lockDescriptor, Person user) {
83 this.documentNumber = documentNumber;
84 this.ownedByPrincipalIdentifier = user.getPrincipalId();
85 this.lockDescriptor = lockDescriptor;
86 this.generatedTimestamp = KNSServiceLocator.getDateTimeService().getCurrentTimestamp();
87 }
88
89 public boolean isOwnedByUser(Person user) {
90 return user.getPrincipalId().equals(getOwnedByPrincipalIdentifier());
91 }
92
93
94
95
96 public Long getId() {
97 return this.id;
98 }
99
100
101
102
103 public void setId(Long id) {
104 this.id = id;
105 }
106
107
108
109
110 public String getOwnedByPrincipalIdentifier() {
111 return this.ownedByPrincipalIdentifier;
112 }
113
114
115
116
117 public void setOwnedByPrincipalIdentifier(String ownedByPrincipalIdentifier) {
118 this.ownedByPrincipalIdentifier = ownedByPrincipalIdentifier;
119 }
120
121
122
123
124 public String getLockDescriptor() {
125 return this.lockDescriptor;
126 }
127
128
129
130
131 public void setLockDescriptor(String lockDescriptor) {
132 this.lockDescriptor = lockDescriptor;
133 }
134
135
136
137
138 public Timestamp getGeneratedTimestamp() {
139 return this.generatedTimestamp;
140 }
141
142
143
144
145 public void setGeneratedTimestamp(Timestamp generatedTimestamp) {
146 this.generatedTimestamp = generatedTimestamp;
147 }
148
149
150
151
152 public String getDocumentNumber() {
153 return this.documentNumber;
154 }
155
156
157
158
159 public void setDocumentNumber(String documentNumber) {
160 this.documentNumber = documentNumber;
161 }
162
163
164
165
166 public Person getOwnedByUser() {
167 ownedByUser = org.kuali.rice.kim.service.KIMServiceLocator.getPersonService().updatePersonIfNecessary(ownedByPrincipalIdentifier, ownedByUser);
168 return ownedByUser;
169 }
170
171
172
173
174 public void setOwnedByUser(Person ownedByUser) {
175 this.ownedByUser = ownedByUser;
176 }
177
178
179
180
181
182
183
184 @Override
185 protected LinkedHashMap toStringMapper() {
186 LinkedHashMap m = new LinkedHashMap();
187 m.put("id", this.id);
188 m.put("ownedByPrincipalIdentifier", this.ownedByPrincipalIdentifier);
189 m.put("lockDescriptor", this.lockDescriptor);
190 m.put("generatedTimestamp", this.generatedTimestamp);
191 m.put("documentNumber", this.documentNumber);
192 return m;
193 }
194 }
195