public abstract class ServiceLocatorFactory extends Object
Modifier and Type | Class and Description |
---|---|
static class |
ServiceLocatorFactory.CreatePolicy
Tells the create method what to do if an existing ServiceLocator
with the given name exists
|
Constructor and Description |
---|
ServiceLocatorFactory() |
Modifier and Type | Method and Description |
---|---|
abstract void |
addListener(ServiceLocatorListener listener)
Adds a service listener to the unordered set of listeners that
will be notified when named listeners are added or removed
from the system.
|
abstract ServiceLocator |
create(String name)
Creates (or finds) a ServiceLocator.
|
abstract ServiceLocator |
create(String name,
ServiceLocator parent)
Creates or finds a ServiceLocator.
|
abstract ServiceLocator |
create(String name,
ServiceLocator parent,
ServiceLocatorGenerator generator)
Creates or finds a ServiceLocator.
|
abstract ServiceLocator |
create(String name,
ServiceLocator parent,
ServiceLocatorGenerator generator,
ServiceLocatorFactory.CreatePolicy policy)
Creates a ServiceLocator.
|
abstract void |
destroy(ServiceLocator locator)
Removes the given ServiceLocator
|
abstract void |
destroy(String name)
Removes the ServiceLocator with this name
|
abstract ServiceLocator |
find(String name)
Finds the ServiceLocator with this name
|
static ServiceLocatorFactory |
getInstance()
This will return a factory where the ServiceLocatorGenerator
is discovered from the META-INF/services of the process
|
abstract void |
removeListener(ServiceLocatorListener listener)
Removes a service listener from the set of listeners that
are notified when named listeners are added or removed
from the system
|
public static ServiceLocatorFactory getInstance()
public abstract ServiceLocator create(String name)
If there is already a ServiceLocator with the given name then this method will return that locator.
name
- The name of this service locator. Passing a null
name will result in a newly created service locator with a
generated name and that will not be tracked by the systempublic abstract ServiceLocator create(String name, ServiceLocator parent)
If there is already a ServiceLocator with the given name then this method will return that ServiceLocator. The parent argument will be ignored in that case
name
- The name of this service locator. Passing a null
name will result in a newly created service locator with a
generated name and that will not be tracked by the systemparent
- The parent of this ServiceLocator. Services can
be found in the parent (and all grand-parents). May be null
if the returned ServiceLocator should not be parentedpublic abstract ServiceLocator create(String name, ServiceLocator parent, ServiceLocatorGenerator generator)
If there is already a ServiceLocator with the given name then this method will return that ServiceLocator. The parent argument will be ignored in that case. If a null name is given then a new ServiceLocator with a generated name will be returned.
name
- The name of this service locator. Passing a null
name will result in a newly created service locator with a
generated name and that will not be tracked by the systemparent
- The parent of this ServiceLocator. Services can
be found in the parent (and all grand-parents). May be null
if the returned ServiceLocator should not be parentedgenerator
- An implementation of the generator interface that
can be used to provide an implementation of ServiceLocator. If
null then the generator used will be discovered from the OSGi
service registry or from META-INF/servicespublic abstract ServiceLocator create(String name, ServiceLocator parent, ServiceLocatorGenerator generator, ServiceLocatorFactory.CreatePolicy policy)
If there is already a ServiceLocator with the given name then this method will honor the given CreatePolicy. return that ServiceLocator. The policies are
name
- The name of this service locator. Passing a null
name will result in a newly created service locator with a
generated name and that will not be tracked by the systemparent
- The parent of this ServiceLocator. Services can
be found in the parent (and all grand-parents). May be null
if the returned ServiceLocator should not be parentedgenerator
- An implementation of the generator interface that
can be used to provide an implementation of ServiceLocator. If
null then the generator used will be discovered from the OSGi
service registry or from META-INF/servicespolicy
- The policy that should be used if there is an
existing locator with the non-null name. If null the policy
of RETURN will be usedpublic abstract ServiceLocator find(String name)
name
- May not be null, is the name of the ServiceLocator to findpublic abstract void destroy(String name)
All services associated with this ServiceLocator will be shutdown
name
- The name of the ServiceLocator to destroypublic abstract void destroy(ServiceLocator locator)
All services associated with this ServiceLocator will be shutdown
locator
- The ServiceLocator to destroy. If null this will do nothing.
If the ServiceLocator given was already destroyed this will do nothingpublic abstract void addListener(ServiceLocatorListener listener)
listener
- The non-null listener to add to the systempublic abstract void removeListener(ServiceLocatorListener listener)
listener
- The non-null listener to remove from the systemCopyright © 2009-2017, Oracle and/or its affiliates. All Rights Reserved.