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 = 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})
034public final class OleStatisticalCategoryDefinition extends AbstractDataTransferObject implements org.kuali.ole.deliver.api.OleStatisticalCategoryContract {
035
036    private static final long serialVersionUID = 1L;
037
038
039    @XmlElement(name = Elements.OLE_STATISTICAL_CATEGORY_ID, required = false)
040    private final String oleStatisticalCategoryId;
041
042    @XmlElement(name = Elements.OLE_STATISTICAL_CATEGORY_CODE, required = false)
043    private final String oleStatisticalCategoryCode;
044
045    @XmlElement(name = Elements.OLE_STATISTICAL_CATEGORY_NAME, required = false)
046    private final String oleStatisticalCategoryName;
047
048    @XmlElement(name = Elements.OLE_STATISTICAL_CATEGORY_DESC, required = false)
049    private final String oleStatisticalCategoryDesc;
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 OleStatisticalCategoryDefinition() {
064        this.oleStatisticalCategoryId = null;
065        this.oleStatisticalCategoryCode = null;
066        this.oleStatisticalCategoryName = null;
067        this.active = false;
068        this.oleStatisticalCategoryDesc = null;
069        this.versionNumber = null;
070        //this.objectId = null;
071    }
072
073
074    private OleStatisticalCategoryDefinition(Builder builder) {
075        this.oleStatisticalCategoryId = builder.getOleStatisticalCategoryId();
076        this.oleStatisticalCategoryCode = builder.getOleStatisticalCategoryCode();
077        this.oleStatisticalCategoryName = builder.getOleStatisticalCategoryName();
078        this.oleStatisticalCategoryDesc = builder.getOleStatisticalCategoryDesc();
079        this.active = builder.isActive();
080
081        this.versionNumber = builder.getVersionNumber();
082        //this.objectId = builder.getObjectId();
083    }
084
085
086    @Override
087    public String getOleStatisticalCategoryId() {
088        return this.oleStatisticalCategoryId;
089    }
090
091    @Override
092    public String getOleStatisticalCategoryCode() {
093        return this.oleStatisticalCategoryCode;
094    }
095
096    @Override
097    public String getOleStatisticalCategoryName() {
098        return this.oleStatisticalCategoryName;
099    }
100
101    @Override
102    public String getOleStatisticalCategoryDesc() {
103        return this.oleStatisticalCategoryDesc;
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.oleStatisticalCategoryId;
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, org.kuali.ole.deliver.api.OleStatisticalCategoryContract {
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
146        public static Builder create() {
147            return new Builder();
148        }
149
150        public static Builder create(OleStatisticalCategoryContract contract) {
151            if (contract == null) {
152                throw new IllegalArgumentException("contract was null");
153            }
154            Builder builder = create();
155            if (contract.getOleStatisticalCategoryId() != null) {
156                builder.setOleStatisticalCategoryId(contract.getOleStatisticalCategoryId());
157            }
158            if (contract.getOleStatisticalCategoryCode() != null) {
159                builder.setOleStatisticalCategoryCode(contract.getOleStatisticalCategoryCode());
160            }
161            if (contract.getOleStatisticalCategoryName() != null) {
162                builder.setOleStatisticalCategoryName(contract.getOleStatisticalCategoryName());
163            }
164            if (contract.isActive()) {
165                builder.setActive(contract.isActive());
166            }
167            if (contract.getOleStatisticalCategoryDesc() != null) {
168                builder.setOleStatisticalCategoryDesc(contract.getOleStatisticalCategoryDesc());
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 OleStatisticalCategoryDefinition build() {
180            return new OleStatisticalCategoryDefinition(this);
181        }
182
183        public String getOleStatisticalCategoryId() {
184            return oleStatisticalCategoryId;
185        }
186
187        public void setOleStatisticalCategoryId(String oleStatisticalCategoryId) {
188            this.oleStatisticalCategoryId = oleStatisticalCategoryId;
189        }
190
191        public String getOleStatisticalCategoryCode() {
192            return oleStatisticalCategoryCode;
193        }
194
195        public void setOleStatisticalCategoryCode(String oleStatisticalCategoryCode) {
196            this.oleStatisticalCategoryCode = oleStatisticalCategoryCode;
197        }
198
199        public String getOleStatisticalCategoryName() {
200            return oleStatisticalCategoryName;
201        }
202
203        public void setOleStatisticalCategoryName(String oleStatisticalCategoryName) {
204            this.oleStatisticalCategoryName = oleStatisticalCategoryName;
205        }
206
207        public String getOleStatisticalCategoryDesc() {
208            return oleStatisticalCategoryDesc;
209        }
210
211        public void setOleStatisticalCategoryDesc(String oleStatisticalCategoryDesc) {
212            this.oleStatisticalCategoryDesc = oleStatisticalCategoryDesc;
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.oleStatisticalCategoryId;
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
272    public static class Cache {
273        public static final String NAME = KimConstants.Namespaces.KIM_NAMESPACE_2_0 + "/" + Constants.TYPE_NAME;
274    }
275}