com.ihr.xbrl.om.table.structural

## Class XBRLStructuralTable

- java.lang.Object
- - com.ihr.xbrl.om.table.structural.XBRLStructuralTable

-     public class XBRLStructuralTable
      extends java.lang.Object

  This class is part of the table structural model. It represents a table in the structural model it is obtained from the definition model once the definition model is build and evaluated
  Author:
    Ignacio

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `XBRLStructuralTable(XBRLTable tableDef, XBRLTableSet.EvaluationSet set)` This constructor explores the XBRLTable definition and creates a the structural model with no parameters.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `bindVariablesToFormulaParameters(net.sf.saxon.s9api.XPathSelector sel, java.util.Vector<javax.xml.namespace.QName> definedParameters)` Bind variables to formula parameters.
    `void` | `bindVariablesToParameters(net.sf.saxon.s9api.XPathSelector sel, java.util.Vector<javax.xml.namespace.QName> definedParameters)` Bind variables to parameters.
    `java.util.Iterator<Axis>` | `getAxis()` Access to all axis defined in the table in the following order: z, y and x.
    `XBRLStructuralBreakdown` | `getBreakdown(Axis axis)` Obtains the structural breakdown for a table axis, if no XBRLStructuralBreakdown exists a new one is created.
    `XBRLTableSet.EvaluationSet` | `getEvaluationSet()` The evaluation set contains parameters and bind values for the parameters so the table can be defined.
    `XBRLTableLayout` | `getLayoutTable(boolean doLayout, EditorSource editorSource, OpenAspectValueResolver externalResolver)` Creates or gets the XBRLTableLayout instance for this structural table.
    `XBRLTable` | `getTableDefinifion()` Access to the table in the definition model.
    `XBRLStructuralBreakdown` | `resolveBreakdownVariable(Axis axis)` This class contains single variables for the breakdown on each axis.

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

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

- - ### Constructor Detail

    - #### XBRLStructuralTable

          public XBRLStructuralTable(XBRLTable tableDef,
                             XBRLTableSet.EvaluationSet set)
                              throws XTValidationException

      This constructor explores the XBRLTable definition and creates a the structural model with no parameters.
      Parameters:
        `tableDef` - instance of XBRLTable definition model
        `set` - the set
      Throws:
        `XTValidationException` - the XT validation exception

  - ### Method Detail

    - #### getTableDefinifion

          public XBRLTable getTableDefinifion()

      Access to the table in the definition model.
      Returns:
        the table definition model. An instance of XBRLTable

    - #### getEvaluationSet

          public XBRLTableSet.EvaluationSet getEvaluationSet()

      The evaluation set contains parameters and bind values for the parameters so the table can be defined. If the table has no parameters this method returns null
      Returns:
        the set

    - #### getLayoutTable

          public XBRLTableLayout getLayoutTable(boolean doLayout,
                                       EditorSource editorSource,
                                       OpenAspectValueResolver externalResolver)
                                         throws XTValidationException,
                                                XFException

      Creates or gets the XBRLTableLayout instance for this structural table.
      Parameters:
        `doLayout` - the do layout
        `editorSource` - optional, use null if the application has no GUI able to provide values that are not in the instance but available for new facts
        `externalResolver` - options, use null if the application has no GUI able to constraint the values in the z as a response to user selections
      Returns:
        XBRLTableLayout
      Throws:
        `XTValidationException` - the XT validation exception
        `XFException` - the XF exception

    - #### getBreakdown

          public XBRLStructuralBreakdown getBreakdown(Axis axis)

      Obtains the structural breakdown for a table axis, if no XBRLStructuralBreakdown exists a new one is created. A table contains just one XBRLStructuralBreakdown for each axis, even if the table contains multiple definitionNode "root" nodes for the same axis which is allowed in the specification.
      Parameters:
        `axis` - the axis
      Returns:
        XBRLStructuralBreakdown new or cached one

    - #### resolveBreakdownVariable

          public XBRLStructuralBreakdown resolveBreakdownVariable(Axis axis)

      This class contains single variables for the breakdown on each axis. This method returns the variable assigned to each axis.
      Parameters:
        `axis` - the axis
      Returns:
        XBRLStructuralBreakdown for the axis in the axis parameter

    - #### getAxis

          public java.util.Iterator<Axis> getAxis()

      Access to all axis defined in the table in the following order: z, y and x. If there is no information for one axis, that axis is not returned
      Returns:
        the axis

    - #### bindVariablesToParameters

          public void bindVariablesToParameters(net.sf.saxon.s9api.XPathSelector sel,
                                       java.util.Vector<javax.xml.namespace.QName> definedParameters)

      Bind variables to parameters.
      Parameters:
        `sel` - the sel
        `definedParameters` - the defined parameters

    - #### bindVariablesToFormulaParameters

          public void bindVariablesToFormulaParameters(net.sf.saxon.s9api.XPathSelector sel,
                                              java.util.Vector<javax.xml.namespace.QName> definedParameters)

      Bind variables to formula parameters.
      Parameters:
        `sel` - the sel
        `definedParameters` - the defined parameters