Interface Tuplizer

  • All Known Subinterfaces:
    ComponentTuplizer, EntityTuplizer
    All Known Implementing Classes:
    AbstractComponentTuplizer, AbstractEntityTuplizer, DynamicMapComponentTuplizer, DynamicMapEntityTuplizer, PojoComponentTuplizer, PojoEntityTuplizer

    public interface Tuplizer
    A tuplizer defines the contract for things which know how to manage a particular representation of a piece of data, given that representation's EntityMode (the entity-mode essentially defining which representation).

    If that given piece of data is thought of as a data structure, then a tuplizer is the thing which knows how to
    • create such a data structure appropriately
    • extract values from and inject values into such a data structure

    For example, a given piece of data might be represented as a POJO class. Here, it's representation and entity-mode is POJO. Well a tuplizer for POJO entity-modes would know how to
    • create the data structure by calling the POJO's constructor
    • extract and inject values through getters/setter, or by direct field access, etc

    That same piece of data might also be represented as a DOM structure, using the tuplizer associated with the DOM4J entity-mode, which would generate instances of Element as the data structure and know how to access the values as either nested Elements or as Attributes.
    See Also:
    EntityTuplizer, ComponentTuplizer
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      Getter getGetter​(int i)
      Retrieve the getter for the specified property.
      java.lang.Class getMappedClass()
      Return the pojo class managed by this tuplizer.
      java.lang.Object getPropertyValue​(java.lang.Object entity, int i)
      Extract the value of a particular property from the given entity.
      java.lang.Object[] getPropertyValues​(java.lang.Object entity)
      Extract the current values contained on the given entity.
      java.lang.Object instantiate()
      Generate a new, empty entity.
      boolean isInstance​(java.lang.Object object)
      Is the given object considered an instance of the the entity (acconting for entity-mode) managed by this tuplizer.
      void setPropertyValues​(java.lang.Object entity, java.lang.Object[] values)
      Inject the given values into the given entity.
    • Method Detail

      • getPropertyValues

        java.lang.Object[] getPropertyValues​(java.lang.Object entity)
        Extract the current values contained on the given entity.
        Parameters:
        entity - The entity from which to extract values.
        Returns:
        The current property values.
      • setPropertyValues

        void setPropertyValues​(java.lang.Object entity,
                               java.lang.Object[] values)
        Inject the given values into the given entity.
        Parameters:
        entity - The entity.
        values - The values to be injected.
      • getPropertyValue

        java.lang.Object getPropertyValue​(java.lang.Object entity,
                                          int i)
        Extract the value of a particular property from the given entity.
        Parameters:
        entity - The entity from which to extract the property value.
        i - The index of the property for which to extract the value.
        Returns:
        The current value of the given property on the given entity.
      • instantiate

        java.lang.Object instantiate()
        Generate a new, empty entity.
        Returns:
        The new, empty entity instance.
      • isInstance

        boolean isInstance​(java.lang.Object object)
        Is the given object considered an instance of the the entity (acconting for entity-mode) managed by this tuplizer.
        Parameters:
        object - The object to be checked.
        Returns:
        True if the object is considered as an instance of this entity within the given mode.
      • getMappedClass

        java.lang.Class getMappedClass()
        Return the pojo class managed by this tuplizer.

        Need to determine how to best handle this for the Tuplizers for EntityModes other than POJO.

        todo : be really nice to not have this here since it is essentially pojo specific...
        Returns:
        The persistent class.
      • getGetter

        Getter getGetter​(int i)
        Retrieve the getter for the specified property.
        Parameters:
        i - The property index.
        Returns:
        The property getter.