com.ihr.xbrl.pojo

## Interface PojoExtension<P,Q>

-     public interface PojoExtension<P,Q>

  This interface describes methods that can be used by classes extending the XBRL storage model. Instances of this class must be added to the XBRLPojoGenerator using the addClassExtension method. When an instance of that pojo class is generated, this method is called so it can do its job. In addition to the regular methods of this insterface, a PojoExtension shall also implement hashCode and equals to prevent the same class to be registered more than once for the same pojo generator
  Author:
    Ignacio

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `executePojoExtension(XBRLPojoGenerator generator, org.hibernate.Session session, P p, Q q)` Performs the extension job, possibly storing into the database additional objects related with the pojo instance P.
    `java.lang.Class<Q>` | `getOmClass()` Returns the class type for the object model, this method is used to prepare the call to the executePojoExtension
    `java.lang.Class<P>` | `getPojoClass()` Returns the class type for the pojo object, this method is used to store inside the pojo generator all extensions indexed by the source type

- - ### Method Detail

    - #### executePojoExtension

          void executePojoExtension(XBRLPojoGenerator generator,
                                  org.hibernate.Session session,
                                  P p,
                                  Q q)
                                    throws XBRLPojoGenerationException

      Performs the extension job, possibly storing into the database additional objects related with the pojo instance P. Data can be obtained from both, the pojo instance p and the object model instance q
      Parameters:
        `session` - the current hibernate session
        `p` - is the Pojo instance of P type
        `q` - is the object model instance of Q type
      Throws:
        `XBRLPojoGenerationException`

    - #### getPojoClass

          java.lang.Class<P> getPojoClass()

      Returns the class type for the pojo object, this method is used to store inside the pojo generator all extensions indexed by the source type
      Returns:
        the pojo type class

    - #### getOmClass

          java.lang.Class<Q> getOmClass()

      Returns the class type for the object model, this method is used to prepare the call to the executePojoExtension
      Returns:
        the object model class