001 /** 002 * Copyright 2005-2013 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package org.kuali.rice.kew.routeheader; 017 018 import org.bouncycastle.ocsp.OCSPReqGenerator; 019 import org.hibernate.annotations.GenericGenerator; 020 import org.hibernate.annotations.Parameter; 021 import org.joda.time.DateTime; 022 import org.kuali.rice.krad.bo.PersistableBusinessObjectBase; 023 024 import javax.persistence.*; 025 import java.sql.Timestamp; 026 027 028 /** 029 * Model bean representing the valid application document statuses for a document type 030 * 031 * @author Kuali Rice Team (kuali-rice@googlegroups.com) 032 * 033 */ 034 @Entity 035 @Table(name="KREW_APP_DOC_STAT_TRAN_T") 036 public class DocumentStatusTransition extends PersistableBusinessObjectBase { 037 private static final long serialVersionUID = -2212481684546954746L; 038 039 @Id 040 @GeneratedValue(generator="KREW_DOC_HDR_S") 041 @GenericGenerator(name="KREW_DOC_HDR_S",strategy="org.hibernate.id.enhanced.SequenceStyleGenerator",parameters={ 042 @Parameter(name="sequence_name",value="KREW_DOC_HDR_S"), 043 @Parameter(name="value_column",value="id") 044 }) 045 @Column(name="APP_DOC_STAT_TRAN_ID") 046 private String statusTransitionId; 047 048 @Column(name="DOC_HDR_ID") 049 private String documentId; 050 051 @Column(name="APP_DOC_STAT_FROM") 052 private String oldAppDocStatus; 053 054 @Column(name="APP_DOC_STAT_TO") 055 private String newAppDocStatus; 056 057 @Column(name="STAT_TRANS_DATE") 058 private java.sql.Timestamp statusTransitionDate; 059 060 public DocumentStatusTransition() { 061 } 062 063 public DocumentStatusTransition(String documentId, String oldStatus, String newStatus) { 064 this.documentId = documentId; 065 this.oldAppDocStatus = oldStatus; 066 this.newAppDocStatus = newStatus; 067 this.statusTransitionDate = new Timestamp(System.currentTimeMillis()); 068 } 069 070 public String getStatusTransitionId() { 071 return this.statusTransitionId; 072 } 073 074 public void setStatusTransitionId(String statusTransitionId) { 075 this.statusTransitionId = statusTransitionId; 076 } 077 078 public String getDocumentId() { 079 return this.documentId; 080 } 081 082 public void setDocumentId(String documentId) { 083 this.documentId = documentId; 084 } 085 086 public String getOldAppDocStatus() { 087 return this.oldAppDocStatus; 088 } 089 090 public void setOldAppDocStatus(String oldAppDocStatus) { 091 this.oldAppDocStatus = oldAppDocStatus; 092 } 093 094 public String getNewAppDocStatus() { 095 return this.newAppDocStatus; 096 } 097 098 public void setNewAppDocStatus(String newAppDocStatus) { 099 this.newAppDocStatus = newAppDocStatus; 100 } 101 102 public java.sql.Timestamp getStatusTransitionDate() { 103 return this.statusTransitionDate; 104 } 105 106 public void setStatusTransitionDate(java.sql.Timestamp statusTransitionDate) { 107 this.statusTransitionDate = statusTransitionDate; 108 } 109 110 public static DocumentStatusTransition from(org.kuali.rice.kew.api.document.DocumentStatusTransition im) { 111 if (im == null) { 112 return null; 113 } 114 DocumentStatusTransition transition = new DocumentStatusTransition(im.getDocumentId(), im.getOldStatus(), im.getNewStatus()); 115 transition.setStatusTransitionId(im.getId()); 116 if (im.getStatusTransitionDate() != null) { 117 transition.setStatusTransitionDate(new Timestamp(im.getStatusTransitionDate().getMillis())); 118 } 119 return transition; 120 } 121 122 public static org.kuali.rice.kew.api.document.DocumentStatusTransition to(DocumentStatusTransition bo) { 123 if (bo == null) { 124 return null; 125 } 126 127 org.kuali.rice.kew.api.document.DocumentStatusTransition.Builder builder = org.kuali.rice.kew.api.document.DocumentStatusTransition.Builder.create(bo.getDocumentId(), bo.getOldAppDocStatus(), bo.getNewAppDocStatus()); 128 builder.setId(bo.getStatusTransitionId()); 129 if (bo.getStatusTransitionDate() != null) { 130 builder.setStatusTransitionDate(new DateTime(bo.getStatusTransitionDate().getTime())); 131 } 132 return builder.build(); 133 } 134 }