com.vaadin.data.util.converter
Class StringToEnumConverter

java.lang.Object
  extended by com.vaadin.data.util.converter.StringToEnumConverter
All Implemented Interfaces:
Converter<java.lang.String,java.lang.Enum>, java.io.Serializable

public class StringToEnumConverter
extends java.lang.Object
implements Converter<java.lang.String,java.lang.Enum>

A converter that converts from String to an Enum and back.

Designed to provide nice human readable strings for Enum classes where the constants are named SOME_UPPERCASE_WORDS. Will not necessarily work correctly for other cases.

Since:
7.4
Author:
Vaadin Ltd
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from interface com.vaadin.data.util.converter.Converter
Converter.ConversionException
 
Constructor Summary
StringToEnumConverter()
           
 
Method Summary
 java.lang.Enum convertToModel(java.lang.String value, java.lang.Class<? extends java.lang.Enum> targetType, java.util.Locale locale)
          Converts the given value from target type to source type.
 java.lang.String convertToPresentation(java.lang.Enum value, java.lang.Class<? extends java.lang.String> targetType, java.util.Locale locale)
          Converts the given value from source type to target type.
static java.lang.String enumToString(java.lang.Enum<?> value, java.util.Locale locale)
          Converts the given enum to a human readable string using the given locale
 java.lang.Class<java.lang.Enum> getModelType()
          The source type of the converter.
 java.lang.Class<java.lang.String> getPresentationType()
          The target type of the converter.
static
<T extends java.lang.Enum<T>>
T
stringToEnum(java.lang.String value, java.lang.Class<T> enumType, java.util.Locale locale)
          Converts the given string to the given enum type using the given locale
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StringToEnumConverter

public StringToEnumConverter()
Method Detail

convertToModel

public java.lang.Enum convertToModel(java.lang.String value,
                                     java.lang.Class<? extends java.lang.Enum> targetType,
                                     java.util.Locale locale)
                              throws Converter.ConversionException
Description copied from interface: Converter
Converts the given value from target type to source type.

A converter can optionally use locale to do the conversion.

A converter should in most cases be symmetric so chaining Converter.convertToPresentation(Object, Class, Locale) and Converter.convertToModel(Object, Class, Locale) should return the original value.

Specified by:
convertToModel in interface Converter<java.lang.String,java.lang.Enum>
Parameters:
value - The value to convert, compatible with the target type. Can be null
targetType - The requested type of the return value
locale - The locale to use for conversion. Can be null.
Returns:
The converted value compatible with the source type
Throws:
Converter.ConversionException - If the value could not be converted

stringToEnum

public static <T extends java.lang.Enum<T>> T stringToEnum(java.lang.String value,
                                                           java.lang.Class<T> enumType,
                                                           java.util.Locale locale)
                                                throws Converter.ConversionException
Converts the given string to the given enum type using the given locale

Compatible with enumToString(Enum, Locale)

Parameters:
value - The string value to convert
enumType - The type of enum to create
locale - The locale to use for conversion. If null, the JVM default locale will be used
Returns:
The enum which matches the given string
Throws:
ConversionException - if the conversion fails
Converter.ConversionException

enumToString

public static java.lang.String enumToString(java.lang.Enum<?> value,
                                            java.util.Locale locale)
Converts the given enum to a human readable string using the given locale

Compatible with stringToEnum(String, Class, Locale)

Parameters:
value - The enum value to convert
locale - The locale to use for conversion. If null, the JVM default locale will be used
Returns:
A human readable string based on the enum
Throws:
ConversionException - if the conversion fails

convertToPresentation

public java.lang.String convertToPresentation(java.lang.Enum value,
                                              java.lang.Class<? extends java.lang.String> targetType,
                                              java.util.Locale locale)
                                       throws Converter.ConversionException
Description copied from interface: Converter
Converts the given value from source type to target type.

A converter can optionally use locale to do the conversion.

A converter should in most cases be symmetric so chaining Converter.convertToPresentation(Object, Class, Locale) and Converter.convertToModel(Object, Class, Locale) should return the original value.

Specified by:
convertToPresentation in interface Converter<java.lang.String,java.lang.Enum>
Parameters:
value - The value to convert, compatible with the target type. Can be null
targetType - The requested type of the return value
locale - The locale to use for conversion. Can be null.
Returns:
The converted value compatible with the source type
Throws:
Converter.ConversionException - If the value could not be converted

getModelType

public java.lang.Class<java.lang.Enum> getModelType()
Description copied from interface: Converter
The source type of the converter. Values of this type can be passed to Converter.convertToPresentation(Object, Class, Locale).

Specified by:
getModelType in interface Converter<java.lang.String,java.lang.Enum>
Returns:
The source type

getPresentationType

public java.lang.Class<java.lang.String> getPresentationType()
Description copied from interface: Converter
The target type of the converter. Values of this type can be passed to Converter.convertToModel(Object, Class, Locale).

Specified by:
getPresentationType in interface Converter<java.lang.String,java.lang.Enum>
Returns:
The target type


Copyright © 2000-2014 Vaadin Ltd. All Rights Reserved.