001 package org.kuali.ole.patron.api;
002
003 import org.apache.commons.lang.StringUtils;
004 import org.kuali.rice.core.api.CoreConstants;
005 import org.kuali.rice.core.api.mo.AbstractDataTransferObject;
006 import org.kuali.rice.core.api.mo.ModelBuilder;
007 import org.kuali.rice.kim.api.KimConstants;
008 import org.w3c.dom.Element;
009
010 import javax.xml.bind.annotation.*;
011 import java.io.Serializable;
012 import java.util.Collection;
013
014 /**
015 * Created with IntelliJ IDEA.
016 * User: ?
017 * Date: 5/24/12
018 * Time: 8:26 PM
019 * To change this template use File | Settings | File Templates.
020 */
021 @XmlRootElement(name = OleAddressSourceDefinition.Constants.ROOT_ELEMENT_NAME)
022 @XmlAccessorType(XmlAccessType.NONE)
023 @XmlType(name = OleAddressSourceDefinition.Constants.TYPE_NAME, propOrder = {
024 OleAddressSourceDefinition.Elements.OLE_ADDRESS_SOURCE_ID,
025 OleAddressSourceDefinition.Elements.OLE_ADDRESS_SOURCE_CODE,
026 OleAddressSourceDefinition.Elements.OLE_ADDRESS_SOURCE_NAME,
027 OleAddressSourceDefinition.Elements.OLE_ADDRESS_SOURCE_DESC,
028 OleAddressSourceDefinition.Elements.ACTIVE_INDICATOR,
029
030 CoreConstants.CommonElements.VERSION_NUMBER,
031 //CoreConstants.CommonElements.OBJECT_ID,
032 CoreConstants.CommonElements.FUTURE_ELEMENTS
033 })
034 public final class OleAddressSourceDefinition extends AbstractDataTransferObject implements OleAddressSourceContract{
035
036 private static final long serialVersionUID = 1L;
037
038
039
040 @XmlElement(name = Elements.OLE_ADDRESS_SOURCE_ID, required = false)
041 private final String oleAddressSourceId;
042
043 @XmlElement(name = Elements.OLE_ADDRESS_SOURCE_CODE, required = false)
044 private final String oleAddressSourceCode;
045
046 @XmlElement(name = Elements.OLE_ADDRESS_SOURCE_NAME, required = false)
047 private final String oleAddressSourceName;
048
049 @XmlElement(name = Elements.OLE_ADDRESS_SOURCE_DESC, required = false)
050 private final String oleAddressSourceDesc;
051
052 @XmlElement(name = Elements.ACTIVE_INDICATOR, required = false)
053 private final boolean active;
054
055 @XmlElement(name = CoreConstants.CommonElements.VERSION_NUMBER, required = false)
056 private final Long versionNumber;
057
058 /*@XmlElement(name = CoreConstants.CommonElements.OBJECT_ID, required = false)
059 private final String objectId;*/
060 @SuppressWarnings("unused")
061 @XmlAnyElement
062 private final Collection<Element> _futureElements = null;
063
064 public OleAddressSourceDefinition() {
065 this.oleAddressSourceId = null;
066 this.oleAddressSourceCode = null;
067 this.oleAddressSourceName = null;
068 this.active = false;
069 this.oleAddressSourceDesc = null;
070 this.versionNumber = null;
071 //this.objectId = null;
072 }
073
074
075 private OleAddressSourceDefinition(Builder builder) {
076 this.oleAddressSourceId = builder.getOleAddressSourceId();
077 this.oleAddressSourceCode = builder.getOleAddressSourceCode();
078 this.oleAddressSourceName = builder.getOleAddressSourceName();
079 this.oleAddressSourceDesc = builder.getOleAddressSourceDesc();
080 this.active = builder.isActive();
081
082 this.versionNumber = builder.getVersionNumber();
083 //this.objectId = builder.getObjectId();
084 }
085
086
087 @Override
088 public String getOleAddressSourceId() {
089 return this.oleAddressSourceId;
090 }
091
092 @Override
093 public String getOleAddressSourceCode() {
094 return this.oleAddressSourceCode;
095 }
096
097 @Override
098 public String getOleAddressSourceName() {
099 return this.oleAddressSourceName;
100 }
101
102 @Override
103 public String getOleAddressSourceDesc() {
104 return this.oleAddressSourceDesc;
105 }
106
107 @Override
108 public boolean isActive() {
109 return this.active;
110 };
111
112
113 @Override
114 public String getId() {
115 return this.oleAddressSourceId;
116 }
117
118
119 @Override
120 public Long getVersionNumber() {
121 return this.versionNumber;
122 }
123
124
125 //@Override
126 /*public OleBorrowerTypeDefinition getOleBorrowerType() {
127 return this.oleBorrowerType;
128 }*/
129
130 public static class Builder
131 implements Serializable, ModelBuilder, OleAddressSourceContract
132 {
133
134 private String oleAddressSourceId;
135 private String oleAddressSourceCode;
136 private String oleAddressSourceName;
137 private String oleAddressSourceDesc;
138 private boolean active;
139
140 private Long versionNumber;
141 private String objectId;
142
143 private Builder() { }
144
145 public static Builder create() {
146 return new Builder();
147 }
148
149 public static Builder create(OleAddressSourceContract contract) {
150 if(contract == null) {
151 throw new IllegalArgumentException("contract was null");
152 }
153 Builder builder = create();
154 if (contract.getOleAddressSourceId() != null) {
155 builder.setOleAddressSourceId(contract.getOleAddressSourceId());
156 }
157 if(contract.getOleAddressSourceCode() != null) {
158 builder.setOleAddressSourceCode(contract.getOleAddressSourceCode());
159 }
160 if(contract.getOleAddressSourceName() != null) {
161 builder.setOleAddressSourceName(contract.getOleAddressSourceName());
162 }
163 if(contract.isActive()) {
164 builder.setActive(contract.isActive());
165 }
166 if(contract.getOleAddressSourceDesc() != null) {
167 builder.setOleAddressSourceDesc(contract.getOleAddressSourceDesc());
168 }
169
170 builder.setVersionNumber(contract.getVersionNumber());
171 /*builder.setObjectId(contract.getObjectId());
172 builder.setActive(contract.isActive());*/
173 builder.setId(contract.getId());
174 return builder;
175 }
176
177
178 public OleAddressSourceDefinition build() {
179 return new OleAddressSourceDefinition(this);
180 }
181
182 public String getOleAddressSourceId() {
183 return oleAddressSourceId;
184 }
185
186 public void setOleAddressSourceId(String oleAddressSourceId) {
187 this.oleAddressSourceId = oleAddressSourceId;
188 }
189
190 public String getOleAddressSourceCode() {
191 return oleAddressSourceCode;
192 }
193
194 public void setOleAddressSourceCode(String oleAddressSourceCode) {
195 this.oleAddressSourceCode = oleAddressSourceCode;
196 }
197
198 public String getOleAddressSourceName() {
199 return oleAddressSourceName;
200 }
201
202 public void setOleAddressSourceName(String oleAddressSourceName) {
203 this.oleAddressSourceName = oleAddressSourceName;
204 }
205
206 public String getOleAddressSourceDesc() {
207 return oleAddressSourceDesc;
208 }
209
210 public void setOleAddressSourceDesc(String oleAddressSourceDesc) {
211 this.oleAddressSourceDesc = oleAddressSourceDesc;
212 }
213
214 public boolean isActive() {
215 return active;
216 }
217
218 public void setActive(boolean active) {
219 this.active = active;
220 }
221
222 @Override
223 public Long getVersionNumber() {
224 return versionNumber;
225 }
226
227 public void setVersionNumber(Long versionNumber) {
228 this.versionNumber = versionNumber;
229 }
230
231 /*@Override
232 public String getObjectId() {
233 return objectId;
234 }*/
235
236 public void setObjectId(String objectId) {
237 this.objectId = objectId;
238 }
239
240 @Override
241 public String getId() {
242 return this.oleAddressSourceId;
243 }
244
245
246
247 public void setId(String id) {
248 if (StringUtils.isWhitespace(id)) {
249 throw new IllegalArgumentException("id is blank");
250 }
251 this.oleAddressSourceId = id;
252 }
253 }
254
255 static class Constants {
256
257 final static String ROOT_ELEMENT_NAME = "oleAddressSource";
258 final static String TYPE_NAME = "OleAddressSourceType";
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_ADDRESS_SOURCE_ID = "oleAddressSourceId";
264 final static String OLE_ADDRESS_SOURCE_CODE = "oleAddressSourceCode";
265 final static String OLE_ADDRESS_SOURCE_NAME = "oleAddressSourceName";
266 final static String OLE_ADDRESS_SOURCE_DESC = "oleAddressSourceDesc";
267 final static String ACTIVE_INDICATOR = "active";
268 //final static String ENTITY_ID = "entityId";
269
270 }
271 public static class Cache {
272 public static final String NAME = KimConstants.Namespaces.KIM_NAMESPACE_2_0 + "/" + OleAddressSourceDefinition.Constants.TYPE_NAME;
273 }
274 }