001package org.kuali.ole.deliver.api; 002 003import org.kuali.api.jaxb.DateAdapter; 004import org.kuali.rice.core.api.CoreConstants; 005import org.kuali.rice.core.api.mo.AbstractDataTransferObject; 006import org.kuali.rice.core.api.mo.ModelBuilder; 007import org.kuali.rice.kim.api.KimConstants; 008import org.w3c.dom.Element; 009 010import javax.xml.bind.annotation.*; 011import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; 012import java.io.Serializable; 013import java.sql.Date; 014import java.util.Collection; 015 016/** 017 * Created with IntelliJ IDEA. 018 * User: ? 019 * Date: 5/24/12 020 * Time: 8:26 PM 021 * To change this template use File | Settings | File Templates. 022 */ 023@XmlRootElement(name = OleDeliverRequestDefinition.Constants.ROOT_ELEMENT_NAME) 024@XmlAccessorType(XmlAccessType.NONE) 025@XmlType(name = OleDeliverRequestDefinition.Constants.TYPE_NAME, propOrder = { 026 OleDeliverRequestDefinition.Elements.AUTHOR, 027 OleDeliverRequestDefinition.Elements.CALL_NUMBER, 028 OleDeliverRequestDefinition.Elements.COPY_NUMBER, 029 OleDeliverRequestDefinition.Elements.ITEM_STATUS, 030 OleDeliverRequestDefinition.Elements.ITEM_TYPE, 031 OleDeliverRequestDefinition.Elements.PATRON_NAME, 032 OleDeliverRequestDefinition.Elements.VOLUME_NUMBER, 033 OleDeliverRequestDefinition.Elements.SHELVING_LOCATION, 034 OleDeliverRequestDefinition.Elements.TITLE, 035 OleDeliverRequestDefinition.Elements.ITEM_ID, 036 OleDeliverRequestDefinition.Elements.REQUEST_ID, 037 OleDeliverRequestDefinition.Elements.BORR_QUEUE_POS, 038 OleDeliverRequestDefinition.Elements.CREATE_DATE, 039 OleDeliverRequestDefinition.Elements.OLE_DLVR_REQ_TYPE, 040 041 CoreConstants.CommonElements.VERSION_NUMBER, 042 //CoreConstants.CommonElements.OBJECT_ID, 043 CoreConstants.CommonElements.FUTURE_ELEMENTS 044}) 045public class OleDeliverRequestDefinition extends AbstractDataTransferObject implements OleDeliverRequestContract { 046 047 private static final long serialVersionUID = 1L; 048 049 @XmlElement(name = Elements.TITLE, required = false) 050 private final String title; 051 052 @XmlElement(name = Elements.AUTHOR, required = false) 053 private final String author; 054 055 @XmlElement(name = Elements.CALL_NUMBER, required = false) 056 private final String callNumber; 057 058 @XmlElement(name = Elements.COPY_NUMBER, required = false) 059 private final String copyNumber; 060 061 @XmlElement(name = Elements.VOLUME_NUMBER, required = false) 062 private final String volumeNumber; 063 064 @XmlElement(name = Elements.ITEM_STATUS, required = false) 065 private final String itemStatus; 066 067 @XmlElement(name = Elements.ITEM_ID, required = false) 068 private final String itemId; 069 070 @XmlElement(name = Elements.REQUEST_ID, required = false) 071 private final String requestId; 072 073 @XmlElement(name = Elements.ITEM_TYPE, required = false) 074 private final String itemType; 075 076 @XmlElement(name = Elements.PATRON_NAME, required = false) 077 private final String patronName; 078 079 @XmlElement(name = Elements.CREATE_DATE, required = false) 080 @XmlJavaTypeAdapter(value = DateAdapter.class, type = Date.class) 081 private final Date createDate; 082 083 @XmlElement(name = Elements.BORR_QUEUE_POS, required = false) 084 private final Integer borrowerQueuePosition; 085 086 @XmlElement(name = Elements.SHELVING_LOCATION, required = false) 087 private final String shelvingLocation; 088 089 @XmlElement(name = Elements.OLE_DLVR_REQ_TYPE, required = false) 090 private final OleDeliverRequestTypeDefinition oleDeliverRequestType; 091 092 @XmlElement(name = CoreConstants.CommonElements.VERSION_NUMBER, required = false) 093 private final Long versionNumber; 094 095 /*@XmlElement(name = CoreConstants.CommonElements.OBJECT_ID, required = false) 096 private final String objectId;*/ 097 @SuppressWarnings("unused") 098 @XmlAnyElement 099 private final Collection<Element> _futureElements = null; 100 101 public OleDeliverRequestDefinition() { 102 this.title = null; 103 this.author = null; 104 this.itemStatus = null; 105 this.callNumber = null; 106 this.copyNumber = null; 107 this.volumeNumber = null; 108 this.shelvingLocation = null; 109 this.itemType = null; 110 this.patronName = null; 111 this.itemId = null; 112 this.requestId = null; 113 this.createDate = null; 114 this.borrowerQueuePosition = null; 115 this.oleDeliverRequestType = null; 116 this.versionNumber = null; 117 118 //this.objectId = null; 119 } 120 121 122 private OleDeliverRequestDefinition(Builder builder) { 123 this.title = builder.getTitle(); 124 this.author = builder.getAuthor(); 125 this.callNumber = builder.getCallNumber(); 126 this.copyNumber = builder.getCopyNumber(); 127 this.itemType = builder.getItemType(); 128 this.itemStatus = builder.getItemStatus(); 129 this.shelvingLocation = builder.getShelvingLocation(); 130 this.volumeNumber = builder.getVolumeNumber(); 131 this.patronName = builder.getPatronName(); 132 this.itemId = builder.getItemId(); 133 this.requestId = builder.getRequestId(); 134 this.borrowerQueuePosition = builder.getBorrowerQueuePosition(); 135 this.createDate = builder.getCreateDate(); 136 this.oleDeliverRequestType = builder.getOleDeliverRequestType().build(); 137 this.versionNumber = builder.getVersionNumber(); 138 //this.objectId = builder.getObjectId(); 139 } 140 141 142 @Override 143 public Long getVersionNumber() { 144 return this.versionNumber; 145 } 146 147 @Override 148 public String getId() { 149 return this.requestId; 150 } 151 152 @Override 153 public String getItemId() { 154 return this.itemId; 155 } 156 157 @Override 158 public String getRequestId() { 159 return this.requestId; 160 } 161 162 @Override 163 public String getItemStatus() { 164 return this.itemStatus; 165 } 166 167 @Override 168 public String getItemType() { 169 return this.itemType; 170 } 171 172 @Override 173 public Integer getBorrowerQueuePosition() { 174 return this.borrowerQueuePosition; 175 } 176 177 @Override 178 public String getTitle() { 179 return this.title; 180 } 181 182 @Override 183 public String getAuthor() { 184 return this.author; 185 } 186 187 @Override 188 public String getShelvingLocation() { 189 return this.shelvingLocation; 190 } 191 192 @Override 193 public String getCallNumber() { 194 return this.callNumber; 195 } 196 197 @Override 198 public String getCopyNumber() { 199 return this.copyNumber; 200 } 201 202 @Override 203 public String getPatronName() { 204 return this.patronName; 205 } 206 207 @Override 208 public Date getCreateDate() { 209 return this.createDate; 210 } 211 212 213 @Override 214 public String getVolumeNumber() { 215 return this.volumeNumber; 216 } 217 218 @Override 219 public OleDeliverRequestTypeDefinition getOleDeliverRequestType() { 220 return this.oleDeliverRequestType; 221 } 222 223 224 public static class Builder 225 implements Serializable, ModelBuilder, OleDeliverRequestContract { 226 private String title; 227 private String author; 228 private String shelvingLocation; 229 private String callNumber; 230 private String copyNumber; 231 private String volumeNumber; 232 private String patronName; 233 private String itemType; 234 private String itemStatus; 235 private String itemId; 236 private String requestId; 237 private Integer borrowerQueuePosition; 238 private Date createDate; 239 private OleDeliverRequestTypeDefinition.Builder oleDeliverRequestType; 240 241 242 private Builder() { 243 } 244 245 public static Builder create() { 246 return new Builder(); 247 } 248 249 public static Builder create(OleDeliverRequestContract contract) { 250 if (contract == null) { 251 throw new IllegalArgumentException("contract was null"); 252 } 253 Builder builder = create(); 254 if (contract.getTitle() != null) { 255 builder.setTitle(contract.getTitle()); 256 } 257 if (contract.getAuthor() != null) { 258 builder.setAuthor(contract.getAuthor()); 259 } 260 if (contract.getCallNumber() != null) { 261 builder.setCallNumber(contract.getCallNumber()); 262 } 263 if (contract.getCopyNumber() != null) { 264 builder.setCopyNumber(contract.getCopyNumber()); 265 } 266 if (contract.getItemStatus() != null) { 267 builder.setItemStatus(contract.getItemStatus()); 268 } 269 if (contract.getItemType() != null) { 270 builder.setItemType(contract.getItemType()); 271 } 272 if (contract.getShelvingLocation() != null) { 273 builder.setShelvingLocation(contract.getShelvingLocation()); 274 } 275 if (contract.getVolumeNumber() != null) { 276 builder.setVolumeNumber(contract.getVolumeNumber()); 277 } 278 if (contract.getItemId() != null) { 279 builder.setItemId(contract.getItemId()); 280 } 281 if (contract.getRequestId() != null) { 282 builder.setRequestId(contract.getRequestId()); 283 } 284 if (contract.getRequestId() != null) { 285 builder.setRequestId(contract.getRequestId()); 286 } 287 if (contract.getBorrowerQueuePosition() != null) { 288 builder.setBorrowerQueuePosition(contract.getBorrowerQueuePosition()); 289 } 290 if (contract.getCreateDate() != null) { 291 builder.setCreateDate(contract.getCreateDate()); 292 } 293 if (contract.getOleDeliverRequestType() != null) { 294 builder.setOleDeliverRequestType(OleDeliverRequestTypeDefinition.Builder.create(contract.getOleDeliverRequestType())); 295 } 296 297 builder.setId(contract.getId()); 298 return builder; 299 } 300 301 302 public OleDeliverRequestDefinition build() { 303 return new OleDeliverRequestDefinition(this); 304 } 305 306 public String getTitle() { 307 return title; 308 } 309 310 public void setTitle(String title) { 311 this.title = title; 312 } 313 314 public String getAuthor() { 315 return author; 316 } 317 318 public void setAuthor(String author) { 319 this.author = author; 320 } 321 322 public String getShelvingLocation() { 323 return shelvingLocation; 324 } 325 326 public void setShelvingLocation(String shelvingLocation) { 327 this.shelvingLocation = shelvingLocation; 328 } 329 330 public String getCallNumber() { 331 return callNumber; 332 } 333 334 public void setCallNumber(String callNumber) { 335 this.callNumber = callNumber; 336 } 337 338 public String getCopyNumber() { 339 return copyNumber; 340 } 341 342 public void setCopyNumber(String copyNumber) { 343 this.copyNumber = copyNumber; 344 } 345 346 public String getItemId() { 347 return itemId; 348 } 349 350 public void setItemId(String itemId) { 351 this.itemId = itemId; 352 } 353 354 public String getRequestId() { 355 return requestId; 356 } 357 358 public void setRequestId(String requestId) { 359 this.requestId = requestId; 360 } 361 362 public String getVolumeNumber() { 363 return volumeNumber; 364 } 365 366 public void setBorrowerQueuePosition(Integer borrowerQueuePosition) { 367 this.borrowerQueuePosition = borrowerQueuePosition; 368 } 369 370 public void setCreateDate(Date createDate) { 371 this.createDate = createDate; 372 } 373 374 public OleDeliverRequestTypeDefinition.Builder getOleDeliverRequestType() { 375 return oleDeliverRequestType; 376 } 377 378 public void setOleDeliverRequestType(OleDeliverRequestTypeDefinition.Builder oleDeliverRequestType) { 379 this.oleDeliverRequestType = oleDeliverRequestType; 380 } 381 382 public void setVolumeNumber(String volumeNumber) { 383 this.volumeNumber = volumeNumber; 384 } 385 386 public String getPatronName() { 387 return patronName; 388 } 389 390 @Override 391 public Date getCreateDate() { 392 return this.createDate; 393 } 394 395 396 public void setPatronName(String patronName) { 397 this.patronName = patronName; 398 } 399 400 public String getItemType() { 401 return itemType; 402 } 403 404 @Override 405 public Integer getBorrowerQueuePosition() { 406 return this.borrowerQueuePosition; 407 } 408 409 public void setItemType(String itemType) { 410 this.itemType = itemType; 411 } 412 413 public String getItemStatus() { 414 return itemStatus; 415 } 416 417 public void setItemStatus(String itemStatus) { 418 this.itemStatus = itemStatus; 419 } 420 421 @Override 422 public String getId() { 423 return null; 424 } 425 426 public void setId(String id) { 427 } 428 429 @Override 430 public Long getVersionNumber() { 431 return null; //To change body of implemented methods use File | Settings | File Templates. 432 } 433 } 434 435 static class Constants { 436 437 final static String ROOT_ELEMENT_NAME = "oleDeliverRequest"; 438 final static String TYPE_NAME = "OleDeliverRequestType"; 439 final static String[] HASH_CODE_EQUALS_EXCLUDE = new String[]{CoreConstants.CommonElements.FUTURE_ELEMENTS}; 440 } 441 442 static class Elements { 443 final static String ITEM_ID = "itemId"; 444 final static String REQUEST_ID = "requestId"; 445 final static String TITLE = "title"; 446 final static String ITEM_STATUS = "itemStatus"; 447 final static String AUTHOR = "author"; 448 final static String ITEM_TYPE = "itemType"; 449 final static String SHELVING_LOCATION = "shelvingLocation"; 450 final static String CALL_NUMBER = "callNumber"; 451 final static String COPY_NUMBER = "copyNumber"; 452 final static String VOLUME_NUMBER = "volumeNumber"; 453 final static String PATRON_NAME = "patronName"; 454 final static String CREATE_DATE = "createDate"; 455 final static String BORR_QUEUE_POS = "borrowerQueuePosition"; 456 final static String OLE_DLVR_REQ_TYPE = "oleDeliverRequestType"; 457 458 459 } 460 461 public static class Cache { 462 public static final String NAME = KimConstants.Namespaces.KIM_NAMESPACE_2_0 + "/" + Constants.TYPE_NAME; 463 } 464}