001 /**
002 * Copyright 2005-2012 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.documentlink;
017
018 import java.io.Serializable;
019
020 import javax.persistence.Column;
021 import javax.persistence.Entity;
022 import javax.persistence.GeneratedValue;
023 import javax.persistence.Id;
024 import javax.persistence.Table;
025
026 import org.hibernate.annotations.GenericGenerator;
027 import org.hibernate.annotations.Parameter;
028 import org.kuali.rice.core.framework.persistence.jpa.OrmUtils;
029 import org.kuali.rice.kew.api.document.DocumentLinkContract;
030 import org.kuali.rice.kew.service.KEWServiceLocator;
031
032 /**
033 * Server side bean for DocumentLinkDAO
034 *
035 * @author Kuali Rice Team (kuali-rice@googlegroups.com)
036 *
037 */
038
039 @Entity
040 @Table(name="KREW_DOC_LNK_T")
041 //@Sequence(name="KREW_DOC_LNK_S",property="docLinkId")
042 public class DocumentLink implements Serializable, DocumentLinkContract {
043
044 private static final long serialVersionUID = 551926904795633010L;
045
046 @Id
047 @GeneratedValue(generator="KREW_DOC_LNK_S")
048 @GenericGenerator(name="KREW_DOC_LNK_S",strategy="org.hibernate.id.enhanced.SequenceStyleGenerator",parameters={
049 @Parameter(name="sequence_name",value="KREW_DOC_LNK_S"),
050 @Parameter(name="value_column",value="id")
051 })
052 @Column(name="DOC_LNK_ID")
053 private String docLinkId;
054 @Column(name="ORGN_DOC_ID")
055 private String orgnDocId;
056 @Column(name="DEST_DOC_ID")
057 private String destDocId;
058
059 /**
060 * @return the docLinkId
061 */
062 public String getDocLinkId() {
063 return this.docLinkId;
064 }
065
066 /**
067 * @param docLinkId the docLinkId to set
068 */
069 public void setDocLinkId(String docLinkId) {
070 this.docLinkId = docLinkId;
071 }
072
073 /**
074 * @return the orgnDocId
075 */
076 public String getOrgnDocId() {
077 return this.orgnDocId;
078 }
079
080 /**
081 * @param orgnDocId the orgnDocId to set
082 */
083 public void setOrgnDocId(String orgnDocId) {
084 this.orgnDocId = orgnDocId;
085 }
086
087 /**
088 * @return the destDocId
089 */
090 public String getDestDocId() {
091 return this.destDocId;
092 }
093
094 /**
095 * @param destDocId the destDocId to set
096 */
097 public void setDestDocId(String destDocId) {
098 this.destDocId = destDocId;
099 }
100
101 //@PrePersist
102 public void beforeInsert(){
103 OrmUtils.populateAutoIncValue(this, KEWServiceLocator.getEntityManagerFactory().createEntityManager());
104 }
105
106 // new contract methods for Rice 2.0
107
108 @Override
109 public String getId() {
110 if (getDocLinkId() == null) {
111 return null;
112 }
113 return getDocLinkId().toString();
114 }
115
116 @Override
117 public String getOriginatingDocumentId() {
118 return getOrgnDocId();
119 }
120
121 @Override
122 public String getDestinationDocumentId() {
123 return getDestDocId();
124 }
125
126 public static org.kuali.rice.kew.api.document.DocumentLink to(DocumentLink documentLinkBo) {
127 if (documentLinkBo == null) {
128 return null;
129 }
130 return org.kuali.rice.kew.api.document.DocumentLink.Builder.create(documentLinkBo).build();
131 }
132
133 public static DocumentLink from(org.kuali.rice.kew.api.document.DocumentLink documentLink) {
134 if (documentLink == null) {
135 return null;
136 }
137 DocumentLink documentLinkBo = new DocumentLink();
138 if (documentLink.getId() != null) {
139 documentLinkBo.setDocLinkId(documentLink.getId());
140 }
141 documentLinkBo.setOrgnDocId(documentLink.getOriginatingDocumentId());
142 documentLinkBo.setDestDocId(documentLink.getDestinationDocumentId());
143 return documentLinkBo;
144 }
145
146 }