/*
* The Kuali Financial System, a comprehensive financial management system for higher education.
*
* Copyright 2005-2014 The Kuali Foundation
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.kuali.kfs.module.cam.document.validation.impl;
import org.kuali.kfs.coa.document.validation.impl.MaintenancePreRulesBase;
import org.kuali.kfs.module.cam.businessobject.Asset;
import org.kuali.rice.kns.document.MaintenanceDocument;
import org.kuali.rice.krad.util.GlobalVariables;
import org.kuali.rice.krad.util.ObjectUtils;
/**
* Business Prerules applicable to Asset documents. These PreRules checks for the Asset that needs to occur while
* still in the Struts processing. This includes setting the .... field using the values from .... and
* ..., and could be used for many other purposes.<br>
* This class (unlike AssetRule) does not delegate responsibility due to limited number of PreRules.
*/
public class AssetPreRule extends MaintenancePreRulesBase {
protected static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(AssetPreRule.class);
protected Asset newAsset;
protected Asset copyAsset;
protected String personId;
public AssetPreRule() {
}
/**
* Returns the Universal User Id of the current logged-in user
*
* @return String the PersonId
*/
public String getPersonId() {
if (ObjectUtils.isNull(personId)) {
this.personId = GlobalVariables.getUserSession().getPerson().getPrincipalId();
}
return this.personId;
}
/**
* Sets up a convenience object and few other Asset attributes
*
* @see org.kuali.kfs.coa.document.validation.impl.MaintenancePreRulesBase#doCustomPreRules(org.kuali.rice.kns.document.MaintenanceDocument)
*/
@Override
protected boolean doCustomPreRules(MaintenanceDocument document) {
setupConvenienceObjects(document);
setFederalContribution(document);
return true;
}
/**
* Sets the convenience objects like newAsset and oldAsset, so you have short and easy handles to the new and old
* objects contained in the maintenance document. It also calls the BusinessObjectBase.refresh(), which will attempt to load all
* sub-objects from the DB by their primary keys, if available.
*
* @param document - the maintenanceDocument being evaluated
*/
protected void setupConvenienceObjects(MaintenanceDocument document) {
// setup newAccount convenience objects, make sure all possible sub-objects are populated
newAsset = (Asset) document.getNewMaintainableObject().getBusinessObject();
copyAsset = (Asset) ObjectUtils.deepCopy(newAsset);
copyAsset.refresh();
}
protected void setFederalContribution(MaintenanceDocument document) {
}
}