org.joda.convert
Class RenameHandler

java.lang.Object
  extended by org.joda.convert.RenameHandler

public final class RenameHandler
extends Object

A general purpose utility for registering renames.

This handles type and enum constant renames. For example, use as follows:

  RenameHandler.INSTANCE.renamedType("org.joda.OldName", NewName.class);
  RenameHandler.INSTANCE.renamedEnum("CORRECT", Status.VALID);
  RenameHandler.INSTANCE.renamedEnum("INCORRECT", Status.INVALID);
 
The recommended usage is to edit the static singleton before using other classes. Editing a static is acceptable because renames are driven by bytecode which is static.

This class is thread-safe with concurrent caches.

Since:
1.6

Field Summary
static RenameHandler INSTANCE
          A mutable global instance.
 
Method Summary
static RenameHandler create()
          Creates an instance.
 Map<String,Enum<?>> getEnumRenames(Class<?> type)
          Gets the map of renamed for an enum type.
 Set<Class<?>> getEnumTypesWithRenames()
          Gets the set of enum types that have renames.
 Map<String,Class<?>> getTypeRenames()
          Gets the map of renamed types.
<T extends Enum<T>>
T
lookupEnum(Class<T> type, String name)
          Lookup an enum from a name, handling renames.
 Class<?> lookupType(String name)
          Lookup a type from a name, handling renames.
 void renamedEnum(String oldName, Enum<?> currentValue)
          Register the fact that an enum constant was renamed.
 void renamedType(String oldName, Class<?> currentValue)
          Register the fact that a type was renamed.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

INSTANCE

public static final RenameHandler INSTANCE
A mutable global instance. This is a singleton instance which is mutated.

Method Detail

create

public static RenameHandler create()
Creates an instance.

This is not normally used as the preferred option is to edit the singleton.

Returns:
a new instance, not null

renamedType

public void renamedType(String oldName,
                        Class<?> currentValue)
Register the fact that a type was renamed.

Parameters:
oldName - the old name of the type including the package name, not null
currentValue - the current type, not null

getTypeRenames

public Map<String,Class<?>> getTypeRenames()
Gets the map of renamed types.

An empty map is returned if there are no renames.

Returns:
a copy of the set of enum types with renames, not null

lookupType

public Class<?> lookupType(String name)
                    throws ClassNotFoundException
Lookup a type from a name, handling renames.

Parameters:
name - the name of the type to lookup, not null
Returns:
the type, not null
Throws:
ClassNotFoundException - if the name is not a valid type

renamedEnum

public void renamedEnum(String oldName,
                        Enum<?> currentValue)
Register the fact that an enum constant was renamed.

Parameters:
oldName - the old name of the enum constant, not null
currentValue - the current enum constant, not null

getEnumTypesWithRenames

public Set<Class<?>> getEnumTypesWithRenames()
Gets the set of enum types that have renames.

An empty set is returned if there are no renames.

Returns:
a copy of the set of enum types with renames, not null

getEnumRenames

public Map<String,Enum<?>> getEnumRenames(Class<?> type)
Gets the map of renamed for an enum type.

An empty map is returned if there are no renames.

Parameters:
type - the enum type, not null
Returns:
a copy of the set of enum renames, not null

lookupEnum

public <T extends Enum<T>> T lookupEnum(Class<T> type,
                                        String name)
Lookup an enum from a name, handling renames.

Type Parameters:
T - the type of the desired enum
Parameters:
type - the enum type, not null
name - the name of the enum to lookup, not null
Returns:
the enum value, not null
Throws:
IllegalArgumentException - if the name is not a valid enum constant

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2010–2014 Joda.org. All rights reserved.