Class SimpleBeanDirectory

java.lang.Object
org.oddjob.arooa.registry.SimpleBeanDirectory
All Implemented Interfaces:
BeanDirectory

public class SimpleBeanDirectory extends Object implements BeanDirectory
Provide a BeanDirectory from some mapping functions. TODO: This is only used by ForEach in Oddjob. It should probably move there.
Author:
Rob Gordon.
  • Constructor Details

  • Method Details

    • getAllByType

      public <T> Iterable<T> getAllByType(Class<T> type)
      Description copied from interface: BeanDirectory
      Get all objects in the directory of the required type.

      Why an Iterable not a Collection or Set? It was thought that this would force read only use. Maybe it should be an array...

      Specified by:
      getAllByType in interface BeanDirectory
      Type Parameters:
      T - The required type.
      Parameters:
      type - The type.
      Returns:
      An Iterable for matches. Never null.
    • lookup

      public Object lookup(String path) throws ArooaPropertyException
      Description copied from interface: BeanDirectory
      Get the value which is either a bean or the property of a bean.

      The path can be either:

      • The id of a bean e.g. mybean
      • A simple property of a bean e.g. mybean.simple
      • An indexed property of a bean e.g. mybean.indexed[1]
      • A mapped property of a bean e.g. mybean.mapped(key)
      • A nested property of a bean e.g. mybean.complex.simple
      • A nested beanownerid/mybean
      • Most combinations of the above.
      Specified by:
      lookup in interface BeanDirectory
      Parameters:
      path - The path.
      Returns:
      The resultant value or null.
      Throws:
      ArooaPropertyException - If property access fails.
    • lookup

      public <T> T lookup(String path, Class<T> required) throws ArooaPropertyException, ArooaConversionException
      Description copied from interface: BeanDirectory
      Get a value, as above, but also convert it into to given type.

      Conversion in the directory is required when the client code has no access to the converters required, for instance in a nested Oddjob.

      Specified by:
      lookup in interface BeanDirectory
      Type Parameters:
      T - The required type.
      Parameters:
      path - The full path
      required - The required type.
      Returns:
      An object of the required type or null if none can be found.
      Throws:
      ArooaPropertyException - If property access fails.
      ArooaConversionException - If an object can be found but it can't be converted into the required type.
    • getIdFor

      public String getIdFor(Object component)
      Find the id for the given component.
      Specified by:
      getIdFor in interface BeanDirectory
      Parameters:
      component - The component.
      Returns:
      The id or null if none can be found.