View Javadoc
1 package org.apache.turbine.util.validation; 2 3 /* ==================================================================== 4 * The Apache Software License, Version 1.1 5 * 6 * Copyright (c) 2001 The Apache Software Foundation. All rights 7 * reserved. 8 * 9 * Redistribution and use in source and binary forms, with or without 10 * modification, are permitted provided that the following conditions 11 * are met: 12 * 13 * 1. Redistributions of source code must retain the above copyright 14 * notice, this list of conditions and the following disclaimer. 15 * 16 * 2. Redistributions in binary form must reproduce the above copyright 17 * notice, this list of conditions and the following disclaimer in 18 * the documentation and/or other materials provided with the 19 * distribution. 20 * 21 * 3. The end-user documentation included with the redistribution, 22 * if any, must include the following acknowledgment: 23 * "This product includes software developed by the 24 * Apache Software Foundation (http://www.apache.org/)." 25 * Alternately, this acknowledgment may appear in the software itself, 26 * if and wherever such third-party acknowledgments normally appear. 27 * 28 * 4. The names "Apache" and "Apache Software Foundation" and 29 * "Apache Turbine" must not be used to endorse or promote products 30 * derived from this software without prior written permission. For 31 * written permission, please contact apache@apache.org. 32 * 33 * 5. Products derived from this software may not be called "Apache", 34 * "Apache Turbine", nor may "Apache" appear in their name, without 35 * prior written permission of the Apache Software Foundation. 36 * 37 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 38 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 39 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 40 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR 41 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 42 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 43 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 44 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 45 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 46 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 47 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 48 * SUCH DAMAGE. 49 * ==================================================================== 50 * 51 * This software consists of voluntary contributions made by many 52 * individuals on behalf of the Apache Software Foundation. For more 53 * information on the Apache Software Foundation, please see 54 * <http://www.apache.org/>;. 55 */ 56 57 58 /*** 59 * @author <a href="mailto:mikeh@ncsa.uiuc.edu">Mike Haberman</a> 60 */ 61 public abstract class InputValidator 62 { 63 public static final boolean AllowNullInput = true;// allow null 64 public static final int NoMaxSize = -1; // no size restrictions 65 public static final String EmptyArgv = ""; // no optional arguments 66 67 // default error messages 68 private static String NullInputError = "Null Input Not Allowed"; 69 private static String MaxSizeExceededError = "Maximum Size Exceeded"; 70 71 72 private boolean allowNullInput; 73 private int maxSize; 74 private String argv; 75 76 /*** 77 * default Constructor, 78 */ 79 public InputValidator() 80 { 81 this(AllowNullInput, NoMaxSize, EmptyArgv); 82 } 83 84 /*** 85 * Constructor, 86 * @param boolean allowNullInput 87 * @param int maxSize 88 * @param String argv 89 */ 90 public InputValidator(boolean allowNullInput, 91 int maxSize, 92 String argv) 93 { 94 this.allowNullInput = allowNullInput; 95 this.maxSize = maxSize; 96 this.argv = argv; 97 } 98 99 /*** 100 * @param boolean allowNullInput, set allowNullInput 101 */ 102 public void setAllowNullInput(boolean allowNullInput) 103 { 104 this.allowNullInput = allowNullInput; 105 } 106 107 /*** 108 * @param int maxSize, set maxSize 109 */ 110 public void setMaxSize(int maxSize) 111 { 112 this.maxSize = maxSize; 113 } 114 115 /*** 116 * @param String argv, set argv 117 */ 118 public void setArgv(String argv) 119 { 120 this.argv = argv; 121 } 122 123 124 /*** 125 * @param String input, input to be checked 126 * @return boolean, whether or not the input is valid 127 */ 128 public boolean isValid(String input) 129 { 130 try 131 { 132 checkInput(input); 133 return true; 134 } 135 catch (Exception e) 136 { 137 return false; 138 } 139 } 140 141 /*** 142 * @param String input, input to be checked 143 * @return String, error message or null 144 */ 145 public String getErrorMessage(String input) 146 { 147 try 148 { 149 checkInput(input); 150 } 151 catch (Exception e) 152 { 153 return e.toString(); 154 } 155 156 // there is no error 157 return null; 158 } 159 160 /*** 161 * @param String value 162 * @exception Exception, a generic exception. 163 */ 164 public void checkInput(String value) 165 throws Exception 166 { 167 int size = 0; 168 if (value != null) 169 { 170 value = value.trim(); 171 size = value.length(); 172 } 173 174 if (! allowNullInput && value == null) 175 { 176 throw new Exception(NullInputError); 177 } 178 179 if (maxSize != NoMaxSize && size > maxSize) 180 { 181 throw new Exception(MaxSizeExceededError); 182 } 183 184 // allow the subclass to check specifics 185 check(value); 186 } 187 188 /*** 189 * @return String, the expected format of the input 190 */ 191 public abstract String getExpectedFormat(); 192 193 /*** 194 * @param String input, input to be checked 195 * all subclasses must define this method 196 */ 197 protected abstract void check(String input) 198 throws Exception; 199 200 }

This page was automatically generated by Maven