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.Idable; 031 import org.kuali.student.common.dto.MetaInfo; 032 import org.kuali.student.core.ws.binding.JaxbAttributeMapListAdapter; 033 034 035 /** 036 *Detailed information about a single LUI. 037 */ 038 @XmlAccessorType(XmlAccessType.FIELD) 039 public class LuiInfo implements Serializable, Idable, HasAttributes { 040 041 private static final long serialVersionUID = 1L; 042 043 @XmlElement 044 private String luiCode; 045 046 @XmlElement 047 private String cluId; 048 049 @XmlElement(name="atpKey") 050 private String atpId; 051 052 @XmlElement 053 private Integer maxSeats; 054 055 @XmlElement 056 private Date effectiveDate; 057 058 @XmlElement 059 private Date expirationDate; 060 061 @XmlElement 062 @XmlJavaTypeAdapter(JaxbAttributeMapListAdapter.class) 063 private Map<String, String> attributes; 064 065 @XmlElement 066 private MetaInfo metaInfo; 067 068 @XmlAttribute 069 private String state; 070 071 @XmlAttribute 072 private String id; 073 074 /** 075 * Code identifier/name for the LUI. This is typically used in human readable form (e.g. ENGL 100 section 123). 076 */ 077 public String getLuiCode() { 078 return luiCode; 079 } 080 081 public void setLuiCode(String luiCode) { 082 this.luiCode = luiCode; 083 } 084 085 /** 086 * Unique identifier for a Canonical Learning Unit (CLU). 087 */ 088 public String getCluId() { 089 return cluId; 090 } 091 092 public void setCluId(String cluId) { 093 this.cluId = cluId; 094 } 095 096 /** 097 * Unique identifier for an Academic Time Period (ATP). 098 */ 099 public String getAtpId() { 100 return atpId; 101 } 102 103 public void setAtpId(String atpId) { 104 this.atpId = atpId; 105 } 106 107 /** 108 * Maximum number of "seats" that the LUI will hold for registration. 109 */ 110 public Integer getMaxSeats() { 111 return maxSeats; 112 } 113 114 public void setMaxSeats(Integer maxSeats) { 115 this.maxSeats = maxSeats; 116 } 117 118 /** 119 * Date and time that this LUI 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. 120 */ 121 public Date getEffectiveDate() { 122 return effectiveDate; 123 } 124 125 public void setEffectiveDate(Date effectiveDate) { 126 this.effectiveDate = effectiveDate; 127 } 128 129 /** 130 * Date and time that this LUI 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. 131 */ 132 public Date getExpirationDate() { 133 return expirationDate; 134 } 135 136 public void setExpirationDate(Date expirationDate) { 137 this.expirationDate = expirationDate; 138 } 139 140 /** 141 * List of key/value pairs, typically used for dynamic attributes. 142 */ 143 public Map<String, String> getAttributes() { 144 if (attributes == null) { 145 attributes = new HashMap<String, String>(); 146 } 147 return attributes; 148 } 149 150 public void setAttributes(Map<String, String> attributes) { 151 this.attributes = attributes; 152 } 153 154 /** 155 * 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. 156 */ 157 public MetaInfo getMetaInfo() { 158 return metaInfo; 159 } 160 161 public void setMetaInfo(MetaInfo metaInfo) { 162 this.metaInfo = metaInfo; 163 } 164 165 /** 166 * The current status of the LUI. The values for this field are constrained to those in the luState enumeration. A separate setup operation does not exist for retrieval of the meta data around this value. 167 */ 168 public String getState() { 169 return state; 170 } 171 172 public void setState(String state) { 173 this.state = state; 174 } 175 176 /** 177 * Unique identifier for a Learning Unit Instance (LUI). This is optional, due to the identifier being set at the time of creation. Once the LUI has been created, this should be seen as required. 178 */ 179 public String getId() { 180 return id; 181 } 182 183 public void setId(String id) { 184 this.id = id; 185 } 186 }