com.ihr.xbrl.om.table.layout

## Class EffectiveBreakdown

- java.lang.Object
- - com.ihr.xbrl.om.table.layout.EffectiveBreakdown

-     public class EffectiveBreakdown
      extends java.lang.Object

  A table contains up to 3 EffectiveBreakdown instances, one for each axis The effective breakdown contains a a collection of CellHeader elements.
  Author:
    Ignacio

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `EffectiveBreakdown(XBRLStructuralBreakdown breakdowns, OpenAspectValueResolver openAspectResolver)` Prepares the effective breakdown as defined in the table specification The Effective Breakdown is defined in section 9.3.2 of the table specification

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Iterator<CellHeader>` | `getCellHeaders()` Headers are organized in trees, the returned iterator contains the root nodes of the CellHeader trees on this effective breakdown.
    `java.util.Iterator<Group>` | `getGroups()` Gets the groups.
    `boolean` | `isOpen()` Returns true if one of the elements in the structural breakdown is open.
    `int[]` | `renumber()` Re assign row and column numbers to all cells in the tree of cell headers.
    `void` | `resetDistanceToLeaf()` Reset distance to leaf.

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

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

- - ### Constructor Detail

    - #### EffectiveBreakdown

          public EffectiveBreakdown(XBRLStructuralBreakdown breakdowns,
                            OpenAspectValueResolver openAspectResolver)

      Prepares the effective breakdown as defined in the table specification

      The Effective Breakdown is defined in section 9.3.2 of the table specification

      Parameters:
        `breakdowns` - the breakdowns
        `openAspectResolver` - it is used to optimize the content of the z axis by selecting only the element defined by the user in the GUI. If this parameter is null, its effect is ignored (this must be the case for x and y axis) when this parameter is not null, the value count for open aspects will be 1 and the value will be constrained to the user selected value

  - ### Method Detail

    - #### getGroups

          public java.util.Iterator<Group> getGroups()

      Gets the groups.
      Returns:
        the groups

    - #### getCellHeaders

          public java.util.Iterator<CellHeader> getCellHeaders()

      Headers are organized in trees, the returned iterator contains the root nodes of the CellHeader trees on this effective breakdown.
      Returns:
        the cell headers

    - #### renumber

          public int[] renumber()

      Re assign row and column numbers to all cells in the tree of cell headers. returns an array of 2 integers. At index=0 the number of rows, at index=1 the number of columns
      Returns:
        the int[]

    - #### resetDistanceToLeaf

          public void resetDistanceToLeaf()

      Reset distance to leaf.

    - #### isOpen

          public boolean isOpen()

      Returns true if one of the elements in the structural breakdown is open.
      Returns:
        true, if is open