001package org.kuali.ole.deliver.bo;
002
003import org.apache.commons.collections.CollectionUtils;
004import org.kuali.ole.deliver.api.OlePatronAffiliationContract;
005import org.kuali.ole.deliver.api.OlePatronAffiliationDefinition;
006import org.kuali.rice.kim.api.identity.employment.EntityEmployment;
007import org.kuali.rice.kim.impl.identity.affiliation.EntityAffiliationBo;
008import org.kuali.rice.kim.impl.identity.affiliation.EntityAffiliationTypeBo;
009import org.kuali.rice.kim.impl.identity.employment.EntityEmploymentBo;
010import org.kuali.rice.krad.bo.BusinessObjectBase;
011
012import java.util.ArrayList;
013import java.util.List;
014
015/**
016 * OlePatronAffiliation provides OlePatronAffiliation information through getter and setter.
017 */
018public class OlePatronAffiliation extends BusinessObjectBase implements OlePatronAffiliationContract {
019
020    private String entityAffiliationId;
021
022    private String entityId;
023
024    private String affiliationTypeCode;
025
026    private String campusCode;
027
028    private boolean defaultValue;
029
030    private boolean active;
031
032    private EntityAffiliationTypeBo affiliationType = new EntityAffiliationTypeBo();
033
034    private List<EntityEmploymentBo> employments = new ArrayList<EntityEmploymentBo>();
035
036    private Long versionNumber;
037
038    private String objectId;
039
040    public OlePatronAffiliation() {
041
042    }
043
044    /**
045     * Constructor sets the values to entityAffiliationBo object from OlePatronAffiliation
046     *
047     * @param entityAffiliationBo
048     */
049    public OlePatronAffiliation(EntityAffiliationBo entityAffiliationBo) {
050        this.setEntityAffiliationId(entityAffiliationBo.getId());
051        this.setAffiliationTypeCode(entityAffiliationBo.getAffiliationTypeCode());
052        this.setAffiliationType(entityAffiliationBo.getAffiliationType());
053        this.setCampusCode(entityAffiliationBo.getCampusCode());
054        this.setDefaultValue(entityAffiliationBo.getDefaultValue());
055        this.setActive(entityAffiliationBo.getActive());
056        this.setVersionNumber(entityAffiliationBo.getVersionNumber());
057        this.setObjectId(entityAffiliationBo.getObjectId());
058    }
059
060    /**
061     * Gets the value of entityAffiliationId property
062     *
063     * @return entityAffiliationId
064     */
065    public String getEntityAffiliationId() {
066        return entityAffiliationId;
067    }
068
069    /**
070     * Sets the value for entityAffiliationId property
071     *
072     * @param entityAffiliationId
073     */
074    public void setEntityAffiliationId(String entityAffiliationId) {
075        this.entityAffiliationId = entityAffiliationId;
076    }
077
078    /**
079     * Gets the value of affiliationTypeCode property
080     *
081     * @return affiliationTypeCode
082     */
083    public String getAffiliationTypeCode() {
084        return affiliationTypeCode;
085    }
086
087    /**
088     * Sets the value for affiliationTypeCode property
089     *
090     * @param affiliationTypeCode
091     */
092    public void setAffiliationTypeCode(String affiliationTypeCode) {
093        this.affiliationTypeCode = affiliationTypeCode;
094    }
095
096    /**
097     * Gets the value of campusCode property
098     *
099     * @return campusCode
100     */
101    public String getCampusCode() {
102        return campusCode;
103    }
104
105    /**
106     * Sets the value for campusCode property
107     *
108     * @param campusCode
109     */
110    public void setCampusCode(String campusCode) {
111        this.campusCode = campusCode;
112    }
113
114    /**
115     * Gets the value of defaultValue property
116     *
117     * @return defaultValue
118     */
119    public boolean isDefaultValue() {
120        return defaultValue;
121    }
122
123    /**
124     * Sets the value for defaultValue property
125     *
126     * @param defaultValue
127     */
128    public void setDefaultValue(boolean defaultValue) {
129        this.defaultValue = defaultValue;
130    }
131
132    /**
133     * Gets the value of active property
134     *
135     * @return active
136     */
137    public boolean isActive() {
138        return active;
139    }
140
141    /**
142     * Sets the value for active property
143     *
144     * @param active
145     */
146    public void setActive(boolean active) {
147        this.active = active;
148    }
149
150    /**
151     * Gets the value of affiliationType property
152     *
153     * @return affiliationType
154     */
155    public EntityAffiliationTypeBo getAffiliationType() {
156        return affiliationType;
157    }
158
159    /**
160     * Sets the value for affiliationType property
161     *
162     * @param affiliationType
163     */
164    public void setAffiliationType(EntityAffiliationTypeBo affiliationType) {
165        this.affiliationType = affiliationType;
166    }
167
168    /**
169     * Gets the value of employments property
170     *
171     * @return employments
172     */
173    public List<EntityEmploymentBo> getEmployments() {
174        return employments;
175    }
176
177    /**
178     * Sets the value for employments property
179     *
180     * @param employments
181     */
182    public void setEmployments(List<EntityEmploymentBo> employments) {
183        this.employments = employments;
184    }
185
186    /**
187     * Gets the value of EntityAffiliation property
188     *
189     * @return EntityAffiliation
190     */
191    public EntityAffiliationBo getEntityAffliationBo() {
192        EntityAffiliationBo entityAffiliationBo = new EntityAffiliationBo();
193        entityAffiliationBo.setId(this.getEntityAffiliationId());
194        entityAffiliationBo.setAffiliationTypeCode(this.getAffiliationTypeCode());
195        entityAffiliationBo.setAffiliationType(this.getAffiliationType());
196        entityAffiliationBo.setActive(this.isActive());
197        entityAffiliationBo.setDefaultValue(this.defaultValue);
198        entityAffiliationBo.setCampusCode(this.getCampusCode());
199        entityAffiliationBo.setObjectId(this.getObjectId());
200        entityAffiliationBo.setVersionNumber(this.getVersionNumber());
201        entityAffiliationBo.setEntityId(this.getEntityId());
202        return entityAffiliationBo;
203    }
204
205    /**
206     * This method converts the PersistableBusinessObjectBase OleBorrowerType into immutable object OlePatronAffiliationDefinition
207     *
208     * @param bo(OlePatronAffiliation)
209     * @return OlePatronAffiliationDefinition
210     */
211    static OlePatronAffiliationDefinition to(OlePatronAffiliation bo) {
212        if (bo == null) {
213            return null;
214        }
215        return OlePatronAffiliationDefinition.Builder.create(bo).build();
216    }
217
218    /**
219     * This method converts the immutable object OlePatronAffiliationDefinition into PersistableBusinessObjectBase OlePatronAffiliation
220     *
221     * @param im(OlePatronAffiliationDefinition)
222     *
223     * @return bo(OlePatronAffiliation)
224     */
225    static OlePatronAffiliation from(OlePatronAffiliationDefinition im) {
226        if (im == null) {
227            return null;
228        }
229
230        OlePatronAffiliation bo = new OlePatronAffiliation();
231        bo.entityAffiliationId = im.getEntityAffiliationId();
232        bo.affiliationTypeCode = im.getAffiliationTypeCode();
233        if (im.getAffiliationType() != null) {
234            bo.affiliationType = EntityAffiliationTypeBo.from(im.getAffiliationType());
235        }
236        bo.defaultValue = im.isDefaultValue();
237        bo.active = im.isActive();
238        bo.versionNumber = im.getVersionNumber();
239        bo.entityId = im.getEntityId();
240        bo.objectId = im.getObjectId();
241
242        if (CollectionUtils.isNotEmpty(im.getEmployments())) {
243            for (EntityEmployment entityEmployment : im.getEmployments()) {
244                bo.employments.add(EntityEmploymentBo.from(entityEmployment));
245            }
246        }
247        return bo;
248    }
249
250    @Override
251    public void refresh() {
252        //To change body of implemented methods use File | Settings | File Templates.
253    }
254
255    /**
256     * Gets the value of entityAffiliationId property
257     *
258     * @return entityAffiliationId
259     */
260    @Override
261    public String getId() {
262        return this.entityAffiliationId;
263    }
264
265    /**
266     * Gets the value of versionNumber property
267     *
268     * @return versionNumber
269     */
270    @Override
271    public Long getVersionNumber() {
272        return this.versionNumber;
273    }
274
275    /**
276     * Sets the value for versionNumber property
277     *
278     * @param versionNumber
279     */
280    public void setVersionNumber(Long versionNumber) {
281        this.versionNumber = versionNumber;
282    }
283
284    /**
285     * Gets the value of objectId property
286     *
287     * @return objectId
288     */
289    public String getObjectId() {
290        return objectId;
291    }
292
293    /**
294     * Sets the value for objectId property
295     *
296     * @param objectId
297     */
298    public void setObjectId(String objectId) {
299        this.objectId = objectId;
300    }
301
302    /**
303     * Gets the value of entityId property
304     *
305     * @return entityId
306     */
307    public String getEntityId() {
308        return entityId;
309    }
310
311    /**
312     * Sets the value for entityId property
313     *
314     * @param entityId
315     */
316    public void setEntityId(String entityId) {
317        this.entityId = entityId;
318    }
319}