org.apache.commons.id.serial
Class PrefixedLeftPaddedNumericGenerator

java.lang.Object
  extended by org.apache.commons.id.AbstractStringIdentifierGenerator
      extended by org.apache.commons.id.serial.PrefixedLeftPaddedNumericGenerator
All Implemented Interfaces:
IdentifierGenerator, StringIdentifierGenerator

public class PrefixedLeftPaddedNumericGenerator
extends AbstractStringIdentifierGenerator

PrefixedLeftPaddedNumericGenerator is an Identifier Generator that generates a left-padded incrementing number 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 10 digits. If wrap is false and the the maximum representable value is exceeded, an IllegalStateException is thrown.

Version:
$Id$
Author:
Commons-Id team

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
PrefixedLeftPaddedNumericGenerator(java.lang.String prefix, boolean wrap, int size)
          Create a new prefixed left-padded numeric generator with the specified prefix.
 
Method Summary
 java.lang.String getPrefix()
          Return the prefix for this prefixed numeric generator.
 int getSize()
          Returns the (constant) size of the strings generated by this generator.
 boolean isWrap()
          Getter for property wrap.
 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.
 void setWrap(boolean wrap)
          Setter for property wrap.
 
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

PrefixedLeftPaddedNumericGenerator

public PrefixedLeftPaddedNumericGenerator(java.lang.String prefix,
                                          boolean wrap,
                                          int size)
Create a new prefixed left-padded numeric generator with the specified prefix.

Parameters:
prefix - prefix, must not be null or empty
wrap - should the factory wrap when it reaches the maximum value that can be represented in size base 10 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 numeric generator.

Returns:
the prefix for this prefixed numeric 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 AbstractStringIdentifierGenerator
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 AbstractStringIdentifierGenerator
Returns:
the minimum identifier length

getSize

public int getSize()
Returns the (constant) size of the strings generated by this generator.

Returns:
the size of generated identifiers

isWrap

public boolean isWrap()
Getter for property wrap.

Returns:
true if this generator is set up to wrap

setWrap

public void setWrap(boolean wrap)
Setter for property wrap.

Parameters:
wrap - should the factory wrap when it reaches the maximum value that can be represented in size base 10 digits (or throw an exception)

nextStringIdentifier

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

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


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