View Javadoc
1 /* 2 * $Header: /home/cvs/jakarta-commons/validator/src/share/org/apache/commons/validator/ValidatorResults.java,v 1.10 2004/02/21 17:10:29 rleland Exp $ 3 * $Revision: 1.10 $ 4 * $Date: 2004/02/21 17:10:29 $ 5 * 6 * ==================================================================== 7 * Copyright 2001-2004 The Apache Software Foundation 8 * 9 * Licensed under the Apache License, Version 2.0 (the "License"); 10 * you may not use this file except in compliance with the License. 11 * You may obtain a copy of the License at 12 * 13 * http://www.apache.org/licenses/LICENSE-2.0 14 * 15 * Unless required by applicable law or agreed to in writing, software 16 * distributed under the License is distributed on an "AS IS" BASIS, 17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 * See the License for the specific language governing permissions and 19 * limitations under the License. 20 */ 21 22 package org.apache.commons.validator; 23 24 import java.io.Serializable; 25 import java.util.Collections; 26 import java.util.HashMap; 27 import java.util.Iterator; 28 import java.util.Map; 29 import java.util.Set; 30 31 /*** 32 * This contains the results of a set of validation rules processed 33 * on a JavaBean. 34 */ 35 public class ValidatorResults implements Serializable { 36 37 /*** 38 * Map of validation results. 39 */ 40 protected Map hResults = new HashMap(); 41 42 /*** 43 * Merge another ValidatorResults into mine. 44 */ 45 public void merge(ValidatorResults results) { 46 this.hResults.putAll(results.hResults); 47 } 48 49 /*** 50 * Add a the result of a validator action. 51 */ 52 public void add(Field field, String validatorName, boolean result) { 53 this.add(field, validatorName, result, null); 54 } 55 56 /*** 57 * Add a the result of a validator action. 58 */ 59 public void add( 60 Field field, 61 String validatorName, 62 boolean result, 63 Object value) { 64 65 ValidatorResult validatorResult = this.getValidatorResult(field.getKey()); 66 67 if (validatorResult == null) { 68 validatorResult = new ValidatorResult(field); 69 this.hResults.put(field.getKey(), validatorResult); 70 } 71 72 validatorResult.add(validatorName, result, value); 73 } 74 75 /*** 76 * Clear all results recorded by this object. 77 */ 78 public void clear() { 79 this.hResults.clear(); 80 } 81 82 /*** 83 * Return <code>true</code> if there are no messages recorded 84 * in this collection, or <code>false</code> otherwise. 85 * @deprecated Use isEmpty() instead. 86 */ 87 public boolean empty() { 88 return this.isEmpty(); 89 } 90 91 /*** 92 * Return <code>true</code> if there are no messages recorded 93 * in this collection, or <code>false</code> otherwise. 94 */ 95 public boolean isEmpty() { 96 return this.hResults.isEmpty(); 97 } 98 99 /*** 100 * Gets the <code>ValidatorResult</code> associated 101 * with the key passed in. The key the <code>ValidatorResult</code> 102 * is stored under is the <code>Field</code>'s getKey method. 103 * 104 * @param key The key generated from <code>Field</code> (this is often just 105 * the field name). 106 */ 107 public ValidatorResult getValidatorResult(String key) { 108 return (ValidatorResult) this.hResults.get(key); 109 } 110 111 /*** 112 * Return the set of all recorded messages, without distinction 113 * by which property the messages are associated with. If there are 114 * no messages recorded, an empty enumeration is returned. 115 * @deprecated Use getPropertyNames() instead. 116 */ 117 public Iterator get() { 118 if (hResults.isEmpty()) { 119 return Collections.EMPTY_LIST.iterator(); 120 } 121 122 return hResults.keySet().iterator(); 123 } 124 125 /*** 126 * Return the set of property names for which at least one message has 127 * been recorded. If there are no messages, an empty Iterator is returned. 128 * If you have recorded global messages, the String value of 129 * <code>ActionMessages.GLOBAL_MESSAGE</code> will be one of the returned 130 * property names. 131 * @deprecated Use getPropertyNames() instead. 132 */ 133 public Iterator properties() { 134 return hResults.keySet().iterator(); 135 } 136 137 /*** 138 * Return the set of property names for which at least one message has 139 * been recorded. 140 * @return An unmodifiable Set of the property names. 141 */ 142 public Set getPropertyNames() { 143 return Collections.unmodifiableSet(this.hResults.keySet()); 144 } 145 146 /*** 147 * Get a <code>Map</code> of any <code>Object</code>s returned from 148 * validation routines. 149 */ 150 public Map getResultValueMap() { 151 Map results = new HashMap(); 152 153 for (Iterator i = hResults.keySet().iterator(); i.hasNext();) { 154 String propertyKey = (String) i.next(); 155 ValidatorResult vr = this.getValidatorResult(propertyKey); 156 157 Map actions = vr.getActionMap(); 158 for (Iterator x = actions.keySet().iterator(); x.hasNext();) { 159 String actionKey = (String) x.next(); 160 ValidatorResult.ResultStatus rs = 161 (ValidatorResult.ResultStatus) actions.get(actionKey); 162 163 if (rs != null) { 164 Object result = rs.getResult(); 165 166 if (result != null && !(result instanceof Boolean)) { 167 results.put(propertyKey, result); 168 } 169 } 170 } 171 } 172 173 return results; 174 } 175 176 }

This page was automatically generated by Maven