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.HashMap;
020 import java.util.Map;
021
022 import javax.xml.bind.annotation.XmlAccessType;
023 import javax.xml.bind.annotation.XmlAccessorType;
024 import javax.xml.bind.annotation.XmlAttribute;
025 import javax.xml.bind.annotation.XmlElement;
026 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
027
028 import org.kuali.student.common.dto.HasAttributes;
029 import org.kuali.student.common.dto.Idable;
030 import org.kuali.student.common.dto.MetaInfo;
031 import org.kuali.student.core.ws.binding.JaxbAttributeMapListAdapter;
032
033 /**
034 *Detailed information about learning unit codes.
035 */
036 @XmlAccessorType(XmlAccessType.FIELD)
037 public class LuCodeInfo implements Serializable, Idable, HasAttributes {
038
039 private static final long serialVersionUID = 1L;
040
041 @XmlElement
042 private String descr;
043
044 @XmlAttribute
045 private String type;
046
047 @XmlElement
048 private String value;
049
050 @XmlElement
051 @XmlJavaTypeAdapter(JaxbAttributeMapListAdapter.class)
052 private Map<String, String> attributes;
053
054 @XmlElement
055 private MetaInfo metaInfo;
056
057 @XmlAttribute
058 private String id;
059
060 /**
061 * The description of the code.
062 */
063 public String getDescr() {
064 return descr;
065 }
066
067 public void setDescr(String descr) {
068 this.descr = descr;
069 }
070
071 /**
072 * The code's type
073 */
074 public void setType(String type) {
075 this.type = type;
076 }
077
078 public String getType() {
079 return type;
080 }
081
082 /**
083 * The code's value.
084 */
085 public String getValue() {
086 return value;
087 }
088
089 public void setValue(String value) {
090 this.value = value;
091 }
092
093 /**
094 * List of key/value pairs, typically used for dynamic attributes.
095 */
096 @Override
097 public Map<String, String> getAttributes() {
098 if (attributes == null) {
099 attributes = new HashMap<String, String>();
100 }
101 return attributes;
102 }
103
104 @Override
105 public void setAttributes(Map<String, String> attributes) {
106 this.attributes = attributes;
107 }
108
109 /**
110 * 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.
111 */
112 public MetaInfo getMetaInfo() {
113 return metaInfo;
114 }
115
116 public void setMetaInfo(MetaInfo metaInfo) {
117 this.metaInfo = metaInfo;
118 }
119
120 /**
121 * Unique identifier for an LU code record.
122 */
123 @Override
124 public String getId() {
125 return id;
126 }
127
128 @Override
129 public void setId(String id) {
130 this.id = id;
131 }
132 }