public final class ServiceFactoryFactoryThis class is not intended for end users.
Provide factory instances for AppEngine APIs. Each API will have an associated FactoryProvider registered with this class. N.B. Once <xref uid="com.google.appengine.spi.ServiceFactoryFactory.
To construct the runtime mapping, this class first uses java.util.ServiceLoader to
find all registered FactoryProvider entities using the ClassLoader of
ServiceFactoryFactory. Finally, the explicitly registered providers
<xref uid="com.google.appengine.spi.ServiceFactoryFactory.register(com.google.appengine.spi.FactoryProvider<I>)" data-throw-if-not-resolved="false">#register(FactoryProvider) are merged in.
If ServiceLoader locates multiple providers for a given factory interface, the
ambiguity can be resolved by using the ServiceProvider#precedence annotation property
(higher precedence wins; the google implementations all have precedence
Integer.MIN_VALUE). An exception is raised if the ambiguity cannot be resolved. Note that
explicit registration (<xref uid="com.google.appengine.spi.ServiceFactoryFactory.register(com.google.appengine.spi.FactoryProvider<I>)" data-throw-if-not-resolved="false">#register(FactoryProvider)) always takes precedence (it does not
honor the ServiceProvider#precedence annotation property).
Static Fields
USE_THREAD_CONTEXT_CLASSLOADER_PROPERTY
public static final String USE_THREAD_CONTEXT_CLASSLOADER_PROPERTYIf this system property is set to "true" the thread context classloader is used (if non-null) when looking up API service implementations. Otherwise the class loader of this class is used.
| Field Value | |
|---|---|
| Type | Description |
String |
|
Static Methods
<I>register(FactoryProvider<I> p)
public static synchronized void <I>register(FactoryProvider<I> p)Explicitly register a provider. This does not take the precedence (see FactoryProvider#getPrecedence()) of the provider into consideration; subsequent registrations will always override previous ones.
| Parameter | |
|---|---|
| Name | Description |
p |
FactoryProvider<I>The provider to register |
<T>getFactory(Class<T> base)
public static T <T>getFactory(Class<T> base)Used by AppEngine service factories. Returns an instance of the factory implementing the
interface provide by base. Since there must always be a provider registered for a given
base, an error will be raised if no appropriate registration is found.
| Parameter | |
|---|---|
| Name | Description |
base |
Class<T>The returned factory must extend this class. |
| Returns | |
|---|---|
| Type | Description |
T |
|
Constructors
ServiceFactoryFactory()
public ServiceFactoryFactory()