Interface IContextFunction

  • All Known Implementing Classes:
    ContextFunction

    public interface IContextFunction
    A context function encapsulates evaluation of some code within an IEclipseContext. The result of the function must be derived purely from the provided arguments and context objects, and must be free from side-effects other than the function's return value. In particular, the function must be idempotent - subsequent invocations of the same function with the same inputs must produce the same result.

    A common use for context functions is as a place holder for an object that has not yet been created. These place holders can be stored as values in an IEclipseContext, allowing the concrete value they represent to be computed lazily only when requested.

    Context functions can optionally be registered as OSGi services. Context implementations may use such registered services to seed context instances with initial values. Registering your context function as a service is a signal that contexts are free to add an instance of your function to their context automatically, using the key specified by the SERVICE_CONTEXT_KEY service property.

    Since:
    1.3
    See Also:
    IEclipseContext.set(String, Object)
    Restriction:
    This interface is not intended to be implemented by clients. Function implementations must subclass ContextFunction instead.