org.apache.commons.id.serial
Class PrefixedAlphanumericGenerator

java.lang.Object
  extended by org.apache.commons.id.AbstractStringIdentifierGenerator
      extended by org.apache.commons.id.serial.AlphanumericGenerator
          extended by org.apache.commons.id.serial.PrefixedAlphanumericGenerator
All Implemented Interfaces:
java.io.Serializable, IdentifierGenerator, StringIdentifierGenerator

public class PrefixedAlphanumericGenerator
extends AlphanumericGenerator

PrefixedAlphanumericGenerator is an identifier generator that generates an incrementing number in base 36 with a prefix as a String object.

All generated ids have the same length (prefixed and padded with 0's on the left), which is determined by the size parameter passed to the constructor.

The wrap property determines whether or not the sequence wraps when it reaches the largest value that can be represented in size base 36 digits. If wrap is false and the the maximum representable value is exceeded, an IllegalStateException is thrown.

Version:
$Id$
Author:
Commons-Id team
See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.apache.commons.id.AbstractStringIdentifierGenerator
ALPHA_NUMERIC_CHARSET_SIZE, DEFAULT_ALPHANUMERIC_IDENTIFIER_SIZE, MAX_INT_ALPHANUMERIC_VALUE_LENGTH, MAX_INT_NUMERIC_VALUE_LENGTH, MAX_LONG_ALPHANUMERIC_VALUE_LENGTH, MAX_LONG_NUMERIC_VALUE_LENGTH
 
Fields inherited from interface org.apache.commons.id.StringIdentifierGenerator
INFINITE_MAX_LENGTH
 
Constructor Summary
PrefixedAlphanumericGenerator(java.lang.String prefix, boolean wrap, int size)
          Create a new prefixed alphanumeric generator with the specified prefix.
 
Method Summary
 java.lang.String getPrefix()
          Return the prefix for this prefixed alphanumeric generator.
 int getSize()
          Returns the (constant) size of the strings generated by this generator.
 long maxLength()
          Returns the maximum length (number or characters) for an identifier from this sequence.
 long minLength()
          Returns the minimum length (number of characters) for an identifier from this sequence.
 java.lang.String nextStringIdentifier()
          Gets the next identifier in the sequence.
 
Methods inherited from class org.apache.commons.id.serial.AlphanumericGenerator
isWrap, setWrap
 
Methods inherited from class org.apache.commons.id.AbstractStringIdentifierGenerator
nextIdentifier
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PrefixedAlphanumericGenerator

public PrefixedAlphanumericGenerator(java.lang.String prefix,
                                     boolean wrap,
                                     int size)
Create a new prefixed alphanumeric generator with the specified prefix.

Parameters:
prefix - prefix, must not be null
wrap - should the factory wrap when it reaches the maximum value that can be represented in size base 36 digits (or throw an exception)
size - the size of the identifier, including prefix length
Throws:
java.lang.IllegalArgumentException - if size less prefix length is not at least one
java.lang.NullPointerException - if prefix is null
Method Detail

getPrefix

public java.lang.String getPrefix()
Return the prefix for this prefixed alphanumeric generator.

Returns:
the prefix for this prefixed alphanumeric generator

maxLength

public long maxLength()
Description copied from class: AbstractStringIdentifierGenerator
Returns the maximum length (number or characters) for an identifier from this sequence.

The default implementation returns StringIdentifierGenerator.INFINITE_MAX_LENGTH. Implementations with bounded length identifiers should override this method to return the maximum length of a generated identifier.

Specified by:
maxLength in interface StringIdentifierGenerator
Overrides:
maxLength in class AlphanumericGenerator
Returns:
the maximum identifier length, or StringIdentifierGenerator.INFINITE_MAX_LENGTH if there is no upper bound

minLength

public long minLength()
Description copied from class: AbstractStringIdentifierGenerator
Returns the minimum length (number of characters) for an identifier from this sequence.

The default implementation returns 0. Implementations with identifiers having a postive minimum length should override this method to return the maximum length of a generated identifier.

Specified by:
minLength in interface StringIdentifierGenerator
Overrides:
minLength in class AlphanumericGenerator
Returns:
the minimum identifier length

getSize

public int getSize()
Description copied from class: AlphanumericGenerator
Returns the (constant) size of the strings generated by this generator.

Overrides:
getSize in class AlphanumericGenerator
Returns:
the size of generated identifiers

nextStringIdentifier

public java.lang.String nextStringIdentifier()
Description copied from interface: StringIdentifierGenerator
Gets the next identifier in the sequence.

Specified by:
nextStringIdentifier in interface StringIdentifierGenerator
Overrides:
nextStringIdentifier in class AlphanumericGenerator
Returns:
the next String identifier in sequence


Copyright 2003-2008 The Apache Software Foundation. All Rights Reserved.