001 package org.kuali.ole.patron.api;
002
003 import org.kuali.rice.core.api.mo.AbstractDataTransferObject;
004 import org.kuali.rice.core.api.mo.ModelBuilder;
005 import org.kuali.rice.kim.api.identity.address.EntityAddress;
006 import org.kuali.rice.krms.api.KrmsConstants;
007
008 import javax.xml.bind.annotation.*;
009 import java.io.Serializable;
010
011 /**
012 * Created with IntelliJ IDEA.
013 * User: ?
014 * Date: 5/28/12
015 * Time: 12:09 PM
016 * To change this template use File | Settings | File Templates.
017 */
018 @XmlRootElement(name = OleEntityAddressDefinition.Constants.ROOT_ELEMENT_NAME)
019 @XmlAccessorType(XmlAccessType.NONE)
020 @XmlType(name = OleEntityAddressDefinition.Constants.TYPE_NAME, propOrder = {
021 OleEntityAddressDefinition.Elements.OLE_ADDRESS,
022 OleEntityAddressDefinition.Elements.ENTITY_ADDRESS
023 })
024 public class OleEntityAddressDefinition extends AbstractDataTransferObject implements OleEntityAddressContract {
025
026 private static final long serialVersionUID = 1L;
027
028 @XmlElement(name = Elements.OLE_ADDRESS, required = false)
029 private final OleAddressDefinition oleAddressBo;
030 @XmlElement(name = Elements.ENTITY_ADDRESS, required = false)
031 private final EntityAddress entityAddressBo;
032
033 public OleEntityAddressDefinition () {
034 oleAddressBo = null;
035 entityAddressBo = null;
036 }
037
038 public OleEntityAddressDefinition(Builder builder) {
039 oleAddressBo = builder.getOleAddressBo().build();
040 entityAddressBo = builder.getEntityAddressBo().build();
041
042 }
043
044 @Override
045 public EntityAddress getEntityAddressBo() {
046 return entityAddressBo;
047 }
048
049 @Override
050 public OleAddressDefinition getOleAddressBo() {
051 return oleAddressBo;
052 }
053
054 public static class Builder implements OleEntityAddressContract, ModelBuilder, Serializable {
055 private static final long serialVersionUID = 1L;
056
057 public OleAddressDefinition.Builder oleAddressBo;
058 public EntityAddress.Builder entityAddressBo;
059
060 public String patronNoteId;
061 public String olePatronId;
062 public String patronNoteTypeId;
063 public String patronNoteText;
064 public OlePatronNoteTypeDefinition.Builder olePatronNoteType;
065 public OlePatronDefinition.Builder olePatron;
066 public Long versionNumber;
067 public boolean active;
068 public String objectId;
069
070 private Builder (OleAddressDefinition.Builder oleAddressBo, EntityAddress.Builder entityAddressBo) {
071
072 setOleAddressBo(oleAddressBo);
073 setEntityAddressBo(entityAddressBo);
074
075 }
076
077 public static Builder create (OleAddressDefinition.Builder oleAddressBo, EntityAddress.Builder entityAddressBo){
078 //OlePatronDefinition.Builder olePatron) {
079 return new Builder(oleAddressBo, entityAddressBo);
080 }
081 public static Builder create (OleEntityAddressContract oleEntityAddressContract) {
082 Builder builder = Builder.create(OleAddressDefinition.Builder.create(oleEntityAddressContract.getOleAddressBo()),EntityAddress.Builder.create(oleEntityAddressContract.getEntityAddressBo()));
083 return builder;
084
085 }
086
087
088 @Override
089 public OleAddressDefinition.Builder getOleAddressBo() {
090 return this.oleAddressBo;
091 }
092
093
094 public EntityAddress.Builder getEntityAddressBo() {
095 return this.entityAddressBo;
096 }
097
098 public void setOleAddressBo(OleAddressDefinition.Builder oleAddressBo) {
099 this.oleAddressBo = oleAddressBo;
100 }
101
102 public void setEntityAddressBo(EntityAddress.Builder entityAddressBo) {
103 this.entityAddressBo = entityAddressBo;
104 }
105
106 @Override
107 public OleEntityAddressDefinition build() {
108 return new OleEntityAddressDefinition(this);
109 }
110 }
111
112
113 /*public OlePatronDefinition getOlePatron() {
114 return this.olePatron;
115 }*/
116 static class Constants {
117 public static final String ROOT_ELEMENT_NAME = "oleEntityAddressDefinition";
118 public static final String TYPE_NAME = "oleEntityAddressDefinitionType";
119 }
120
121 static class Elements {
122 public static final String OLE_ADDRESS = "oleAddressBo";
123 public static final String ENTITY_ADDRESS = "entityAddressBo";
124
125 }
126
127 public static class Cache {
128 public static final String NAME = KrmsConstants.Namespaces.KRMS_NAMESPACE_2_0 + "/" + OleEntityAddressDefinition.Constants.TYPE_NAME;
129 }
130 }