|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.joda.convert.StringConvert
public final class StringConvert
Manager for conversion to and from a String, acting as the main client interface.
Support is provided for conversions based on the StringConverter interface
or the ToString and FromString annotations.
StringConvert is thread-safe with concurrent caches.
| Field Summary | |
|---|---|
static StringConvert |
INSTANCE
An immutable global instance. |
| Constructor Summary | |
|---|---|
StringConvert()
Creates a new conversion manager including the JDK converters. |
|
StringConvert(boolean includeJdkConverters)
Creates a new conversion manager. |
|
| Method Summary | ||
|---|---|---|
|
convertFromString(Class<T> cls,
String str)
Converts the specified object from a String. |
|
|
convertToString(Class<T> cls,
T object)
Converts the specified object to a String. |
|
|
convertToString(T object)
Converts the specified object to a String. |
|
|
findConverter(Class<T> cls)
Finds a suitable converter for the type. |
|
|
register(Class<T> cls,
StringConverter<T> converter)
Registers a converter for a specific type. |
|
|
register(Class<T> cls,
ToStringConverter<T> toString,
FromStringConverter<T> fromString)
Registers a converter for a specific type using two separate converters. |
|
|
registerMethodConstructor(Class<T> cls,
String toStringMethodName)
Registers a converter for a specific type by method and constructor. |
|
|
registerMethods(Class<T> cls,
String toStringMethodName,
String fromStringMethodName)
Registers a converter for a specific type by method names. |
|
String |
toString()
Returns a simple string representation of the object. |
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public static final StringConvert INSTANCE
This instance cannot be added to using register(java.lang.Class, however annotated classes
are picked up. To register your own converters, simply create an instance of this class.
| Constructor Detail |
|---|
public StringConvert()
The convert instance is mutable in a thread-safe manner. Converters may be altered at any time, including the JDK converters. It is strongly recommended to only alter the converters before performing actual conversions.
public StringConvert(boolean includeJdkConverters)
The convert instance is mutable in a thread-safe manner. Converters may be altered at any time, including the JDK converters. It is strongly recommended to only alter the converters before performing actual conversions.
includeJdkConverters - true to include the JDK converters| Method Detail |
|---|
public <T> String convertToString(T object)
String.
This uses findConverter(java.lang.Class to provide the converter.
T - the type to convert fromobject - the object to convert, null returns null
RuntimeException - (or subclass) if unable to convert
public <T> String convertToString(Class<T> cls,
T object)
String.
This uses findConverter(java.lang.Class to provide the converter.
The class can be provided to select a more specific converter.
T - the type to convert fromcls - the class to convert from, not nullobject - the object to convert, null returns null
RuntimeException - (or subclass) if unable to convert
public <T> T convertFromString(Class<T> cls,
String str)
String.
This uses findConverter(java.lang.Class to provide the converter.
T - the type to convert tocls - the class to convert to, not nullstr - the string to convert, null returns null
RuntimeException - (or subclass) if unable to convertpublic <T> StringConverter<T> findConverter(Class<T> cls)
This returns an instance of StringConverter for the specified class.
This could be useful in other frameworks.
The search algorithm first searches the registered converters.
It then searches for ToString and FromString annotations on the specified class.
Both searches consider superclasses, but not interfaces.
T - the type of the convertercls - the class to find a converter for, not null
RuntimeException - (or subclass) if no converter found
public <T> void register(Class<T> cls,
StringConverter<T> converter)
The converter will be used for subclasses unless overidden.
No new converters may be registered for the global singleton.
T - the type of the convertercls - the class to register a converter for, not nullconverter - the String converter, not null
IllegalArgumentException - if the class or converter are null
IllegalStateException - if trying to alter the global singleton
public <T> void register(Class<T> cls,
ToStringConverter<T> toString,
FromStringConverter<T> fromString)
This method registers a converter for the specified class. It is primarily intended for use with JDK 1.8 method references or lambdas:
sc.register(Distance.class, Distance::toString, Distance::parse);The converter will be used for subclasses unless overidden.
No new converters may be registered for the global singleton.
T - the type of the convertercls - the class to register a converter for, not nulltoString - the to String converter, typically a method reference, not nullfromString - the from String converter, typically a method reference, not null
IllegalArgumentException - if the class or converter are null
IllegalStateException - if trying to alter the global singleton
public <T> void registerMethods(Class<T> cls,
String toStringMethodName,
String fromStringMethodName)
This method allows the converter to be used when the target class cannot have annotations added.
The two method names must obey the same rules as defined by the annotations
ToString and FromString.
The converter will be used for subclasses unless overidden.
No new converters may be registered for the global singleton.
For example, convert.registerMethods(Distance.class, "toString", "parse");
T - the type of the convertercls - the class to register a converter for, not nulltoStringMethodName - the name of the method converting to a string, not nullfromStringMethodName - the name of the method converting from a string, not null
IllegalArgumentException - if the class or method name are null or invalid
IllegalStateException - if trying to alter the global singleton
public <T> void registerMethodConstructor(Class<T> cls,
String toStringMethodName)
This method allows the converter to be used when the target class cannot have annotations added.
The two method name and constructor must obey the same rules as defined by the annotations
ToString and FromString.
The converter will be used for subclasses unless overidden.
No new converters may be registered for the global singleton.
For example, convert.registerMethodConstructor(Distance.class, "toString");
T - the type of the convertercls - the class to register a converter for, not nulltoStringMethodName - the name of the method converting to a string, not null
IllegalArgumentException - if the class or method name are null or invalid
IllegalStateException - if trying to alter the global singletonpublic String toString()
toString in class Object
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||