Class DesignFormatter
- java.lang.Object
-
- com.vaadin.ui.declarative.DesignFormatter
-
- All Implemented Interfaces:
Serializable
public class DesignFormatter extends Object implements Serializable
Class focused on flexible and consistent formatting and parsing of different values throughout reading and writingDesign
. An instance of this class is used byDesignAttributeHandler
.- Since:
- 7.4
- Author:
- Vaadin Ltd
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description DesignFormatter()
Creates the formatter with default types already mapped.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected <T> void
addConverter(Converter<String,T> converter)
Adds a converter for a new type.protected <T> void
addConverter(Class<?> type, Converter<String,?> converter)
Adds a converter for a given type.boolean
canConvert(Class<?> type)
Checks whether or not a value of a given type can be converted.static String
decodeFromTextNode(String input)
Decodes HTML entities in a text from text node and replaces them with actual characters.static String
encodeForTextNode(String input)
Encodes some special characters in a given input String to make it ready to be written as contents of a text node.protected <T> Converter<String,T>
findConverterFor(Class<? extends T> sourceType)
Finds a converter for a given type.protected <T> Converter<String,T>
findConverterFor(Class<? extends T> sourceType, boolean strict)
Finds a converter for a given type.String
format(Object object)
Finds a formatter for a given object and attempts to format it.<T> String
format(T object, Class<? extends T> type)
Formats an object according to a converter suitable for a given type.protected Set<Class<?>>
getRegisteredClasses()
Returns a set of classes that have a converter registered.protected void
mapDefaultTypes()
Maps default types to their converters.<T> T
parse(String value, Class<? extends T> type)
Parses a given string as a value of given typeprotected void
removeConverter(Class<?> type)
Removes the converter for given type, if it was present.
-
-
-
Method Detail
-
mapDefaultTypes
protected void mapDefaultTypes()
Maps default types to their converters.
-
addConverter
protected <T> void addConverter(Converter<String,T> converter)
Adds a converter for a new type.- Parameters:
converter
- Converter to add.
-
addConverter
protected <T> void addConverter(Class<?> type, Converter<String,?> converter)
Adds a converter for a given type.- Parameters:
type
- Type to convert to/from.converter
- Converter.
-
removeConverter
protected void removeConverter(Class<?> type)
Removes the converter for given type, if it was present.- Parameters:
type
- Type to remove converter for.
-
getRegisteredClasses
protected Set<Class<?>> getRegisteredClasses()
Returns a set of classes that have a converter registered. This is not the same as the list of supported classes - subclasses of classes in this set are also supported.- Returns:
- An unmodifiable set of classes that have a converter registered.
-
parse
public <T> T parse(String value, Class<? extends T> type)
Parses a given string as a value of given type- Parameters:
value
- String value to convert.type
- Expected result type.- Returns:
- String converted to the expected result type using a registered converter for that type.
-
format
public String format(Object object)
Finds a formatter for a given object and attempts to format it.- Parameters:
object
- Object to format.- Returns:
- String representation of the object, as returned by the registered converter.
-
format
public <T> String format(T object, Class<? extends T> type)
Formats an object according to a converter suitable for a given type.- Parameters:
object
- Object to format.type
- Type of the object.- Returns:
- String representation of the object, as returned by the registered converter.
-
canConvert
public boolean canConvert(Class<?> type)
Checks whether or not a value of a given type can be converted. If a converter for a superclass is found, this will return true.- Parameters:
type
- Type to check.- Returns:
- true when either a given type or its supertype has a converter, false otherwise.
-
findConverterFor
protected <T> Converter<String,T> findConverterFor(Class<? extends T> sourceType, boolean strict)
Finds a converter for a given type. May return a converter for a superclass instead, if one is found andstrict
is false.- Parameters:
sourceType
- Type to find a converter for.strict
- Whether or not search should be strict. When this is false, a converter for a superclass of given type may be returned.- Returns:
- A valid converter for a given type or its supertype, null if it was not found.
-
findConverterFor
protected <T> Converter<String,T> findConverterFor(Class<? extends T> sourceType)
Finds a converter for a given type. May return a converter for a superclass instead, if one is found.- Parameters:
sourceType
- Type to find a converter for.- Returns:
- A valid converter for a given type or its subtype, null if it was not found.
-
encodeForTextNode
public static String encodeForTextNode(String input)
Encodes some special characters in a given input String to make it ready to be written as contents of a text node. WARNING: this will e.g. encode "<someTag>" to "<someTag>" as this method doesn't do any parsing and assumes that there are no intended HTML elements in the input. Only some entities are actually encoded: &,<, > It's assumed that other entities are taken care of by Jsoup.
Typically, this method will be used by components to encode data (like option items in
AbstractSelect
) when dumping to HTML format- Parameters:
input
- String to be encoded- Returns:
- String with &,< and > replaced with their HTML entities
- Since:
- 7.5.7
-
decodeFromTextNode
public static String decodeFromTextNode(String input)
Decodes HTML entities in a text from text node and replaces them with actual characters.
Typically this method will be used by components to read back data (like option items in
AbstractSelect
) from HTML. Note that this method unencodes more characters thanencodeForTextNode(String)
encodes- Parameters:
input
-- Returns:
- Since:
- 7.6
-
-