1 package org.kuali.ole.deliver.api;
2
3 import org.apache.commons.lang.StringUtils;
4 import org.kuali.rice.core.api.CoreConstants;
5 import org.kuali.rice.core.api.mo.AbstractDataTransferObject;
6 import org.kuali.rice.core.api.mo.ModelBuilder;
7 import org.kuali.rice.kim.api.KimConstants;
8 import org.w3c.dom.Element;
9
10 import javax.xml.bind.annotation.*;
11 import java.io.Serializable;
12 import java.util.Collection;
13
14
15
16
17
18
19
20
21 @XmlRootElement(name = org.kuali.ole.deliver.api.OleSourceDefinition.Constants.ROOT_ELEMENT_NAME)
22 @XmlAccessorType(XmlAccessType.NONE)
23 @XmlType(name = org.kuali.ole.deliver.api.OleSourceDefinition.Constants.TYPE_NAME, propOrder = {
24 org.kuali.ole.deliver.api.OleSourceDefinition.Elements.OLE_SOURCE_ID,
25 org.kuali.ole.deliver.api.OleSourceDefinition.Elements.OLE_SOURCE_CODE,
26 org.kuali.ole.deliver.api.OleSourceDefinition.Elements.OLE_SOURCE_NAME,
27 org.kuali.ole.deliver.api.OleSourceDefinition.Elements.OLE_SOURCE_DESC,
28 org.kuali.ole.deliver.api.OleSourceDefinition.Elements.ACTIVE_INDICATOR,
29
30 CoreConstants.CommonElements.VERSION_NUMBER,
31
32 CoreConstants.CommonElements.FUTURE_ELEMENTS
33 })
34 public final class OleSourceDefinition extends AbstractDataTransferObject implements OleSourceContract {
35
36 private static final long serialVersionUID = 1L;
37
38
39 @XmlElement(name = Elements.OLE_SOURCE_ID, required = false)
40 private final String oleSourceId;
41
42 @XmlElement(name = Elements.OLE_SOURCE_CODE, required = false)
43 private final String oleSourceCode;
44
45 @XmlElement(name = Elements.OLE_SOURCE_NAME, required = false)
46 private final String oleSourceName;
47
48 @XmlElement(name = Elements.OLE_SOURCE_DESC, required = false)
49 private final String oleSourceDesc;
50
51 @XmlElement(name = Elements.ACTIVE_INDICATOR, required = false)
52 private final boolean active;
53
54 @XmlElement(name = CoreConstants.CommonElements.VERSION_NUMBER, required = false)
55 private final Long versionNumber;
56
57
58
59 @SuppressWarnings("unused")
60 @XmlAnyElement
61 private final Collection<Element> _futureElements = null;
62
63 public OleSourceDefinition() {
64 this.oleSourceId = null;
65 this.oleSourceCode = null;
66 this.oleSourceName = null;
67 this.active = false;
68 this.oleSourceDesc = null;
69 this.versionNumber = null;
70
71 }
72
73
74 private OleSourceDefinition(Builder builder) {
75 this.oleSourceId = builder.getOleSourceId();
76 this.oleSourceCode = builder.getOleSourceCode();
77 this.oleSourceName = builder.getOleSourceName();
78 this.oleSourceDesc = builder.getOleSourceDesc();
79 this.active = builder.isActive();
80
81 this.versionNumber = builder.getVersionNumber();
82
83 }
84
85
86 @Override
87 public String getOleSourceId() {
88 return this.oleSourceId;
89 }
90
91 @Override
92 public String getOleSourceCode() {
93 return this.oleSourceCode;
94 }
95
96 @Override
97 public String getOleSourceName() {
98 return this.oleSourceName;
99 }
100
101 @Override
102 public String getOleSourceDesc() {
103 return this.oleSourceDesc;
104 }
105
106 @Override
107 public boolean isActive() {
108 return this.active;
109 }
110
111 ;
112
113
114 @Override
115 public String getId() {
116 return this.oleSourceId;
117 }
118
119
120 @Override
121 public Long getVersionNumber() {
122 return this.versionNumber;
123 }
124
125
126
127
128
129
130
131 public static class Builder
132 implements Serializable, ModelBuilder, OleSourceContract {
133
134 private String oleSourceId;
135 private String oleSourceCode;
136 private String oleSourceName;
137 private String oleSourceDesc;
138 private boolean active;
139
140 private Long versionNumber;
141 private String objectId;
142
143 private Builder() {
144 }
145
146 public static Builder create() {
147 return new Builder();
148 }
149
150 public static Builder create(OleSourceContract contract) {
151 if (contract == null) {
152 throw new IllegalArgumentException("contract was null");
153 }
154 Builder builder = create();
155 if (contract.getOleSourceId() != null) {
156 builder.setOleSourceId(contract.getOleSourceId());
157 }
158 if (contract.getOleSourceCode() != null) {
159 builder.setOleSourceCode(contract.getOleSourceCode());
160 }
161 if (contract.getOleSourceName() != null) {
162 builder.setOleSourceName(contract.getOleSourceName());
163 }
164 if (contract.isActive()) {
165 builder.setActive(contract.isActive());
166 }
167 if (contract.getOleSourceDesc() != null) {
168 builder.setOleSourceDesc(contract.getOleSourceDesc());
169 }
170
171 builder.setVersionNumber(contract.getVersionNumber());
172
173
174 builder.setId(contract.getId());
175 return builder;
176 }
177
178
179 public org.kuali.ole.deliver.api.OleSourceDefinition build() {
180 return new org.kuali.ole.deliver.api.OleSourceDefinition(this);
181 }
182
183 public String getOleSourceId() {
184 return oleSourceId;
185 }
186
187 public void setOleSourceId(String oleSourceId) {
188 this.oleSourceId = oleSourceId;
189 }
190
191 public String getOleSourceCode() {
192 return oleSourceCode;
193 }
194
195 public void setOleSourceCode(String oleSourceCode) {
196 this.oleSourceCode = oleSourceCode;
197 }
198
199 public String getOleSourceName() {
200 return oleSourceName;
201 }
202
203 public void setOleSourceName(String oleSourceName) {
204 this.oleSourceName = oleSourceName;
205 }
206
207 public String getOleSourceDesc() {
208 return oleSourceDesc;
209 }
210
211 public void setOleSourceDesc(String oleSourceDesc) {
212 this.oleSourceDesc = oleSourceDesc;
213 }
214
215 public boolean isActive() {
216 return active;
217 }
218
219 public void setActive(boolean active) {
220 this.active = active;
221 }
222
223 @Override
224 public Long getVersionNumber() {
225 return versionNumber;
226 }
227
228 public void setVersionNumber(Long versionNumber) {
229 this.versionNumber = versionNumber;
230 }
231
232
233
234
235
236
237 public void setObjectId(String objectId) {
238 this.objectId = objectId;
239 }
240
241 @Override
242 public String getId() {
243 return this.oleSourceId;
244 }
245
246
247 public void setId(String id) {
248 if (StringUtils.isWhitespace(id)) {
249 throw new IllegalArgumentException("id is blank");
250 }
251 this.oleSourceId = id;
252 }
253 }
254
255 static class Constants {
256
257 final static String ROOT_ELEMENT_NAME = "oleSource";
258 final static String TYPE_NAME = "OleSourceType";
259 final static String[] HASH_CODE_EQUALS_EXCLUDE = new String[]{CoreConstants.CommonElements.FUTURE_ELEMENTS};
260 }
261
262 static class Elements {
263 final static String OLE_SOURCE_ID = "oleSourceId";
264 final static String OLE_SOURCE_CODE = "oleSourceCode";
265 final static String OLE_SOURCE_NAME = "oleSourceName";
266 final static String OLE_SOURCE_DESC = "oleSourceDesc";
267 final static String ACTIVE_INDICATOR = "active";
268
269
270 }
271
272 public static class Cache {
273 public static final String NAME = KimConstants.Namespaces.KIM_NAMESPACE_2_0 + "/" + Constants.TYPE_NAME;
274 }
275 }