001/**
002 * Copyright 2005-2018 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 */
016package org.kuali.rice.krad.datadictionary.validation.result;
017
018import java.io.Serializable;
019import java.util.Iterator;
020import java.util.LinkedHashMap;
021import java.util.Map;
022
023public class AttributeValidationResult implements Serializable {
024
025    private String attributeName;
026    private Map<String, ConstraintValidationResult> constraintValidationResultMap;
027
028    /**
029     * creates a new instance with the given attribute name
030     *
031     * @param attributeName - the attribute name
032     */
033    public AttributeValidationResult(String attributeName) {
034        this.attributeName = attributeName;
035        this.constraintValidationResultMap = new LinkedHashMap<String, ConstraintValidationResult>();
036    }
037
038    /**
039     * adds a constraint validation result
040     *
041     * @param constraintValidationResult - the constraint validation result to set
042     */
043    public void addConstraintValidationResult(ConstraintValidationResult constraintValidationResult) {
044        constraintValidationResultMap.put(constraintValidationResult.getConstraintName(), constraintValidationResult);
045    }
046
047    /**
048     * gets an iterator over the constraint validation results added to this class
049     *
050     * @return an iterator to stored constraint validation results
051     */
052    public Iterator<ConstraintValidationResult> iterator() {
053        return constraintValidationResultMap.values().iterator();
054    }
055
056    /**
057     * gets a constraint validation result with the given constraintName
058     *
059     * @param constraintName - a descriptive name of the current constraint processor
060     * @return validation result
061     */
062    protected ConstraintValidationResult getConstraintValidationResult(String constraintName) {
063        ConstraintValidationResult constraintValidationResult = constraintValidationResultMap.get(constraintName);
064        if (constraintValidationResult == null) {
065            constraintValidationResult = new ConstraintValidationResult(constraintName);
066            constraintValidationResultMap.put(constraintName, constraintValidationResult);
067        }
068        return constraintValidationResult;
069    }
070
071    /**
072     * @return the attributeName
073     */
074    public String getAttributeName() {
075        return this.attributeName;
076    }
077
078    /**
079     * @param attributeName the attributeName to set
080     */
081    public void setAttributeName(String attributeName) {
082        this.attributeName = attributeName;
083    }
084
085    /*
086     private static final long serialVersionUID = 1L;
087
088     protected String element;
089
090     protected ErrorLevel level = ErrorLevel.OK;
091
092     private String entryName;
093     private String attributeName;
094     private String errorKey;
095     private String[] errorParameters;
096
097     public AttributeValidationResult(String attributeName) {
098         this.level = ErrorLevel.OK;
099         this.attributeName = attributeName;
100     }
101
102     public AttributeValidationResult(String entryName, String attributeName) {
103         this.level = ErrorLevel.OK;
104         this.entryName = entryName;
105         this.attributeName = attributeName;
106     }
107
108     public ErrorLevel getLevel() {
109         return level;
110     }
111
112     public void setLevel(ErrorLevel level) {
113         this.level = level;
114     }
115
116     public String getElement() {
117         return element;
118     }
119
120     public void setElement(String element) {
121         this.element = element;
122     }
123
124
125     public ErrorLevel getErrorLevel() {
126         return level;
127     }
128
129     public void setError(String errorKey, String... errorParameters) {
130         this.level = ErrorLevel.ERROR;
131         this.errorKey = errorKey;
132         this.errorParameters = errorParameters;
133     }
134
135     public boolean isOk() {
136         return getErrorLevel() == ErrorLevel.OK;
137     }
138
139
140     public boolean isWarn() {
141         return getErrorLevel() == ErrorLevel.WARN;
142     }
143
144     public boolean isError() {
145         return getErrorLevel() == ErrorLevel.ERROR;
146     }
147
148     public String toString(){
149         return "Entry: [" + entryName + "] Attribute: [" + attributeName + "] - " + errorKey + " data=[" + errorParameters + "]";
150     }
151
152     public String getEntryName() {
153         return this.entryName;
154     }
155
156     public void setEntryName(String entryName) {
157         this.entryName = entryName;
158     }
159
160     public String getAttributeName() {
161         return this.attributeName;
162     }
163
164     public void setAttributeName(String attributeName) {
165         this.attributeName = attributeName;
166     }
167
168     public String getErrorKey() {
169         return this.errorKey;
170     }
171
172     public void setErrorKey(String errorKey) {
173         this.errorKey = errorKey;
174     }
175
176     public String[] getErrorParameters() {
177         return this.errorParameters;
178     }
179     public void setErrorParameters(String[] errorParameters) {
180         this.errorParameters = errorParameters;
181     }
182     */
183
184}