001package org.kuali.ole.deliver.api; 002 003import org.apache.commons.lang.StringUtils; 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 java.io.Serializable; 012import 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 = org.kuali.ole.deliver.api.OleSourceDefinition.Constants.ROOT_ELEMENT_NAME) 022@XmlAccessorType(XmlAccessType.NONE) 023@XmlType(name = org.kuali.ole.deliver.api.OleSourceDefinition.Constants.TYPE_NAME, propOrder = { 024 org.kuali.ole.deliver.api.OleSourceDefinition.Elements.OLE_SOURCE_ID, 025 org.kuali.ole.deliver.api.OleSourceDefinition.Elements.OLE_SOURCE_CODE, 026 org.kuali.ole.deliver.api.OleSourceDefinition.Elements.OLE_SOURCE_NAME, 027 org.kuali.ole.deliver.api.OleSourceDefinition.Elements.OLE_SOURCE_DESC, 028 org.kuali.ole.deliver.api.OleSourceDefinition.Elements.ACTIVE_INDICATOR, 029 030 CoreConstants.CommonElements.VERSION_NUMBER, 031 //CoreConstants.CommonElements.OBJECT_ID, 032 CoreConstants.CommonElements.FUTURE_ELEMENTS 033}) 034public final class OleSourceDefinition extends AbstractDataTransferObject implements OleSourceContract { 035 036 private static final long serialVersionUID = 1L; 037 038 039 @XmlElement(name = Elements.OLE_SOURCE_ID, required = false) 040 private final String oleSourceId; 041 042 @XmlElement(name = Elements.OLE_SOURCE_CODE, required = false) 043 private final String oleSourceCode; 044 045 @XmlElement(name = Elements.OLE_SOURCE_NAME, required = false) 046 private final String oleSourceName; 047 048 @XmlElement(name = Elements.OLE_SOURCE_DESC, required = false) 049 private final String oleSourceDesc; 050 051 @XmlElement(name = Elements.ACTIVE_INDICATOR, required = false) 052 private final boolean active; 053 054 @XmlElement(name = CoreConstants.CommonElements.VERSION_NUMBER, required = false) 055 private final Long versionNumber; 056 057 /*@XmlElement(name = CoreConstants.CommonElements.OBJECT_ID, required = false) 058 private final String objectId;*/ 059 @SuppressWarnings("unused") 060 @XmlAnyElement 061 private final Collection<Element> _futureElements = null; 062 063 public OleSourceDefinition() { 064 this.oleSourceId = null; 065 this.oleSourceCode = null; 066 this.oleSourceName = null; 067 this.active = false; 068 this.oleSourceDesc = null; 069 this.versionNumber = null; 070 //this.objectId = null; 071 } 072 073 074 private OleSourceDefinition(Builder builder) { 075 this.oleSourceId = builder.getOleSourceId(); 076 this.oleSourceCode = builder.getOleSourceCode(); 077 this.oleSourceName = builder.getOleSourceName(); 078 this.oleSourceDesc = builder.getOleSourceDesc(); 079 this.active = builder.isActive(); 080 081 this.versionNumber = builder.getVersionNumber(); 082 //this.objectId = builder.getObjectId(); 083 } 084 085 086 @Override 087 public String getOleSourceId() { 088 return this.oleSourceId; 089 } 090 091 @Override 092 public String getOleSourceCode() { 093 return this.oleSourceCode; 094 } 095 096 @Override 097 public String getOleSourceName() { 098 return this.oleSourceName; 099 } 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 //@Override 127 /*public OleBorrowerTypeDefinition getOleBorrowerType() { 128 return this.oleBorrowerType; 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 /*builder.setObjectId(contract.getObjectId()); 173 builder.setActive(contract.isActive());*/ 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 /*@Override 233 public String getObjectId() { 234 return objectId; 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 //final static String ENTITY_ID = "entityId"; 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}