org.threeten.bp.zone
Class ZoneRulesInitializer

java.lang.Object
  extended by org.threeten.bp.zone.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.


Field Summary
static ZoneRulesInitializer DO_NOTHING
          An instance that does nothing.
 
Constructor Summary
ZoneRulesInitializer()
           
 
Method Summary
protected abstract  void initializeProviders()
          Initialize the providers.
static void setInitializer(ZoneRulesInitializer initializer)
          Sets the initializer to use.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DO_NOTHING

public static final ZoneRulesInitializer DO_NOTHING
An instance that does nothing. Call setInitializer(ZoneRulesInitializer) with this instance to block the service loader search. This will leave the system with no providers.

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.



Copyright © 2007–2017 ThreeTen.org. All rights reserved.