Class ZoneInfoProvider

java.lang.Object
org.joda.time.tz.ZoneInfoProvider
All Implemented Interfaces:
Provider

public class ZoneInfoProvider extends Object implements Provider
ZoneInfoProvider loads compiled data files as generated by ZoneInfoCompiler.

ZoneInfoProvider is thread-safe and publicly immutable.

Since:
1.0
  • Field Details

    • iFileDir

      private final File iFileDir
      The directory where the files are held.
    • iResourcePath

      private final String iResourcePath
      The resource path.
    • iLoader

      private final ClassLoader iLoader
      The class loader to use.
    • iZoneInfoMap

      private final Map<String,Object> iZoneInfoMap
      Maps ids to strings or SoftReferences to DateTimeZones.
    • iZoneInfoKeys

      private final Set<String> iZoneInfoKeys
      Maps ids to strings or SoftReferences to DateTimeZones.
  • Constructor Details

    • ZoneInfoProvider

      public ZoneInfoProvider() throws IOException
      Search the default classloader resource path for compiled data files.
      Throws:
      IOException - if directory or map file cannot be read
    • ZoneInfoProvider

      public ZoneInfoProvider(File fileDir) throws IOException
      ZoneInfoProvider searches the given directory for compiled data files.
      Throws:
      IOException - if directory or map file cannot be read
    • ZoneInfoProvider

      public ZoneInfoProvider(String resourcePath) throws IOException
      ZoneInfoProvider searches the given ClassLoader resource path for compiled data files. Resources are loaded from the ClassLoader that loaded this class.
      Throws:
      IOException - if directory or map file cannot be read
    • ZoneInfoProvider

      public ZoneInfoProvider(String resourcePath, ClassLoader loader) throws IOException
      ZoneInfoProvider searches the given ClassLoader resource path for compiled data files.
      Parameters:
      loader - ClassLoader to load compiled data files from. If null, use system ClassLoader.
      Throws:
      IOException - if directory or map file cannot be read
    • ZoneInfoProvider

      private ZoneInfoProvider(String resourcePath, ClassLoader loader, boolean favorSystemLoader) throws IOException
      Parameters:
      favorSystemLoader - when true, use the system class loader if loader null. When false, use the current class loader if loader is null.
      Throws:
      IOException
  • Method Details

    • getZone

      public DateTimeZone getZone(String id)
      If an error is thrown while loading zone data, the exception is logged to system error and null is returned for this and all future requests.
      Specified by:
      getZone in interface Provider
      Parameters:
      id - the id to load
      Returns:
      the loaded zone
    • getAvailableIDs

      public Set<String> getAvailableIDs()
      Gets a list of all the available zone ids.
      Specified by:
      getAvailableIDs in interface Provider
      Returns:
      the zone ids
    • uncaughtException

      protected void uncaughtException(Exception ex)
      Called if an exception is thrown from getZone while loading zone data.
      Parameters:
      ex - the exception
    • openResource

      private InputStream openResource(String name) throws IOException
      Opens a resource from file or classpath.
      Parameters:
      name - the name to open
      Returns:
      the input stream
      Throws:
      IOException - if an error occurs
    • loadZoneData

      private DateTimeZone loadZoneData(String id)
      Loads the time zone data for one id.
      Parameters:
      id - the id to load
      Returns:
      the zone
    • loadZoneInfoMap

      private static Map<String,Object> loadZoneInfoMap(InputStream in) throws IOException
      Loads the zone info map.
      Parameters:
      in - the input stream
      Returns:
      the map
      Throws:
      IOException
    • readZoneInfoMap

      private static void readZoneInfoMap(DataInputStream din, Map<String,Object> zimap) throws IOException
      Reads the zone info map from file.
      Parameters:
      din - the input stream
      zimap - gets filled with string id to string id mappings
      Throws:
      IOException