1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.kew.routeheader;
17
18 import org.joda.time.DateTime;
19 import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
20
21 import javax.persistence.Column;
22 import javax.persistence.Entity;
23 import javax.persistence.GeneratedValue;
24 import javax.persistence.Id;
25 import javax.persistence.JoinColumn;
26 import javax.persistence.ManyToOne;
27 import javax.persistence.Table;
28 import java.sql.Timestamp;
29 import java.util.Map;
30
31
32
33
34
35
36
37 @Entity
38 @Table(name="KREW_APP_DOC_STAT_TRAN_T")
39 public class DocumentStatusTransition extends PersistableBusinessObjectBase {
40 private static final long serialVersionUID = -2212481684546954746L;
41
42 @Id
43 @GeneratedValue(generator="KREW_DOC_HDR_S")
44 @Column(name="APP_DOC_STAT_TRAN_ID")
45 private String statusTransitionId;
46
47 @Column(name="DOC_HDR_ID")
48 private String documentId;
49
50 @Column(name="APP_DOC_STAT_FROM")
51 private String oldAppDocStatus;
52
53 @Column(name="APP_DOC_STAT_TO")
54 private String newAppDocStatus;
55
56 @Column(name="STAT_TRANS_DATE")
57 private java.sql.Timestamp statusTransitionDate;
58
59 @ManyToOne
60 @JoinColumn(name="DOC_HDR_ID", insertable = false, updatable = false)
61 private DocumentRouteHeaderValue documentRouteHeaderValue;
62
63 public DocumentStatusTransition() {
64 }
65
66 public DocumentStatusTransition(String documentId, String oldStatus, String newStatus) {
67 this.documentId = documentId;
68 this.oldAppDocStatus = oldStatus;
69 this.newAppDocStatus = newStatus;
70 this.statusTransitionDate = new Timestamp(System.currentTimeMillis());
71 }
72
73 public String getStatusTransitionId() {
74 return this.statusTransitionId;
75 }
76
77 public void setStatusTransitionId(String statusTransitionId) {
78 this.statusTransitionId = statusTransitionId;
79 }
80
81 public String getDocumentId() {
82 return this.documentId;
83 }
84
85 public void setDocumentId(String documentId) {
86 this.documentId = documentId;
87 }
88
89 public String getOldAppDocStatus() {
90 return this.oldAppDocStatus;
91 }
92
93 public void setOldAppDocStatus(String oldAppDocStatus) {
94 this.oldAppDocStatus = oldAppDocStatus;
95 }
96
97 public String getNewAppDocStatus() {
98 return this.newAppDocStatus;
99 }
100
101 public void setNewAppDocStatus(String newAppDocStatus) {
102 this.newAppDocStatus = newAppDocStatus;
103 }
104
105 public java.sql.Timestamp getStatusTransitionDate() {
106 return this.statusTransitionDate;
107 }
108
109 public void setStatusTransitionDate(java.sql.Timestamp statusTransitionDate) {
110 this.statusTransitionDate = statusTransitionDate;
111 }
112
113 public DocumentStatusTransition deepCopy(Map<Object, Object> visited) {
114 if (visited.containsKey(this)) {
115 return (DocumentStatusTransition)visited.get(this);
116 }
117 DocumentStatusTransition copy = new DocumentStatusTransition();
118 visited.put(this, copy);
119 copy.statusTransitionId = statusTransitionId;
120 copy.documentId = documentId;
121 copy.oldAppDocStatus = oldAppDocStatus;
122 copy.newAppDocStatus = newAppDocStatus;
123 if (statusTransitionDate != null) {
124 copy.statusTransitionDate = new Timestamp(statusTransitionDate.getTime());
125 }
126 if (documentRouteHeaderValue != null) {
127 copy.documentRouteHeaderValue = documentRouteHeaderValue.deepCopy(visited);
128 }
129 return copy;
130 }
131
132 public static DocumentStatusTransition from(org.kuali.rice.kew.api.document.DocumentStatusTransition im) {
133 if (im == null) {
134 return null;
135 }
136 DocumentStatusTransition transition = new DocumentStatusTransition(im.getDocumentId(), im.getOldStatus(), im.getNewStatus());
137 transition.setStatusTransitionId(im.getId());
138 if (im.getStatusTransitionDate() != null) {
139 transition.setStatusTransitionDate(new Timestamp(im.getStatusTransitionDate().getMillis()));
140 }
141 return transition;
142 }
143
144 public static org.kuali.rice.kew.api.document.DocumentStatusTransition to(DocumentStatusTransition bo) {
145 if (bo == null) {
146 return null;
147 }
148
149 org.kuali.rice.kew.api.document.DocumentStatusTransition.Builder builder = org.kuali.rice.kew.api.document.DocumentStatusTransition.Builder.create(bo.getDocumentId(), bo.getOldAppDocStatus(), bo.getNewAppDocStatus());
150 builder.setId(bo.getStatusTransitionId());
151 if (bo.getStatusTransitionDate() != null) {
152 builder.setStatusTransitionDate(new DateTime(bo.getStatusTransitionDate().getTime()));
153 }
154 return builder.build();
155 }
156
157 public DocumentRouteHeaderValue getDocumentRouteHeaderValue() {
158 return documentRouteHeaderValue;
159 }
160
161 public void setDocumentRouteHeaderValue(DocumentRouteHeaderValue documentRouteHeaderValue) {
162 this.documentRouteHeaderValue = documentRouteHeaderValue;
163 }
164 }