com.hammurapi.common

## Class DefaultContext

- java.lang.Object
- - com.hammurapi.common.DefaultContext

- All Implemented Interfaces:
    Context

      public class DefaultContext
      extends Object
      implements Context

  Default context uses ServiceLoader to find services in a given classloader and map of bindings.

- - ### Field Summary

    - ### Fields inherited from interface com.hammurapi.common.Context

      `INSTANCE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DefaultContext(ClassLoader classLoader, Map<String,Object> bindings)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `<T> T` | `lookup(Class<T> serviceClass, Predicate<T,Context>... selectors)` Looks up single object (service) by type.
    `Object` | `lookup(String name)` Looks up object by name.
    `<T> Iterator<T>` | `lookupAll(Class<T> serviceClass, Predicate<T,Context>... selectors)` Looks up all services of given type.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### DefaultContext

          public DefaultContext(ClassLoader classLoader,
                        Map<String,Object> bindings)

      Parameters:
        `classLoader` - ClassLoader for services. Can be null.
        `bindings` - Name bindings. Can be null.

  - ### Method Detail

    - #### lookup

          public Object lookup(String name)

      Description copied from interface: `Context`
      Looks up object by name.
      Specified by:
        `lookup` in interface `Context`
      Parameters:
        `name` - Object name.
      Returns:
        named object or null.

    - #### lookup

          public <T> T lookup(Class<T> serviceClass,
                     Predicate<T,Context>... selectors)

      Description copied from interface: `Context`
      Looks up single object (service) by type.
      Specified by:
        `lookup` in interface `Context`
      Type Parameters:
        `T` - Service type.
      Parameters:
        `serviceClass` - Requested service type.
        `selectors` - Optional service selectors. If more than one, selectors are combined with AND.
      Returns:
        Service instance or null.

    - #### lookupAll

          public <T> Iterator<T> lookupAll(Class<T> serviceClass,
                                  Predicate<T,Context>... selectors)

      Description copied from interface: `Context`
      Looks up all services of given type.
      Specified by:
        `lookupAll` in interface `Context`
      Type Parameters:
        `T` - Service type.
      Parameters:
        `serviceClass` - Requested service type.
        `selectors` - Optional service selectors. If more than one, selectors are combined with AND.
      Returns:
        Iterator over services of requested type.