You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by iv...@apache.org on 2007/09/14 16:41:15 UTC

svn commit: r575705 [2/2] - in /wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation: ./ validator/

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/validator/UrlValidator.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/validator/UrlValidator.java?rev=575705&r1=575704&r2=575705&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/validator/UrlValidator.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/validator/UrlValidator.java Fri Sep 14 07:41:14 2007
@@ -25,53 +25,52 @@
 import org.apache.wicket.validation.IValidatable;
 
 /**
+ * Validator for checking URLs. The default schemes allowed are
+ * <code>http://</code>, <code>https://</code>, and <code>ftp://</code>.
  * <p>
- * Urls validator
- * </p>
+ * The behavior of validation is modified by passing in one of these options:
  * <p>
- * Default alowed schemes accepted are <code>http://, https://, ftp://</code>.
- * </p>
- * Behavour of validation is modified by passing in options:
- * <li>ALLOW_2_SLASHES - [FALSE] Allows double '/' characters in the path
- * component.</li>
- * <li>NO_FRAGMENT- [FALSE] By default fragments are allowed, if this option is
- * included then fragments are flagged as illegal.</li>
- * <li>ALLOW_ALL_SCHEMES - [FALSE] By default only http, https, and ftp are
- * considered valid schemes. Enabling this option will let any scheme pass
- * validation.</li>
- * 
+ * <ul>
+ * <li><code>ALLOW_2_SLASHES - [FALSE]</code>: Allows double '/' characters
+ * in the path component.</li>
+ * <li><code>NO_FRAGMENT- [FALSE]</code>: By default fragments are allowed.
+ * If this option is included then fragments are flagged as illegal.</li>
+ * <li><code>ALLOW_ALL_SCHEMES - [FALSE]</code>: By default only http,
+ * https, and ftp are considered valid schemes. Enabling this option will let
+ * any scheme pass validation.</li>
+ * </ul>
+ * <p>
+ * This was originally based
+ * <code>org.apache.commons.validator.UrlValidator</code>, but the dependency
+ * on Jakarta-ORO was removed and it now uses java.util.regexp instead. Usage
+ * example:
  * <p>
- * Originally based org.apache.commons.validator.UrlValidator. Remove dependency
- * on Oro and use java.util.regexp instead
- * </p>
  * <pre>
- * 	Usage : 
- * 	component.add(new UrlValidator({"http", "https"}));
+ * <code>Component.add(new UrlValidator({&quot;http&quot;, &quot;https&quot;}));</code>
  * </pre>
  * 
+ * @author Vincent Demay
+ * @since 1.2.6
  * @see <a href='http://www.ietf.org/rfc/rfc2396.txt' > Uniform Resource
  *      Identifiers (URI): Generic Syntax </a>
- * 
- * @author Vincent Demay
- * 
  */
 public class UrlValidator extends AbstractValidator
 {
 	private static final long serialVersionUID = 1L;
 
 	/**
-	 * Allows all validly formatted schemes to pass validation instead of
+	 * Allows all validly-formatted schemes to pass validation instead of
 	 * supplying a set of valid schemes.
 	 */
 	public static final int ALLOW_ALL_SCHEMES = 1 << 0;
 
 	/**
-	 * Allow two slashes in the path component of the URL.
+	 * Allow two slashes in the path component of the <code>URL</code>.
 	 */
 	public static final int ALLOW_2_SLASHES = 1 << 1;
 
 	/**
-	 * Enabling this options disallows any URL fragments.
+	 * Enabling this option disallows any <code>URL</code> fragments.
 	 */
 	public static final int NO_FRAGMENTS = 1 << 2;
 
@@ -97,12 +96,13 @@
 	//                                          12            3  4          5       6   7        8  9
 
 	/**
-	 * Schema/Protocol (ie. http:, ftp:, file:, etc).
+	 * Schema / Protocol (<code>http:</code>, <code>ftp:</code>,
+	 * <code>file:</code>, etc).
 	 */
 	private static final int PARSE_URL_SCHEME = 2;
 
 	/**
-	 * Includes hostname/ip and port number.
+	 * Includes hostname / ip and port number.
 	 */
 	private static final int PARSE_URL_AUTHORITY = 4;
 
@@ -113,7 +113,7 @@
 	private static final int PARSE_URL_FRAGMENT = 9;
 
 	/**
-	 * Protocol (ie. http:, ftp:,https:).
+	 * Protocol (<code>http:</code>, <code>ftp:</code>, or <code>https:</code>).
 	 */
 	private static final String SCHEME_PATTERN = "^[" + SCHEME_CHARS + "].*$";
 
@@ -156,12 +156,12 @@
 	private Set allowedSchemes = new HashSet();
 
 	/**
-	 * If no schemes are provided, default to this set.
+	 * If no schemes are provided, default to this set of protocols.
 	 */
 	protected String[] defaultSchemes = { "http", "https", "ftp" };
 
 	/**
-	 * Create a UrlValidator with default properties.
+	 * Constructs a <code>UrlValidator</code> with default properties.
 	 */
 	public UrlValidator()
 	{
@@ -169,14 +169,18 @@
 	}
 
 	/**
-	 * Behavior of validation is modified by passing in several strings options:
+	 * Constructs a <code>UrlValidator</code> with the given
+	 * <code>String</code> array of scheme options. The validation is modified
+	 * by passing in options in the <code>schemes</code> argument.
 	 * 
 	 * @param schemes
-	 *            Pass in one or more url schemes to consider valid, passing in
-	 *            a null will default to "http,https,ftp" being valid. If a
-	 *            non-null schemes is specified then all valid schemes must be
-	 *            specified. Setting the ALLOW_ALL_SCHEMES option will ignore
-	 *            the contents of schemes.
+	 *            Pass in one or more <code>URL</code> schemes to consider
+	 *            valid. Passing in a <code>null</code> will default to 
+	 *            "<code>http,https,ftp</code>"
+	 *            being used. If a non-<code>null</code> scheme is specified,
+	 *            then all valid schemes must be specified. Setting the
+	 *            <code>ALLOW_ALL_SCHEMES</code> option will ignore the
+	 *            contents of <code>schemes</code>.
 	 */
 	public UrlValidator(String[] schemes)
 	{
@@ -184,13 +188,14 @@
 	}
 
 	/**
-	 * Initialize a UrlValidator with the given validation options.
+	 * Constructs a <code>UrlValidator</code> with the given validation
+	 * options.
 	 * 
 	 * @param options
 	 *            The options should be set using the public constants declared
 	 *            in this class. To set multiple options you simply add them
-	 *            together. For example, ALLOW_2_SLASHES + NO_FRAGMENTS enables
-	 *            both of those options.
+	 *            together. For example, <code>ALLOW_2_SLASHES</code> +
+	 *            <code>NO_FRAGMENTS</code> enables both of those options.
 	 */
 	public UrlValidator(int options)
 	{
@@ -198,15 +203,23 @@
 	}
 
 	/**
-	 * Behavour of validation is modified by passing in options:
+	 * Constructs a <code>UrlValidator</code> with the given scheme and
+	 * validation options (see class description).
 	 * 
 	 * @param schemes
-	 *            The set of valid schemes.
+	 *            Pass in one or more <code>URL</code> schemes to consider
+	 *            valid. Passing in a <code>null</code> will default to 
+	 *            "<code>http,https,ftp</code>"
+	 *            being used. If a non-<code>null</code> scheme is specified,
+	 *            then all valid schemes must be specified. Setting the
+	 *            <code>ALLOW_ALL_SCHEMES</code> option will ignore the
+	 *            contents of <code>schemes</code>.
 	 * @param options
 	 *            The options should be set using the public constants declared
 	 *            in this class. To set multiple options you simply add them
-	 *            together. For example, ALLOW_2_SLASHES + NO_FRAGMENTS enables
-	 *            both of those options.
+	 *            together. For example, <code>ALLOW_2_SLASHES</code> +
+	 *            <code>NO_FRAGMENTS</code> enables both of those options.
+	 * 
 	 */
 	public UrlValidator(String[] schemes, int options)
 	{
@@ -225,6 +238,9 @@
 		this.allowedSchemes.addAll(Arrays.asList(schemes));
 	}
 
+	/**
+	 * @see AbstractValidator#onValidate(IValidatable)
+	 */
 	protected void onValidate(IValidatable validatable)
 	{
 		String url = (String)validatable.getValue();
@@ -234,17 +250,13 @@
 	}
 
 	/**
-	 * <p>
-	 * Checks if a field has a valid url address.
-	 * </p>
-	 * <p>
-	 * This method is public because it is directly used in tests.
-	 * </p>
+	 * Checks if a field has a valid <code>URL</code>. This method is public
+	 * because it is directly used in tests.
 	 * 
 	 * @param value
 	 *            The value validation is being performed on. A
 	 *            <code>null</code> value is considered invalid.
-	 * @return true if the url is valid.
+	 * @return <code>true</code> if the <code>URL</code> is valid
 	 */
 	public final boolean isValid(String value)
 	{
@@ -297,14 +309,14 @@
 	}
 
 	/**
-	 * Validate scheme. If schemes[] was initialized to a non null, then only
-	 * those scheme's are allowed. Note this is slightly different than for the
-	 * constructor.
+	 * Validates a scheme. If schemes[] was initialized to non-<code>null</code>,
+	 * then only those schemes are allowed. Note that this is slightly different
+	 * than for the constructor.
 	 * 
 	 * @param scheme
 	 *            The scheme to validate. A <code>null</code> value is
 	 *            considered invalid.
-	 * @return true if valid.
+	 * @return <code>true</code> if the <code>URL</code> is valid
 	 */
 	protected boolean isValidScheme(String scheme)
 	{
@@ -331,13 +343,13 @@
 	}
 
 	/**
-	 * Returns true if the authority is properly formatted. An authority is the
-	 * combination of hostname and port. A <code>null</code> authority value
-	 * is considered invalid.
+	 * Returns <code>true</code> if the authority is properly formatted. An
+	 * authority is the combination of host name and port. A <code>null</code>
+	 * authority value is considered invalid.
 	 * 
 	 * @param authority
-	 *            Authority value to validate.
-	 * @return true if authority (hostname and port) is valid.
+	 *            an authority value to validate
+	 * @return true if authority (host name and port) is valid.
 	 */
 	protected boolean isValidAuthority(String authority)
 	{
@@ -472,12 +484,12 @@
 	}
 
 	/**
-	 * Returns true if the path is valid. A <code>null</code> value is
-	 * considered invalid.
+	 * Returns <code>true</code> if the path is valid. A <code>null</code>
+	 * value is considered invalid.
 	 * 
 	 * @param path
-	 *            Path value to validate.
-	 * @return true if path is valid.
+	 *            a path value to validate.
+	 * @return <code>true</code> if path is valid.
 	 */
 	protected boolean isValidPath(String path)
 	{
@@ -513,12 +525,12 @@
 	}
 
 	/**
-	 * Returns true if the query is null or it's a properly formatted query
-	 * string.
+	 * Returns <code>true</code> if the query is <code>null</code> or if
+	 * it's a properly-formatted query string.
 	 * 
 	 * @param query
-	 *            Query value to validate.
-	 * @return true if query is valid.
+	 *            a query value to validate
+	 * @return <code>true</code> if the query is valid
 	 */
 	protected boolean isValidQuery(String query)
 	{
@@ -532,11 +544,12 @@
 	}
 
 	/**
-	 * Returns true if the given fragment is null or fragments are allowed.
+	 * Returns <code>true</code> if the given fragment is <code>null</code>
+	 * or fragments are allowed.
 	 * 
 	 * @param fragment
-	 *            Fragment value to validate.
-	 * @return true if fragment is valid.
+	 *            a fragment value to validate
+	 * @return <code>true</code> if the fragment is valid
 	 */
 	protected boolean isValidFragment(String fragment)
 	{
@@ -552,10 +565,10 @@
 	 * Returns the number of times the token appears in the target.
 	 * 
 	 * @param token
-	 *            Token value to be counted.
+	 *            a token value to be counted
 	 * @param target
-	 *            Target value to count tokens in.
-	 * @return the number of tokens.
+	 *            a target <code>String</code> to count tokens in
+	 * @return the number of tokens
 	 */
 	protected int countToken(String token, String target)
 	{
@@ -574,33 +587,26 @@
 	}
 
 	/**
-	 * <p>
-	 * Checks if the field isn't null and length of the field is greater than
-	 * zero not including whitespace.
-	 * </p>
+	 * Checks if the field isn't <code>null</code> and if length of the field
+	 * is greater than zero, not including whitespace.
 	 * 
 	 * @param value
-	 *            The value validation is being performed on.
-	 * @return true if blank or null.
+	 *            the value validation is being performed on
+	 * @return <code>true</code> if blank or <code>null</code>
 	 */
 	public static boolean isBlankOrNull(String value)
 	{
 		return ((value == null) || (value.trim().length() == 0));
 	}
 
-
 	// Flag Management
 	/**
 	 * Tests whether the given flag is on. If the flag is not a power of 2 (ie.
 	 * 3) this tests whether the combination of flags is on.
 	 * 
-	 * @param flags
-	 *            list
 	 * @param flag
-	 *            Flag value to check.
-	 * 
-	 * 
-	 * @return whether the specified flag value is on.
+	 *            flag value to check
+	 * @return whether the specified flag value is on
 	 */
 	public boolean isOn(long flag)
 	{
@@ -612,9 +618,8 @@
 	 * 3) this tests whether the combination of flags is off.
 	 * 
 	 * @param flag
-	 *            Flag value to check.
-	 * 
-	 * @return whether the specified flag value is off.
+	 *            flag value to check.
+	 * @return whether the specified flag value is off
 	 */
 	public boolean isOff(long flag)
 	{

Added: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/validator/package.html
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/validator/package.html?rev=575705&view=auto
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/validator/package.html (added)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/validator/package.html Fri Sep 14 07:41:14 2007
@@ -0,0 +1,30 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 3.2 Final//NL">
+<html>
+	<head>
+		<title>
+			org.apache.wicket.validation.validator package
+		</title>
+	</head>
+	<body>
+		<p>
+			This package provides an implementation of Wicket's 
+			validation support.
+		</p>
+	</body>
+</html>

Propchange: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/validator/package.html
------------------------------------------------------------------------------
    svn:mime-type = text/plain