001 /**
002 * Copyright 2005-2014 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.kuali.rice.core.api.util.xml.XmlJotter;
019
020 import javax.persistence.Basic;
021 import javax.persistence.Column;
022 import javax.persistence.Convert;
023 import javax.persistence.Entity;
024 import javax.persistence.FetchType;
025 import javax.persistence.Id;
026 import javax.persistence.Lob;
027 import javax.persistence.NamedQuery;
028 import javax.persistence.Table;
029 import java.io.Serializable;
030 import java.util.Map;
031
032 @Entity
033 @Table(name="KREW_DOC_HDR_CNTNT_T")
034 @NamedQuery(name="DocumentRouteHeaderValueContent.FindByDocumentId", query="select d from "
035 + "DocumentRouteHeaderValueContent as d where d.documentId = :documentId")
036 public class DocumentRouteHeaderValueContent implements Serializable {
037
038 private static final long serialVersionUID = 1L;
039
040 @Id
041 @Column(name="DOC_HDR_ID")
042 private String documentId;
043
044 @Lob
045 @Basic(fetch=FetchType.LAZY)
046 @Column(name="DOC_CNTNT_TXT")
047 @Convert(converter = DocumentContentEncryptionConverter.class)
048 private String documentContent;
049
050 public DocumentRouteHeaderValueContent() {}
051
052 public DocumentRouteHeaderValueContent(String documentId) {
053 this.documentId = documentId;
054 }
055
056 public String getDocumentContent() {
057 return documentContent;
058 }
059 public void setDocumentContent(String documentContent) {
060 this.documentContent = documentContent;
061 }
062 public String getDocumentId() {
063 return documentId;
064 }
065 public void setDocumentId(String documentId) {
066 this.documentId = documentId;
067 }
068
069 public DocumentRouteHeaderValueContent deepCopy(Map<Object, Object> visited) {
070 if (visited.containsKey(this)) {
071 return (DocumentRouteHeaderValueContent)visited.get(this);
072 }
073 DocumentRouteHeaderValueContent copy = new DocumentRouteHeaderValueContent();
074 visited.put(this, copy);
075 copy.documentId = documentId;
076 copy.documentContent = documentContent;
077 return copy;
078 }
079
080 public static org.kuali.rice.kew.api.document.DocumentContent to(DocumentRouteHeaderValueContent content) {
081 if (content == null) {
082 return null;
083 }
084 org.kuali.rice.kew.api.document.DocumentContent.Builder builder = org.kuali.rice.kew.api.document.DocumentContent.Builder.create(content.getDocumentId());
085 // initialize the content fields
086 builder.setApplicationContent("");
087 builder.setAttributeContent("");
088 builder.setSearchableContent("");
089 DocumentContent documentContent = new StandardDocumentContent(content.getDocumentContent());
090 if (documentContent.getApplicationContent() != null) {
091 builder.setApplicationContent(XmlJotter.jotNode(documentContent.getApplicationContent()));
092 }
093 if (documentContent.getAttributeContent() != null) {
094 builder.setAttributeContent(XmlJotter.jotNode(documentContent.getAttributeContent()));
095 }
096 if (documentContent.getSearchableContent() != null) {
097 builder.setSearchableContent(XmlJotter.jotNode(documentContent.getSearchableContent()));
098 }
099 return builder.build();
100 }
101
102 }
103