Interface FacetAccessor

All Known Implementing Classes:
FacetAccessorDelegateImpl, FacetAccessorImpl

public interface FacetAccessor
Interface to access facets of an object. A facet is an instance of a particular class. It may be implemented in a variety of ways, including inheritance, delegation, or dynamic construction on demand.
  • Method Summary

    Modifier and Type
    Method
    Description
    <T> void
    addFacet(T obj)
    Add a facet to the object.
    <T> T
    facet(Class<T> cls)
    Access the Facet of Class T from the object.
    Return a list of all facets on this object.
    get(Field field)
    Fetch the value of the field from whichever facet contains the field.
    invoke(Method method, Object... args)
    Invoke method on the appropriate facet of this object, that is, on the facet corresponding to method.getDeclaringClass.
    void
    Remove the facet (if any) of the given type.
    void
    set(Field field, Object value)
     
  • Method Details

    • facet

      <T> T facet(Class<T> cls)
      Access the Facet of Class T from the object.
      Type Parameters:
      T - The Type (as a Class) of the Facet.
      Parameters:
      cls - The class of the facet.
      Returns:
      Instance of cls for this facet. Null if no such facet is available.
    • addFacet

      <T> void addFacet(T obj)
      Add a facet to the object. The type T must not already be available as a facet.
      Type Parameters:
      T -
      Parameters:
      obj -
    • removeFacet

      void removeFacet(Class<?> cls)
      Remove the facet (if any) of the given type.
      Parameters:
      cls - The class of the facet to remove.
    • facets

      Collection<Object> facets()
      Return a list of all facets on this object.
      Returns:
      Collection of all facets.
    • invoke

      Object invoke(Method method, Object... args)
      Invoke method on the appropriate facet of this object, that is, on the facet corresponding to method.getDeclaringClass.
      Parameters:
      method - The method to invoke.
      args - Arguments to the method.
      Returns:
      restult of the invoke call.
    • get

      Object get(Field field)
      Fetch the value of the field from whichever facet contains the field. Read-only because that's all that the intended application needs.
      Parameters:
      field - The field to access
      Returns:
      The value of the field
    • set

      void set(Field field, Object value)