Class ZoneRulesInitializer
- java.lang.Object
-
- 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 ofZoneRulesProvider
. Use thesetInitializer(ZoneRulesInitializer)
method to replace this behavior. The initializer instance must perform the work of creating theZoneRulesProvider
within theinitializeProviders()
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
Fields Modifier and Type Field Description static ZoneRulesInitializer
DO_NOTHING
An instance that does nothing.
-
Constructor Summary
Constructors Constructor Description ZoneRulesInitializer()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract void
initializeProviders()
Initialize the providers.static void
setInitializer(ZoneRulesInitializer initializer)
Sets the initializer to use.
-
-
-
Field Detail
-
DO_NOTHING
public static final ZoneRulesInitializer DO_NOTHING
An instance that does nothing. CallsetInitializer(ZoneRulesInitializer)
with this instance to block the service loader search. This will leave the system with no providers.
-
-
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.
-
-