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.sys.document.validation.impl;
017    
018    import org.kuali.kfs.sys.KFSKeyConstants;
019    import org.kuali.kfs.sys.document.validation.GenericValidation;
020    import org.kuali.kfs.sys.document.validation.event.AttributedDocumentEvent;
021    import org.kuali.rice.kns.bo.PersistableBusinessObject;
022    import org.kuali.rice.kns.service.DataDictionaryService;
023    import org.kuali.rice.kns.service.DictionaryValidationService;
024    import org.kuali.rice.kns.util.GlobalVariables;
025    
026    /**
027     * Validation to check if a reference of a validation 
028     */
029    public class ReferenceExistsValidation extends GenericValidation {
030        private PersistableBusinessObject businessObjectToValidate;
031        private DictionaryValidationService dictionaryValidationService;
032        private DataDictionaryService dataDictionaryService;
033        private String referenceName;
034        private String responsibleProperty;
035    
036        /**
037         * 
038         * @see org.kuali.kfs.sys.document.validation.Validation#validate(org.kuali.kfs.sys.document.validation.event.AttributedDocumentEvent)
039         */
040        public boolean validate(AttributedDocumentEvent event) {
041            boolean result = true;
042            if (dictionaryValidationService.validateReferenceExists(businessObjectToValidate, referenceName)) {
043                GlobalVariables.getMessageMap().putError(responsibleProperty, KFSKeyConstants.ERROR_EXISTENCE, new String[] { dataDictionaryService.getAttributeLabel(businessObjectToValidate.getClass(), responsibleProperty) });
044                result = false;
045            }
046            return result;
047        }
048    
049        /**
050         * Gets the businessObjectToValidate attribute. 
051         * @return Returns the businessObjectToValidate.
052         */
053        public PersistableBusinessObject getBusinessObjectToValidate() {
054            return businessObjectToValidate;
055        }
056    
057        /**
058         * Sets the businessObjectToValidate attribute value.
059         * @param businessObjectToValidate The businessObjectToValidate to set.
060         */
061        public void setBusinessObjectToValidate(PersistableBusinessObject businessObjectToValidate) {
062            this.businessObjectToValidate = businessObjectToValidate;
063        }
064    
065        /**
066         * Gets the referenceName attribute. 
067         * @return Returns the referenceName.
068         */
069        public String getReferenceName() {
070            return referenceName;
071        }
072    
073        /**
074         * Sets the referenceName attribute value.
075         * @param referenceName The referenceName to set.
076         */
077        public void setReferenceName(String referenceName) {
078            this.referenceName = referenceName;
079        }
080    
081        /**
082         * Gets the responsibleProperty attribute. 
083         * @return Returns the responsibleProperty.
084         */
085        public String getResponsibleProperty() {
086            return responsibleProperty;
087        }
088    
089        /**
090         * Sets the responsibleProperty attribute value.
091         * @param responsibleProperty The responsibleProperty to set.
092         */
093        public void setResponsibleProperty(String responsibleProperty) {
094            this.responsibleProperty = responsibleProperty;
095        }
096    
097        /**
098         * Sets the dictionaryValidationService attribute value.
099         * @param dictionaryValidationService The dictionaryValidationService to set.
100         */
101        public void setDictionaryValidationService(DictionaryValidationService dictionaryValidationService) {
102            this.dictionaryValidationService = dictionaryValidationService;
103        }
104    
105        /**
106         * Sets the dataDictionaryService attribute value.
107         * @param dataDictionaryService The dataDictionaryService to set.
108         */
109        public void setDataDictionaryService(DataDictionaryService dataDictionaryService) {
110            this.dataDictionaryService = dataDictionaryService;
111        }
112    }