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 = OleStatisticalCategoryDefinition.Constants.ROOT_ELEMENT_NAME)
022    @XmlAccessorType(XmlAccessType.NONE)
023    @XmlType(name = OleStatisticalCategoryDefinition.Constants.TYPE_NAME, propOrder = {
024            OleStatisticalCategoryDefinition.Elements.OLE_STATISTICAL_CATEGORY_ID,
025            OleStatisticalCategoryDefinition.Elements.OLE_STATISTICAL_CATEGORY_CODE,
026            OleStatisticalCategoryDefinition.Elements.OLE_STATISTICAL_CATEGORY_NAME,
027            OleStatisticalCategoryDefinition.Elements.OLE_STATISTICAL_CATEGORY_DESC,
028            OleStatisticalCategoryDefinition.Elements.ACTIVE_INDICATOR,
029    
030            CoreConstants.CommonElements.VERSION_NUMBER,
031            //CoreConstants.CommonElements.OBJECT_ID,
032            CoreConstants.CommonElements.FUTURE_ELEMENTS
033    })
034    public final class OleStatisticalCategoryDefinition extends AbstractDataTransferObject implements OleStatisticalCategoryContract{
035    
036        private static final long serialVersionUID = 1L;
037    
038    
039    
040        @XmlElement(name = Elements.OLE_STATISTICAL_CATEGORY_ID, required = false)
041        private final String oleStatisticalCategoryId;
042    
043        @XmlElement(name = Elements.OLE_STATISTICAL_CATEGORY_CODE, required = false)
044        private final String oleStatisticalCategoryCode;
045    
046        @XmlElement(name = Elements.OLE_STATISTICAL_CATEGORY_NAME, required = false)
047        private final String oleStatisticalCategoryName;
048    
049        @XmlElement(name = Elements.OLE_STATISTICAL_CATEGORY_DESC, required = false)
050        private final String oleStatisticalCategoryDesc;
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 OleStatisticalCategoryDefinition() {
065            this.oleStatisticalCategoryId = null;
066            this.oleStatisticalCategoryCode = null;
067            this.oleStatisticalCategoryName = null;
068            this.active = false;
069            this.oleStatisticalCategoryDesc = null;
070            this.versionNumber = null;
071            //this.objectId = null;
072        }
073    
074    
075        private OleStatisticalCategoryDefinition(Builder builder) {
076            this.oleStatisticalCategoryId = builder.getOleStatisticalCategoryId();
077            this.oleStatisticalCategoryCode = builder.getOleStatisticalCategoryCode();
078            this.oleStatisticalCategoryName = builder.getOleStatisticalCategoryName();
079            this.oleStatisticalCategoryDesc = builder.getOleStatisticalCategoryDesc();
080            this.active = builder.isActive();
081    
082            this.versionNumber = builder.getVersionNumber();
083            //this.objectId = builder.getObjectId();
084        }
085    
086    
087        @Override
088        public String getOleStatisticalCategoryId() {
089            return this.oleStatisticalCategoryId;
090        }
091    
092        @Override
093        public String getOleStatisticalCategoryCode() {
094            return this.oleStatisticalCategoryCode;
095        }
096    
097        @Override
098        public String getOleStatisticalCategoryName() {
099            return this.oleStatisticalCategoryName;
100        }
101    
102        @Override
103        public String getOleStatisticalCategoryDesc() {
104            return this.oleStatisticalCategoryDesc;
105        }
106    
107        @Override
108        public boolean isActive() {
109            return this.active;
110        };
111    
112    
113        @Override
114        public String getId() {
115            return this.oleStatisticalCategoryId;
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, OleStatisticalCategoryContract
132        {
133    
134            private String oleStatisticalCategoryId;
135            private String oleStatisticalCategoryCode;
136            private String oleStatisticalCategoryName;
137            private String oleStatisticalCategoryDesc;
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(OleStatisticalCategoryContract contract) {
150                if(contract == null) {
151                    throw new IllegalArgumentException("contract was null");
152                }
153                Builder builder = create();
154                if (contract.getOleStatisticalCategoryId() != null) {
155                    builder.setOleStatisticalCategoryId(contract.getOleStatisticalCategoryId());
156                }
157                if(contract.getOleStatisticalCategoryCode() != null) {
158                    builder.setOleStatisticalCategoryCode(contract.getOleStatisticalCategoryCode());
159                }
160                if(contract.getOleStatisticalCategoryName() != null) {
161                    builder.setOleStatisticalCategoryName(contract.getOleStatisticalCategoryName());
162                }
163                if(contract.isActive()) {
164                    builder.setActive(contract.isActive());
165                }
166                if(contract.getOleStatisticalCategoryDesc() != null) {
167                    builder.setOleStatisticalCategoryDesc(contract.getOleStatisticalCategoryDesc());
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 OleStatisticalCategoryDefinition build() {
179                return new OleStatisticalCategoryDefinition(this);
180            }
181    
182            public String getOleStatisticalCategoryId() {
183                return oleStatisticalCategoryId;
184            }
185    
186            public void setOleStatisticalCategoryId(String oleStatisticalCategoryId) {
187                this.oleStatisticalCategoryId = oleStatisticalCategoryId;
188            }
189    
190            public String getOleStatisticalCategoryCode() {
191                return oleStatisticalCategoryCode;
192            }
193    
194            public void setOleStatisticalCategoryCode(String oleStatisticalCategoryCode) {
195                this.oleStatisticalCategoryCode = oleStatisticalCategoryCode;
196            }
197    
198            public String getOleStatisticalCategoryName() {
199                return oleStatisticalCategoryName;
200            }
201    
202            public void setOleStatisticalCategoryName(String oleStatisticalCategoryName) {
203                this.oleStatisticalCategoryName = oleStatisticalCategoryName;
204            }
205    
206            public String getOleStatisticalCategoryDesc() {
207                return oleStatisticalCategoryDesc;
208            }
209    
210            public void setOleStatisticalCategoryDesc(String oleStatisticalCategoryDesc) {
211                this.oleStatisticalCategoryDesc = oleStatisticalCategoryDesc;
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.oleStatisticalCategoryId;
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.oleStatisticalCategoryId = id;
252            }
253        }
254    
255        static class Constants {
256    
257            final static String ROOT_ELEMENT_NAME = "oleStatisticalCategory";
258            final static String TYPE_NAME = "oleStatisticalCategoryType";
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_STATISTICAL_CATEGORY_ID = "oleStatisticalCategoryId";
264            final static String OLE_STATISTICAL_CATEGORY_CODE = "oleStatisticalCategoryCode";
265            final static String OLE_STATISTICAL_CATEGORY_NAME = "oleStatisticalCategoryName";
266            final static String OLE_STATISTICAL_CATEGORY_DESC = "oleStatisticalCategoryDesc";
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 + "/" + Constants.TYPE_NAME;
273        }
274    }