|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.scijava.Context
public class Context
Top-level SciJava application context, which initializes and maintains a list of services.
Service
Constructor Summary | |
---|---|
Context()
Creates a new SciJava application context with all available services. |
|
Context(boolean empty)
Creates a new SciJava application context. |
|
Context(Class... serviceClasses)
Creates a new SciJava application context with the specified services (and any required service dependencies). |
|
Context(Collection<Class<? extends Service>> serviceClasses)
Creates a new SciJava application context with the specified services (and any required service dependencies). |
|
Context(Collection<Class<? extends Service>> serviceClasses,
PluginIndex pluginIndex)
Creates a new SciJava application context with the specified services (and any required service dependencies). |
|
Context(PluginIndex pluginIndex)
Creates a new SciJava application with the specified PluginIndex. |
Method Summary | ||
---|---|---|
void |
dispose()
Performs any needed cleanup of the object's services, in preparation for the object being retired (e.g., to make garbage collection possible). |
|
PluginIndex |
getPluginIndex()
|
|
|
getService(Class<S> c)
Gets the service of the given class, or null if there is no matching service. |
|
Service |
getService(String className)
Gets the service of the given class name (useful for scripts). |
|
ServiceIndex |
getServiceIndex()
|
|
void |
inject(Object o)
Injects the application context into the given object. |
|
|
service(Class<S> c)
Gets the service of the given class. |
|
Service |
service(String className)
Gets the service of the given class name (useful for scripts). |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public Context()
public Context(boolean empty)
empty
- If true, the context will be empty; otherwise, it will be
initialized with all available services.public Context(Class... serviceClasses)
Developer's note: This constructor's argument is raw (i.e.,
Class...
instead of Class<? extends Service>...
) because
otherwise, downstream invocations (e.g.,
new Context(DisplayService.class)
) yield the potentially confusing
warning:
Type safety: A generic array of Class extends Service> is created for a varargs parameter
To avoid this, we have opted to use raw types and suppress the relevant warnings here instead.
serviceClasses
- A list of types that implement the Service
interface (e.g., DisplayService.class
).
ClassCastException
- If any of the given arguments do not implement
the Service
interface.public Context(Collection<Class<? extends Service>> serviceClasses)
serviceClasses
- A collection of types that implement the
Service
interface (e.g., DisplayService.class
).public Context(PluginIndex pluginIndex)
NB: the PluginIndex.discover()
method may still be called, adding
additional plugins to this index. The mechanism of discovery should be
configured exclusively through the attached PluginFinder.
pluginIndex
- The plugin index to use when discovering and indexing
plugins. If you wish to completely control how services are
discovered (i.e., use your own
PluginFinder
implementation), then you
can pass a custom PluginIndex
here.public Context(Collection<Class<? extends Service>> serviceClasses, PluginIndex pluginIndex)
PluginIndex
's
associated PluginFinder
.
NB: Context creation is an important step of a SciJava applictation's
lifecycle. Particularly in environments where more than one implementation
exists for various services, careful consideration should be exercised
regaring what classes and plugins are provided to the Context, and what
needs to occur during the initialization of these services (especially
those of lower priority). See ServiceHelper.loadServices()
for more
information.
serviceClasses
- A collection of types that implement the
Service
interface (e.g., DisplayService.class
).pluginIndex
- The plugin index to use when discovering and indexing
plugins. If you wish to completely control how services are
discovered (i.e., use your own
PluginFinder
implementation), then you
can pass a custom PluginIndex
here.Method Detail |
---|
public ServiceIndex getServiceIndex()
public PluginIndex getPluginIndex()
public <S extends Service> S service(Class<S> c)
NoSuchServiceException
- if the context does not have the requested
service.public Service service(String className)
IllegalArgumentException
- if the class does not exist, or is not a
service class.
NoSuchServiceException
- if the context does not have the requested
service.public <S extends Service> S getService(Class<S> c)
public Service getService(String className)
public void inject(Object o)
Context
fields annotated
with @Parameter
, sets the value of those fields to this context.Service
fields annotated
with @Parameter
, sets the value of those fields to the
corresponding service available from this context.EventService.subscribe(Object)
with the object to
register any @EventHandler
annotated methods as event subscribers.
o
- The object to which the context should be assigned.
IllegalStateException
- If the object already has a context.
IllegalArgumentException
- If the object has a required
Service
parameter (see Parameter.required()
)
which is not available from this context.public void dispose()
Disposable
dispose
in interface Disposable
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |