Class StringConverter
java.lang.Object
com.thoughtworks.xstream.converters.basic.AbstractSingleValueConverter
com.thoughtworks.xstream.converters.basic.StringConverter
- All Implemented Interfaces:
ConverterMatcher
,SingleValueConverter
Converts a String to a String ;).
Well ok, it doesn't actually do any conversion. The converter uses by default a map with weak references to reuse instances of strings that do not exceed a length limit. This limit is by default 38 characters to cache typical strings containing UUIDs. Only shorter strings are typically repeated more often in XML values.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Map
A Map to store strings as long as needed to map similar strings onto the same instance and conserve memory.private static final int
private final int
-
Constructor Summary
ConstructorsConstructorDescriptionConstruct a StringConverter using a cache with weak references for strings not exceeding 38 characters.StringConverter
(int lengthLimit) Construct a StringConverter using a cache with weak references for strings not exceeding the length limit.StringConverter
(Map map) Construct a StringConverter using a map-based cache for strings not exceeding 38 characters.StringConverter
(Map map, int lengthLimit) Construct a StringConverter using a map-based cache for strings not exceeding the length limit. -
Method Summary
Modifier and TypeMethodDescriptionboolean
canConvert
(Class type) Determines whether the converter can marshall a particular type.fromString
(String str) Unmarshals an Object from its single value representation.Methods inherited from class com.thoughtworks.xstream.converters.basic.AbstractSingleValueConverter
toString
-
Field Details
-
LENGTH_LIMIT
private static final int LENGTH_LIMIT- See Also:
-
cache
A Map to store strings as long as needed to map similar strings onto the same instance and conserve memory. The map can be set from the outside during construction, so it can be a LRU map or a weak map, synchronised or not. -
lengthLimit
private final int lengthLimit
-
-
Constructor Details
-
StringConverter
Construct a StringConverter using a map-based cache for strings not exceeding the length limit.- Parameters:
map
- the map to use for the instances to reuse (may be null to not cache at all)lengthLimit
- maximum string length of a cached string, -1 to cache all, 0 to turn off the cache- Since:
- 1.4.2
-
StringConverter
Construct a StringConverter using a map-based cache for strings not exceeding 38 characters.- Parameters:
map
- the map to use for the instances to reuse (may be null to not cache at all)
-
StringConverter
public StringConverter(int lengthLimit) Construct a StringConverter using a cache with weak references for strings not exceeding the length limit.- Parameters:
lengthLimit
- maximum string length of a cached string, -1 to cache all, 0 to turn off the cache- Since:
- 1.4.2
-
StringConverter
public StringConverter()Construct a StringConverter using a cache with weak references for strings not exceeding 38 characters.
-
-
Method Details
-
canConvert
Description copied from interface:ConverterMatcher
Determines whether the converter can marshall a particular type.- Specified by:
canConvert
in interfaceConverterMatcher
- Specified by:
canConvert
in classAbstractSingleValueConverter
- Parameters:
type
- the Class representing the object type to be converted
-
fromString
Description copied from interface:SingleValueConverter
Unmarshals an Object from its single value representation.- Specified by:
fromString
in interfaceSingleValueConverter
- Specified by:
fromString
in classAbstractSingleValueConverter
- Parameters:
str
- the String with the single value of the Object- Returns:
- the Object
-