Class ZoneRulesInitializer


  • public abstract class ZoneRulesInitializer
    extends Object
    Controls how the time-zone rules are initialized.

    The default behavior is to use ServiceLoader to find instances of ZoneRulesProvider. Use the setInitializer(ZoneRulesInitializer) method to replace this behavior. The initializer instance must perform the work of creating the ZoneRulesProvider within the initializeProviders() method to ensure that the provider is not initialized too early.

    The initializer must be set before class loading of any other ThreeTen-Backport class to have any effect!

    This class has been added primarily for the benefit of Android.

    • Constructor Detail

      • ZoneRulesInitializer

        public ZoneRulesInitializer()
    • Method Detail

      • setInitializer

        public static void setInitializer​(ZoneRulesInitializer initializer)
        Sets the initializer to use.

        This can only be invoked before the ZoneRulesProvider class is loaded. Invoking this method at a later point will throw an exception.

        Parameters:
        initializer - the initializer to use
        Throws:
        IllegalStateException - if initialization has already occurred or another initializer has been set
      • initializeProviders

        protected abstract void initializeProviders()
        Initialize the providers.

        The implementation should perform whatever work is necessary to initialize the providers. This will result in one or more calls to ZoneRulesProvider.registerProvider(ZoneRulesProvider).

        It is vital that the instance of ZoneRulesProvider is not created until this method is invoked.

        It is guaranteed that this method will be invoked once and only once.