//
// $Id: Username.java,v 1.1 2004/01/31 06:38:05 mdb Exp $

package com.samskivert.servlet.user;

/**
 * Allows us to require a valid username as a parameter without having to
 * do the checking ourselves.
 */
public class Username
{
    /**
     * Creates a username instance. Usernames must consist only of
     * characters that match the following regular expression:
     * <code>[_A-Za-z0-9]+</code> and be longer than two characters.
     */
    public Username (String username)
        throws InvalidUsernameException
    {
	// check minimum length
	if (username.length() < MINIMUM_USERNAME_LENGTH) {
	    throw new InvalidUsernameException("error.username_too_short");
	}

	// check that it's only valid characters
	if (!username.matches(NAME_REGEX)) {
	    throw new InvalidUsernameException("error.invalid_username");
	}

        _username = username;
    }

    /** Returns the text of this username. */
    public String getUsername ()
    {
        return _username;
    }

    /** Returns a string representation of this instance. */
    public String toString ()
    {
        return _username;
    }

    protected String _username;

    /** The minimum allowable length of a username. */
    protected static final int MINIMUM_USERNAME_LENGTH = 3;

    /** The regular expression defining valid names. */
    protected static final String NAME_REGEX = "^[_A-Za-z0-9]+$";
}

@@ -22,17 +22,17 @@
 ava,v 1.
-1
+2
  2004/01
@@ -42,13 +42,13 @@
  06:
-38:05
+41:47
  mdb
@@ -229,16 +229,363 @@
 rname%0A%7B%0A
+    /** The minimum allowable length of a username. */%0A    public static final int MINIMUM_USERNAME_LENGTH = 3;%0A%0A    /** The maximum allowable length of a username. */%0A    public static final int MAXIMUM_USERNAME_LENGTH = 12;%0A%0A    /** The regular expression defining valid names. */%0A    public static final String NAME_REGEX = %22%5E%5B_A-Za-z0-9%5D+$%22;%0A%0A
     /**%0A
@@ -885,24 +885,16 @@
 / check 
-minimum 
 length%0A%09
@@ -1015,16 +1015,139 @@
 rt%22);%0A%09%7D
+%0A%09if (username.length() %3E MAXIMUM_USERNAME_LENGTH) %7B%0A%09    throw new InvalidUsernameException(%22error.username_too_long%22);%0A%09%7D
 %0A%0A%09// ch
@@ -1572,24 +1572,24 @@
 ame;%0A    %7D%0A%0A
+
     protecte
@@ -1611,246 +1611,7 @@
 ame;
-%0A%0A    /** The minimum allowable length of a username. */%0A    protected static final int MINIMUM_USERNAME_LENGTH = 3;%0A%0A    /** The regular expression defining valid names. */%0A    protected static final String NAME_REGEX = %22%5E%5B_A-Za-z0-9%5D+$%22;
 %0A%7D%0A

Check maximum length as well, make the constraints public so that we can eyeball them from elsewhere.