Class ConverterManager

java.lang.Object
org.joda.time.convert.ConverterManager

public final class ConverterManager extends Object
ConverterManager controls the date and time converters.

This class enables additional conversion classes to be added via addInstantConverter(InstantConverter), which may replace an existing converter. Similar methods exist for duration, time period and interval converters.

This class is threadsafe, so adding/removing converters can be done at any time. Updating the set of converters is relatively expensive, and so should not be performed often.

The default instant converters are:

  • ReadableInstant
  • String
  • Calendar
  • Date (includes sql package subclasses)
  • Long (milliseconds)
  • null (now)
The default partial converters are:
  • ReadablePartial
  • ReadableInstant
  • String
  • Calendar
  • Date (includes sql package subclasses)
  • Long (milliseconds)
  • null (now)
The default duration converters are:
  • ReadableDuration
  • ReadableInterval
  • String
  • Long (milliseconds)
  • null (zero ms)
The default time period converters are:
  • ReadablePeriod
  • ReadableInterval
  • String
  • null (zero)
The default interval converters are:
  • ReadableInterval
  • String
  • null (zero-length from now to now)
Since:
1.0
Author:
Stephen Colebourne, Brian S O'Neill
  • Constructor Details

    • ConverterManager

      protected ConverterManager()
      Restricted constructor.
  • Method Details

    • getInstance

      public static ConverterManager getInstance()
    • getInstantConverter

      public InstantConverter getInstantConverter(Object object)
      Gets the best converter for the object specified.
      Parameters:
      object - the object to convert
      Returns:
      the converter to use
      Throws:
      IllegalArgumentException - if no suitable converter
      IllegalStateException - if multiple converters match the type equally well
    • getInstantConverters

      public InstantConverter[] getInstantConverters()
      Gets a copy of the set of converters.
      Returns:
      the converters, a copy of the real data, never null
    • addInstantConverter

      public InstantConverter addInstantConverter(InstantConverter converter) throws SecurityException
      Adds a converter to the set of converters. If a matching converter is already in the set, the given converter replaces it. If the converter is exactly the same as one already in the set, no changes are made.

      The order in which converters are added is not relevant. The best converter is selected by examining the object hierarchy.

      Parameters:
      converter - the converter to add, null ignored
      Returns:
      replaced converter, or null
      Throws:
      SecurityException - if the security manager rejects the change
    • removeInstantConverter

      public InstantConverter removeInstantConverter(InstantConverter converter) throws SecurityException
      Removes a converter from the set of converters. If the converter was not in the set, no changes are made.
      Parameters:
      converter - the converter to remove, null ignored
      Returns:
      replaced converter, or null
      Throws:
      SecurityException - if the security manager rejects the change
    • getPartialConverter

      public PartialConverter getPartialConverter(Object object)
      Gets the best converter for the object specified.
      Parameters:
      object - the object to convert
      Returns:
      the converter to use
      Throws:
      IllegalArgumentException - if no suitable converter
      IllegalStateException - if multiple converters match the type equally well
    • getPartialConverters

      public PartialConverter[] getPartialConverters()
      Gets a copy of the set of converters.
      Returns:
      the converters, a copy of the real data, never null
    • addPartialConverter

      public PartialConverter addPartialConverter(PartialConverter converter) throws SecurityException
      Adds a converter to the set of converters. If a matching converter is already in the set, the given converter replaces it. If the converter is exactly the same as one already in the set, no changes are made.

      The order in which converters are added is not relevant. The best converter is selected by examining the object hierarchy.

      Parameters:
      converter - the converter to add, null ignored
      Returns:
      replaced converter, or null
      Throws:
      SecurityException - if the security manager rejects the change
    • removePartialConverter

      public PartialConverter removePartialConverter(PartialConverter converter) throws SecurityException
      Removes a converter from the set of converters. If the converter was not in the set, no changes are made.
      Parameters:
      converter - the converter to remove, null ignored
      Returns:
      replaced converter, or null
      Throws:
      SecurityException - if the security manager rejects the change
    • getDurationConverter

      public DurationConverter getDurationConverter(Object object)
      Gets the best converter for the object specified.
      Parameters:
      object - the object to convert
      Returns:
      the converter to use
      Throws:
      IllegalArgumentException - if no suitable converter
      IllegalStateException - if multiple converters match the type equally well
    • getDurationConverters

      public DurationConverter[] getDurationConverters()
      Gets a copy of the list of converters.
      Returns:
      the converters, a copy of the real data, never null
    • addDurationConverter

      public DurationConverter addDurationConverter(DurationConverter converter) throws SecurityException
      Adds a converter to the set of converters. If a matching converter is already in the set, the given converter replaces it. If the converter is exactly the same as one already in the set, no changes are made.

      The order in which converters are added is not relevant. The best converter is selected by examining the object hierarchy.

      Parameters:
      converter - the converter to add, null ignored
      Returns:
      replaced converter, or null
      Throws:
      SecurityException - if the security manager rejects the change
    • removeDurationConverter

      public DurationConverter removeDurationConverter(DurationConverter converter) throws SecurityException
      Removes a converter from the set of converters. If the converter was not in the set, no changes are made.
      Parameters:
      converter - the converter to remove, null ignored
      Returns:
      replaced converter, or null
      Throws:
      SecurityException - if the security manager rejects the change
    • getPeriodConverter

      public PeriodConverter getPeriodConverter(Object object)
      Gets the best converter for the object specified.
      Parameters:
      object - the object to convert
      Returns:
      the converter to use
      Throws:
      IllegalArgumentException - if no suitable converter
      IllegalStateException - if multiple converters match the type equally well
    • getPeriodConverters

      public PeriodConverter[] getPeriodConverters()
      Gets a copy of the list of converters.
      Returns:
      the converters, a copy of the real data, never null
    • addPeriodConverter

      public PeriodConverter addPeriodConverter(PeriodConverter converter) throws SecurityException
      Adds a converter to the set of converters. If a matching converter is already in the set, the given converter replaces it. If the converter is exactly the same as one already in the set, no changes are made.

      The order in which converters are added is not relevant. The best converter is selected by examining the object hierarchy.

      Parameters:
      converter - the converter to add, null ignored
      Returns:
      replaced converter, or null
      Throws:
      SecurityException - if the security manager rejects the change
    • removePeriodConverter

      public PeriodConverter removePeriodConverter(PeriodConverter converter) throws SecurityException
      Removes a converter from the set of converters. If the converter was not in the set, no changes are made.
      Parameters:
      converter - the converter to remove, null ignored
      Returns:
      replaced converter, or null
      Throws:
      SecurityException - if the security manager rejects the change
    • getIntervalConverter

      public IntervalConverter getIntervalConverter(Object object)
      Gets the best converter for the object specified.
      Parameters:
      object - the object to convert
      Returns:
      the converter to use
      Throws:
      IllegalArgumentException - if no suitable converter
      IllegalStateException - if multiple converters match the type equally well
    • getIntervalConverters

      public IntervalConverter[] getIntervalConverters()
      Gets a copy of the list of converters.
      Returns:
      the converters, a copy of the real data, never null
    • addIntervalConverter

      public IntervalConverter addIntervalConverter(IntervalConverter converter) throws SecurityException
      Adds a converter to the set of converters. If a matching converter is already in the set, the given converter replaces it. If the converter is exactly the same as one already in the set, no changes are made.

      The order in which converters are added is not relevant. The best converter is selected by examining the object hierarchy.

      Parameters:
      converter - the converter to add, null ignored
      Returns:
      replaced converter, or null
      Throws:
      SecurityException - if the security manager rejects the change
    • removeIntervalConverter

      public IntervalConverter removeIntervalConverter(IntervalConverter converter) throws SecurityException
      Removes a converter from the set of converters. If the converter was not in the set, no changes are made.
      Parameters:
      converter - the converter to remove, null ignored
      Returns:
      replaced converter, or null
      Throws:
      SecurityException - if the security manager rejects the change
    • toString

      public String toString()
      Gets a debug representation of the object.
      Overrides:
      toString in class Object