001 /** 002 * Copyright 2010 The Kuali Foundation Licensed under the 003 * Educational Community License, Version 2.0 (the "License"); you may 004 * not use this file except in compliance with the License. You may 005 * obtain a copy of the License at 006 * 007 * http://www.osedu.org/licenses/ECL-2.0 008 * 009 * Unless required by applicable law or agreed to in writing, 010 * software distributed under the License is distributed on an "AS IS" 011 * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 012 * or implied. See the License for the specific language governing 013 * permissions and limitations under the License. 014 */ 015 016 package org.kuali.student.lum.lu.dto; 017 018 import java.io.Serializable; 019 import java.util.Date; 020 import java.util.HashMap; 021 import java.util.Map; 022 023 import javax.xml.bind.annotation.XmlAccessType; 024 import javax.xml.bind.annotation.XmlAccessorType; 025 import javax.xml.bind.annotation.XmlAttribute; 026 import javax.xml.bind.annotation.XmlElement; 027 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; 028 029 import org.kuali.student.common.dto.HasAttributes; 030 import org.kuali.student.common.dto.HasTypeState; 031 import org.kuali.student.common.dto.Idable; 032 import org.kuali.student.common.dto.MetaInfo; 033 import org.kuali.student.common.dto.RichTextInfo; 034 import org.kuali.student.core.ws.binding.JaxbAttributeMapListAdapter; 035 036 /** 037 *Information about the LU to document relation. 038 */ 039 @XmlAccessorType(XmlAccessType.FIELD) 040 public class LuDocRelationInfo implements Serializable, Idable, HasTypeState, HasAttributes { 041 042 private static final long serialVersionUID = 1L; 043 044 @XmlElement 045 private String cluId; 046 047 @XmlElement 048 private String documentId; 049 050 @XmlElement 051 private String title; 052 053 @XmlElement 054 private RichTextInfo desc; 055 056 @XmlElement 057 private Date effectiveDate; 058 059 @XmlElement 060 private Date expirationDate; 061 062 @XmlElement 063 @XmlJavaTypeAdapter(JaxbAttributeMapListAdapter.class) 064 private Map<String, String> attributes; 065 066 @XmlElement 067 private MetaInfo metaInfo; 068 069 @XmlAttribute 070 private String type; 071 072 @XmlAttribute 073 private String state; 074 075 @XmlAttribute 076 private String id; 077 078 /** 079 * Unique identifier for a Canonical Learning Unit (CLU). 080 */ 081 public String getCluId() { 082 return cluId; 083 } 084 085 public void setCluId(String cluId) { 086 this.cluId = cluId; 087 } 088 089 /** 090 * Unique identifier for a document. 091 */ 092 public String getDocumentId() { 093 return documentId; 094 } 095 096 public void setDocumentId(String documentId) { 097 this.documentId = documentId; 098 } 099 100 /** 101 * The title of the document usage in the context of the CLU. 102 */ 103 public String getTitle() { 104 return title; 105 } 106 107 public void setTitle(String title) { 108 this.title = title; 109 } 110 111 /** 112 * The description of the document usage in the context of the CLU. 113 */ 114 public RichTextInfo getDesc() { 115 return desc; 116 } 117 118 public void setDesc(RichTextInfo desc) { 119 this.desc = desc; 120 } 121 122 /** 123 * Date and time that this LU Doc Relation became effective. This is a similar concept to the effective date on enumerated values. When an expiration date has been specified, this field must be less than or equal to the expiration date. 124 */ 125 public Date getEffectiveDate() { 126 return effectiveDate; 127 } 128 129 public void setEffectiveDate(Date effectiveDate) { 130 this.effectiveDate = effectiveDate; 131 } 132 133 /** 134 * Date and time that this LU Doc Relation expires. This is a similar concept to the expiration date on enumerated values. If specified, this should be greater than or equal to the effective date. If this field is not specified, then no expiration date has been currently defined and should automatically be considered greater than the effective date. 135 */ 136 public Date getExpirationDate() { 137 return expirationDate; 138 } 139 140 public void setExpirationDate(Date expirationDate) { 141 this.expirationDate = expirationDate; 142 } 143 144 /** 145 * List of key/value pairs, typically used for dynamic attributes. 146 */ 147 public Map<String, String> getAttributes() { 148 if (attributes == null) { 149 attributes = new HashMap<String, String>(); 150 } 151 return attributes; 152 } 153 154 public void setAttributes(Map<String, String> attributes) { 155 this.attributes = attributes; 156 } 157 158 /** 159 * Create and last update info for the structure. This is optional and treated as read only since the data is set by the internals of the service during maintenance operations. 160 */ 161 public MetaInfo getMetaInfo() { 162 return metaInfo; 163 } 164 165 public void setMetaInfo(MetaInfo metaInfo) { 166 this.metaInfo = metaInfo; 167 } 168 169 /** 170 * Unique identifier for an LU document relationship type. Describes the type of usage of the document. 171 */ 172 public String getType() { 173 return type; 174 } 175 176 public void setType(String type) { 177 this.type = type; 178 } 179 180 /** 181 * The current status of the LU to document relationship. The values for this field are constrained to those in the luDocRelationState enumeration. A separate setup operation does not exist for retrieval of the meta data around this value. 182 */ 183 public String getState() { 184 return state; 185 } 186 187 public void setState(String state) { 188 this.state = state; 189 } 190 191 /** 192 * Unique identifier for a LU to document relation. This is optional, due to the identifier being set at the time of creation. Once the connection has been created, this should be seen as required. 193 */ 194 public String getId() { 195 return id; 196 } 197 198 public void setId(String id) { 199 this.id = id; 200 } 201 }