Class StringConverter

java.lang.Object
com.thoughtworks.xstream.converters.basic.AbstractSingleValueConverter
com.thoughtworks.xstream.converters.basic.StringConverter
All Implemented Interfaces:
ConverterMatcher, SingleValueConverter

public class StringConverter extends AbstractSingleValueConverter
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

    Fields
    Modifier and Type
    Field
    Description
    private 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

    Constructors
    Constructor
    Description
    Construct 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.
    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 Type
    Method
    Description
    boolean
    Determines whether the converter can marshall a particular type.
    Unmarshals an Object from its single value representation.

    Methods inherited from class com.thoughtworks.xstream.converters.basic.AbstractSingleValueConverter

    toString

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • LENGTH_LIMIT

      private static final int LENGTH_LIMIT
      See Also:
    • cache

      private final Map 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

      public StringConverter(Map map, int lengthLimit)
      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

      public StringConverter(Map map)
      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