001 /*
002 * Copyright 2011 The Kuali Foundation.
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package org.kuali.kfs.module.cam.businessobject;
017
018 import java.util.HashMap;
019 import java.util.LinkedHashMap;
020 import java.util.List;
021 import java.util.Map;
022
023 import org.apache.log4j.Logger;
024 import org.kuali.kfs.sys.businessobject.Building;
025 import org.kuali.kfs.sys.businessobject.Room;
026 import org.kuali.kfs.sys.context.SpringContext;
027 import org.kuali.rice.kns.bo.Campus;
028 import org.kuali.rice.kns.bo.GlobalBusinessObjectDetailBase;
029 import org.kuali.rice.kns.service.KualiModuleService;
030 import org.kuali.rice.kns.service.PersistenceStructureService;
031 import org.kuali.rice.kns.util.ObjectUtils;
032
033 /**
034 * @author Kuali Nervous System Team (kualidev@oncourse.iu.edu)
035 */
036
037 public class AssetLocationGlobalDetail extends GlobalBusinessObjectDetailBase {
038
039 private static final Logger LOG = Logger.getLogger(AssetLocationGlobalDetail.class);
040
041 private String documentNumber;
042 private Long capitalAssetNumber;
043 private String campusCode;
044 private String buildingCode;
045 private String buildingRoomNumber;
046 private String buildingSubRoomNumber;
047 private String campusTagNumber;
048
049 private Asset asset;
050 private Campus campus;
051 private Building building;
052 private Room buildingRoom;
053
054 /**
055 * Default constructor.
056 */
057 public AssetLocationGlobalDetail() {
058
059 }
060
061 /**
062 * Gets the documentNumber attribute.
063 *
064 * @return Returns the documentNumber
065 *
066 */
067 public String getDocumentNumber() {
068 return documentNumber;
069 }
070
071 /**
072 * Sets the documentNumber attribute.
073 *
074 * @param documentNumber The documentNumber to set.
075 *
076 */
077 public void setDocumentNumber(String documentNumber) {
078 this.documentNumber = documentNumber;
079 }
080
081
082 /**
083 * Gets the capitalAssetNumber attribute.
084 *
085 * @return Returns the capitalAssetNumber
086 *
087 */
088 public Long getCapitalAssetNumber() {
089 return capitalAssetNumber;
090 }
091
092 /**
093 * Sets the capitalAssetNumber attribute.
094 *
095 * @param capitalAssetNumber The capitalAssetNumber to set.
096 *
097 */
098 public void setCapitalAssetNumber(Long capitalAssetNumber) {
099 this.capitalAssetNumber = capitalAssetNumber;
100 }
101
102
103 /**
104 * Gets the campusCode attribute.
105 *
106 * @return Returns the campusCode
107 *
108 */
109 public String getCampusCode() {
110 return campusCode;
111 }
112
113 /**
114 * Sets the campusCode attribute.
115 *
116 * @param campusCode The campusCode to set.
117 *
118 */
119 public void setCampusCode(String campusCode) {
120 this.campusCode = campusCode;
121 }
122
123
124 /**
125 * Gets the buildingCode attribute.
126 *
127 * @return Returns the buildingCode
128 *
129 */
130 public String getBuildingCode() {
131 return buildingCode;
132 }
133
134 /**
135 * Sets the buildingCode attribute.
136 *
137 * @param buildingCode The buildingCode to set.
138 *
139 */
140 public void setBuildingCode(String buildingCode) {
141 this.buildingCode = buildingCode;
142 }
143
144
145 /**
146 * Gets the buildingRoomNumber attribute.
147 *
148 * @return Returns the buildingRoomNumber
149 *
150 */
151 public String getBuildingRoomNumber() {
152 return buildingRoomNumber;
153 }
154
155 /**
156 * Sets the buildingRoomNumber attribute.
157 *
158 * @param buildingRoomNumber The buildingRoomNumber to set.
159 *
160 */
161 public void setBuildingRoomNumber(String buildingRoomNumber) {
162 this.buildingRoomNumber = buildingRoomNumber;
163 }
164
165
166 /**
167 * Gets the buildingSubRoomNumber attribute.
168 *
169 * @return Returns the buildingSubRoomNumber
170 *
171 */
172 public String getBuildingSubRoomNumber() {
173 return buildingSubRoomNumber;
174 }
175
176 /**
177 * Sets the buildingSubRoomNumber attribute.
178 *
179 * @param buildingSubRoomNumber The buildingSubRoomNumber to set.
180 *
181 */
182 public void setBuildingSubRoomNumber(String buildingSubRoomNumber) {
183 this.buildingSubRoomNumber = buildingSubRoomNumber;
184 }
185
186
187 /**
188 * Gets the campusTagNumber attribute.
189 *
190 * @return Returns the campusTagNumber
191 *
192 */
193 public String getCampusTagNumber() {
194 return campusTagNumber;
195 }
196
197 /**
198 * Sets the campusTagNumber attribute.
199 *
200 * @param campusTagNumber The campusTagNumber to set.
201 *
202 */
203 public void setCampusTagNumber(String campusTagNumber) {
204 this.campusTagNumber = campusTagNumber;
205 }
206
207 /**
208 * Gets the asset attribute.
209 * @return Returns the asset.
210 */
211 public Asset getAsset() {
212 return asset;
213 }
214
215 /**
216 * Sets the asset attribute value.
217 * @param asset The asset to set.
218 */
219 public void setAsset(Asset asset) {
220 this.asset = asset;
221 }
222
223 /**
224 * Gets the campus attribute.
225 *
226 * @return Returns the campus
227 *
228 */
229 public Campus getCampus() {
230 return campus = (Campus) SpringContext.getBean(KualiModuleService.class).getResponsibleModuleService(Campus.class).retrieveExternalizableBusinessObjectIfNecessary(this, campus, "campus");
231 }
232
233 /**
234 * Sets the campus attribute.
235 *
236 * @param campus The campus to set.
237 * @deprecated
238 */
239 public void setCampus(Campus campus) {
240 this.campus = campus;
241 }
242
243 /**
244 * Gets the building attribute.
245 * @return Returns the building.
246 */
247 public Building getBuilding() {
248 return building;
249 }
250
251 /**
252 * Sets the building attribute value.
253 * @param building The building to set.
254 * @deprecated
255 */
256 public void setBuilding(Building building) {
257 this.building = building;
258 }
259
260 /**
261 * Gets the buildingRoom attribute.
262 * @return Returns the buildingRoom.
263 */
264 public Room getBuildingRoom() {
265 return buildingRoom;
266 }
267
268 /**
269 * Sets the buildingRoom attribute value.
270 * @param buildingRoom The buildingRoom to set.
271 * @deprecated
272 */
273 public void setBuildingRoom(Room buildingRoom) {
274 this.buildingRoom = buildingRoom;
275 }
276
277 /**
278 * Returns a map of the keys<propName,value> based on the primary key names of the underlying BO and reflecting into this
279 * object.
280 */
281 public Map<String, Object> getPrimaryKeys() {
282 try {
283 List<String> keys = SpringContext.getBean(PersistenceStructureService.class).getPrimaryKeys(Asset.class);
284 HashMap<String, Object> pks = new HashMap<String, Object>(keys.size());
285 for (String key : keys) {
286 // attempt to read the property of the current object
287 // this requires that the field names match between the underlying BO object
288 // and this object
289 pks.put(key, ObjectUtils.getPropertyValue(this, key));
290 }
291 return pks;
292 }
293 catch (Exception ex) {
294 LOG.error("unable to get primary keys for global detail object", ex);
295 }
296 return new HashMap<String, Object>(0);
297 }
298
299 /**
300 * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper()
301 */
302 protected LinkedHashMap toStringMapper() {
303 LinkedHashMap m = new LinkedHashMap();
304 m.put("documentNumber", this.documentNumber);
305 if (this.capitalAssetNumber != null) {
306 m.put("capitalAssetNumber", this.capitalAssetNumber.toString());
307 }
308 return m;
309 }
310 }