com.ihr.xbrl.om.table

## Class XBRLTableProcessor

- java.lang.Object
- - com.ihr.xbrl.om.table.XBRLTableProcessor

- All Implemented Interfaces:
    XBRLCompilableProcessor, XBRLPlugInProcessor

      public class XBRLTableProcessor
      extends java.lang.Object
      implements XBRLCompilableProcessor

  The Class XBRLTableProcessor.
  Author:
    Ignacio

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `aspect_node_filter_PWD_2013_05_17_URI` http://xbrl.org/arcrole/PWD/2013-05-17/aspect-node-filter
    `static java.lang.String` | `aspect_node_filter_REC_2014_03_18_URI` The Constant aspect_node_filter_REC_2014_03_18_URI.
    `static javax.xml.namespace.QName` | `aspectNodeFilterArc_PWD_2013_05_17` The Constant aspectNodeFilterArc_PWD_2013_05_17.
    `static javax.xml.namespace.QName` | `aspectNodeFilterArc_REC_2014_03_18` The Constant aspectNodeFilterArc_REC_2014_03_18.
    `static java.lang.String` | `breakdown_tree_PWD_2013_05_17_URI` http://xbrl.org/arcrole/PWD/2013-05-17/breakdown-tree
    `static java.lang.String` | `breakdown_tree_REC_2014_03_18_URI` The Constant breakdown_tree_REC_2014_03_18_URI.
    `static javax.xml.namespace.QName` | `breakdownTreeArc_PWD_2013_05_17` The Constant breakdownTreeArc_PWD_2013_05_17.
    `static javax.xml.namespace.QName` | `breakdownTreeArc_REC_2014_03_18` The Constant breakdownTreeArc_REC_2014_03_18.
    `static java.lang.String` | `definition_node_subtree_PWD_2013_05_17_URI` http://xbrl.org/arcrole/PWD/2013-05-17/definition-node-subtree
    `static java.lang.String` | `definition_node_subtree_REC_2014_03_18_URI` The Constant definition_node_subtree_REC_2014_03_18_URI.
    `static javax.xml.namespace.QName` | `definitionNodeSubtreeArc_PWD_2013_05_17` The Constant definitionNodeSubtreeArc_PWD_2013_05_17.
    `static javax.xml.namespace.QName` | `definitionNodeSubtreeArc_REC_2014_03_18` The Constant definitionNodeSubtreeArc_REC_2014_03_18.
    `static java.lang.String` | `PROCESSORNAME` The Constant PROCESSORNAME.
    `static int` | `PWD_2013_05_17` This constant identifies resources from the PWD 2013-05-17 table linkbase during the construction of the definition model, resources that belongs to this specification version are processed for the relationships defined in that specification version.
    `static int` | `REC_2014_03_18` This constant identifies resources from the PWD 2013-05-17 table linkbase during the construction of the definition model, resources that belongs to this specification version are processed for the relationships defined in that specification version.
    `static java.lang.String` | `table_breakdown_PWD_2013_05_17_URI` http://xbrl.org/arcrole/PWD/2013-05-17/table-breakdown
    `static java.lang.String` | `table_breakdown_REC_2014_03_18_URI` The Constant table_breakdown_REC_2014_03_18_URI.
    `static java.lang.String` | `table_filter_PWD_2013_05_17_URI` http://xbrl.org/arcrole/PWD/2013-05-17/table-filter
    `static java.lang.String` | `table_filter_REC_2014_03_18_URI` The Constant table_filter_REC_2014_03_18_URI.
    `static java.lang.String` | `table_parameter_URI` http://xbrl.org/arcrole/2014/table-parameter
    `static java.lang.String` | `TABLE_VERSION` The TABLE_VERSION property indicates the version of the Specification document this processor is currently implementing The possible value is TABLE_VERSION_PWD_2013_05_17 More values will be added in the future.
    `static java.lang.String` | `TABLE_VERSION_PWD_2013_05_17` The TABLE_VERSION_PWD_2013_05_17 property indicates the processor will use the PWD of 2013-05-17 specification version.
    `static java.lang.String` | `TABLE_VERSION_REC_2014_03_18` The TABLE_VERSION_REC_2014_03_18 property indicates the processor will use the REC of 2014-03-18 specification version.
    `static javax.xml.namespace.QName` | `tableBreakdownArc_PWD_2013_05_17` The Constant tableBreakdownArc_PWD_2013_05_17.
    `static javax.xml.namespace.QName` | `tableBreakdownArc_REC_2014_03_18` The Constant tableBreakdownArc_REC_2014_03_18.
    `static javax.xml.namespace.QName` | `tableFilterArc_PWD_2013_05_17` The Constant tableFilterArc_PWD_2013_05_17.
    `static javax.xml.namespace.QName` | `tableFilterArc_REC_2014_03_18` The Constant tableFilterArc_REC_2014_03_18.
    `static javax.xml.namespace.QName` | `tableParameterArc_PWD_2013_05_17` The Constant tableParameterArc_PWD_2013_05_17.
    `static javax.xml.namespace.QName` | `tableParameterArc_REC_2014_03_18` The Constant tableParameterArc_REC_2014_03_18.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addDefinitionNode(XBRLDefinitionNode definitionNode)` Adds the rule node.
    `static void` | `addLabels(org.jdom.Element parent, XMLFragment node)` This method implements the following paragraphs of the specification: "When choosing a single label, the generic label with the standard resource role (http://www.xbrl.org/2008/role/label), if available, SHOULD be used in preference to other labels.
    `void` | `addTable(XBRLTable table)` Adds the table.
    `javax.xml.namespace.QName` | `checkValidQNameIsConcept(javax.xml.namespace.QName qname)` Validates the QName passed in in the QName parameter is a concept defined in the DTS and is not a dimension and not an hypercube.
    `javax.xml.namespace.QName` | `checkValidQNameIsConceptOrDimension(javax.xml.namespace.QName qname, javax.xml.namespace.QName ifDimensionMustBeThis)` Validates the QName passed in in the QName parameter is a concept or a dimension defined in the DTS and not an hypercube.
    `void` | `clear()` Called when the DTSContainer's clear method is called.
    `static net.sf.saxon.s9api.XPathExecutable` | `compileFormulaExpression(java.lang.String expression, XBRLTableResource resource, java.util.Collection<net.sf.saxon.s9api.QName> variablesInSet, java.util.Collection<javax.xml.namespace.QName> requiredVariables)` Compiles an XPath expression using the formula processor compiler and parameters.
    `XBRLValidationReport` | `compileResources()` Compile resources.
    `void` | `configure(java.util.Properties properties)` Configures the processor according with the properties passed in in the properties parameter.
    `static XBRLTableProcessor` | `create(DTSContainer dts)` Creates or gets the instance of the table processor .
    `org.jdom.Document` | `createModel(XBRLTable table)` Returns an XML document with the serialization of the table model as defined in the table specification.
    `void` | `freeUnnecessary()` Liberates resources no longer needed.
    `javax.xml.namespace.QName` | `getAspectNodeFilterArc()` Access to the QName of aspectNodeFilterArc arcs for the specification version recognized during the compilation process.
    `XBRLArcroleType` | `getAspectNodeFilterArcroleType()` Gets the aspect node filter arcrole type.
    `java.util.Iterator<DTSBase>` | `getBasesWithTables()` Access to an iterator over bases that defines tables.
    `javax.xml.namespace.QName` | `getBreakdownTreeArc()` Access to the QName of breakdownTreeArc arcs for the specification version recognized during the compilation process.
    `XBRLArcroleType` | `getBreakdownTreeArcroleType()` Gets the breakdown tree arcrole type.
    `DTSContainer` | `getContainer()` Gets the container.
    `javax.xml.namespace.QName` | `getDefinitionNodeSubtreeArc()` Access to the QName of definitionNodeSubtreeArc arcs for the specification version recognized during the compilation process.
    `XBRLArcroleType` | `getDefinitionNodeSubtreeArcroleType()` Gets the definition node subtree arcrole type.
    `java.lang.String` | `getDescription()` Returns the processor description so it can be written in validation reports.
    `static java.lang.String` | `getDescriptionStatic()` Gets the description static.
    `XBRLFilterOrderTool` | `getFilterOrderInstance()` Gets the filter order instance.
    `static java.util.Collection<java.lang.String>` | `getLabels(XMLFragment node)` Returns a collection of labels for the selected elements.
    `java.lang.String` | `getName()` Returns the processor name so it can be written in validation reports.
    `int` | `getSpecificationVersion()` Access to the specification version recognized in the incoming linkbases.
    `javax.xml.namespace.QName` | `getTableBreakdownArc()` Access to the QName of tableBreakdownArc arcs for the specification version recognized during the compilation process.
    `XBRLArcroleType` | `getTableBreakdownArcroleType()` Gets the table breakdown arcrole type.
    `javax.xml.namespace.QName` | `getTableFilterArc()` Access to the QName of tableFilterArc arcs for the specification version recognized during the compilation process.
    `XBRLArcroleType` | `getTableFilterArcroleType()` Gets the table filter arcrole type.
    `javax.xml.namespace.QName` | `getTablePamaterArc()` Access to the QName of tablePamaterArc arcs for the specification version recognized during the compilation process.
    `XBRLArcroleType` | `getTableParameterArcroleType()` Access to the table-parameter arcrole defined in this DTS. returns null if the table_parameter arcrole is not defined.
    `java.util.Iterator<XBRLTable>` | `getTables()` Gets the tables.
    `XBRLInstance` | `getUnderEvaluationInstance()` Gets the under evaluation instance.
    `boolean` | `isHidden()` A hidden processor will not pop-up in the GUI tabs.
    `boolean` | `isSpecificationVersion(int version)` returns true when the current DTSContainer contains resources for the specification version received in the version parameter.
    `static java.util.Hashtable<java.lang.String,java.util.Hashtable<java.lang.Object,AspectAndDistanceToLeaf>>` | `mergeAspects(CellHeader header1, CellHeader header2, java.util.TreeSet<java.lang.String> sortedTagSelectors)` This method combines the aspects of two cell headers and returns an structure of combined aspects.
    `static void` | `mergeAspects(java.util.Hashtable<java.lang.String,java.util.Hashtable<java.lang.Object,AspectAndDistanceToLeaf>> inputAspects, java.util.Hashtable<java.lang.String,java.util.Hashtable<java.lang.Object,AspectAndDistanceToLeaf>> outputAspects)` helper method that is used during the creation of the table structural nodes to merge aspects of the parent node with the child node.
    `static void` | `mergeAspectsWithCellHeader(java.util.Hashtable<java.lang.String,java.util.Hashtable<java.lang.Object,AspectAndDistanceToLeaf>> returnValue, CellHeader header)` Combines the aspects in the first parameter with the aspects in the CellHeader.
    `void` | `removeDefinitionNode(XBRLDefinitionNode definitionNode)` Removes the rule node.
    `void` | `removeTable(XBRLTable table)` Removes the table.
    `void` | `setUnderEvaluationInstance(XBRLInstance valInstance)` Sets or clear the instance document that is in the scope of formula functions.
    `XBRLValidationReport` | `validate()` Validates the content of the DTS according to the rules indicated in this plug-in processor.
    `XBRLValidationReport` | `validate(XBRLDocument xDocument)` Validates the document according to the rules indicated in this plug-in processor.

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

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

- - ### Field Detail

    - #### PROCESSORNAME

          public static final java.lang.String PROCESSORNAME

      The Constant PROCESSORNAME.
      See Also:
        Constant Field Values

    - #### TABLE_VERSION_PWD_2013_05_17

          public static final java.lang.String TABLE_VERSION_PWD_2013_05_17

      The TABLE_VERSION_PWD_2013_05_17 property indicates the processor will use the PWD of 2013-05-17 specification version.
      See Also:
        PWD 2013-05-17, Constant Field Values

    - #### TABLE_VERSION_REC_2014_03_18

          public static final java.lang.String TABLE_VERSION_REC_2014_03_18

      The TABLE_VERSION_REC_2014_03_18 property indicates the processor will use the REC of 2014-03-18 specification version.
      See Also:
        REC 2014-03-18, Constant Field Values

    - #### TABLE_VERSION

          public static final java.lang.String TABLE_VERSION

      The TABLE_VERSION property indicates the version of the Specification document this processor is currently implementing The possible value is TABLE_VERSION_PWD_2013_05_17 More values will be added in the future.

      The value of the TABLE_VERSION constant is "http://www.reportingstandard.com/properties/table-version".

      The default value for the property it refers to is TABLE_VERSION_PWD_2013_05_17 which is the latest release.

      See Also:
        Constant Field Values

    - #### table_breakdown_PWD_2013_05_17_URI

          public static final java.lang.String table_breakdown_PWD_2013_05_17_URI

      http://xbrl.org/arcrole/PWD/2013-05-17/table-breakdown
      See Also:
        Constant Field Values

    - #### table_breakdown_REC_2014_03_18_URI

          public static final java.lang.String table_breakdown_REC_2014_03_18_URI

      The Constant table_breakdown_REC_2014_03_18_URI.
      See Also:
        Constant Field Values

    - #### table_filter_PWD_2013_05_17_URI

          public static final java.lang.String table_filter_PWD_2013_05_17_URI

      http://xbrl.org/arcrole/PWD/2013-05-17/table-filter
      See Also:
        Constant Field Values

    - #### table_filter_REC_2014_03_18_URI

          public static final java.lang.String table_filter_REC_2014_03_18_URI

      The Constant table_filter_REC_2014_03_18_URI.
      See Also:
        Constant Field Values

    - #### definition_node_subtree_PWD_2013_05_17_URI

          public static final java.lang.String definition_node_subtree_PWD_2013_05_17_URI

      http://xbrl.org/arcrole/PWD/2013-05-17/definition-node-subtree
      See Also:
        Constant Field Values

    - #### definition_node_subtree_REC_2014_03_18_URI

          public static final java.lang.String definition_node_subtree_REC_2014_03_18_URI

      The Constant definition_node_subtree_REC_2014_03_18_URI.
      See Also:
        Constant Field Values

    - #### breakdown_tree_PWD_2013_05_17_URI

          public static final java.lang.String breakdown_tree_PWD_2013_05_17_URI

      http://xbrl.org/arcrole/PWD/2013-05-17/breakdown-tree
      See Also:
        Constant Field Values

    - #### breakdown_tree_REC_2014_03_18_URI

          public static final java.lang.String breakdown_tree_REC_2014_03_18_URI

      The Constant breakdown_tree_REC_2014_03_18_URI.
      See Also:
        Constant Field Values

    - #### aspect_node_filter_PWD_2013_05_17_URI

          public static final java.lang.String aspect_node_filter_PWD_2013_05_17_URI

      http://xbrl.org/arcrole/PWD/2013-05-17/aspect-node-filter
      See Also:
        Constant Field Values

    - #### aspect_node_filter_REC_2014_03_18_URI

          public static final java.lang.String aspect_node_filter_REC_2014_03_18_URI

      The Constant aspect_node_filter_REC_2014_03_18_URI.
      See Also:
        Constant Field Values

    - #### tableBreakdownArc_PWD_2013_05_17

          public static final javax.xml.namespace.QName tableBreakdownArc_PWD_2013_05_17

      The Constant tableBreakdownArc_PWD_2013_05_17.

    - #### tableBreakdownArc_REC_2014_03_18

          public static final javax.xml.namespace.QName tableBreakdownArc_REC_2014_03_18

      The Constant tableBreakdownArc_REC_2014_03_18.

    - #### breakdownTreeArc_PWD_2013_05_17

          public static final javax.xml.namespace.QName breakdownTreeArc_PWD_2013_05_17

      The Constant breakdownTreeArc_PWD_2013_05_17.

    - #### breakdownTreeArc_REC_2014_03_18

          public static final javax.xml.namespace.QName breakdownTreeArc_REC_2014_03_18

      The Constant breakdownTreeArc_REC_2014_03_18.

    - #### definitionNodeSubtreeArc_PWD_2013_05_17

          public static final javax.xml.namespace.QName definitionNodeSubtreeArc_PWD_2013_05_17

      The Constant definitionNodeSubtreeArc_PWD_2013_05_17.

    - #### definitionNodeSubtreeArc_REC_2014_03_18

          public static final javax.xml.namespace.QName definitionNodeSubtreeArc_REC_2014_03_18

      The Constant definitionNodeSubtreeArc_REC_2014_03_18.

    - #### tableFilterArc_PWD_2013_05_17

          public static final javax.xml.namespace.QName tableFilterArc_PWD_2013_05_17

      The Constant tableFilterArc_PWD_2013_05_17.

    - #### tableFilterArc_REC_2014_03_18

          public static final javax.xml.namespace.QName tableFilterArc_REC_2014_03_18

      The Constant tableFilterArc_REC_2014_03_18.

    - #### tableParameterArc_PWD_2013_05_17

          public static final javax.xml.namespace.QName tableParameterArc_PWD_2013_05_17

      The Constant tableParameterArc_PWD_2013_05_17.

    - #### tableParameterArc_REC_2014_03_18

          public static final javax.xml.namespace.QName tableParameterArc_REC_2014_03_18

      The Constant tableParameterArc_REC_2014_03_18.

    - #### aspectNodeFilterArc_PWD_2013_05_17

          public static final javax.xml.namespace.QName aspectNodeFilterArc_PWD_2013_05_17

      The Constant aspectNodeFilterArc_PWD_2013_05_17.

    - #### aspectNodeFilterArc_REC_2014_03_18

          public static final javax.xml.namespace.QName aspectNodeFilterArc_REC_2014_03_18

      The Constant aspectNodeFilterArc_REC_2014_03_18.

    - #### table_parameter_URI

          public static final java.lang.String table_parameter_URI

      http://xbrl.org/arcrole/2014/table-parameter
      See Also:
        Constant Field Values

    - #### PWD_2013_05_17

          public static final int PWD_2013_05_17

      This constant identifies resources from the PWD 2013-05-17 table linkbase during the construction of the definition model, resources that belongs to this specification version are processed for the relationships defined in that specification version.
      See Also:
        `isSpecificationVersion(int)`, Constant Field Values

    - #### REC_2014_03_18

          public static final int REC_2014_03_18

      This constant identifies resources from the PWD 2013-05-17 table linkbase during the construction of the definition model, resources that belongs to this specification version are processed for the relationships defined in that specification version.
      See Also:
        `isSpecificationVersion(int)`, Constant Field Values

  - ### Method Detail

    - #### isSpecificationVersion

          public boolean isSpecificationVersion(int version)

      returns true when the current DTSContainer contains resources for the specification version received in the version parameter.
      Parameters:
        `version` - one of the versions supported.
      Returns:
        true or false
      See Also:
        `PWD_2013_05_17`, `REC_2014_03_18`

    - #### getSpecificationVersion

          public int getSpecificationVersion()

      Access to the specification version recognized in the incoming linkbases. It is not legal to merge resources from more than one specification version in the same DTS
      Returns:
        integer constant
      See Also:
        `PWD_2013_05_17`, `REC_2014_03_18`

    - #### getTableBreakdownArc

          public javax.xml.namespace.QName getTableBreakdownArc()

      Access to the QName of tableBreakdownArc arcs for the specification version recognized during the compilation process.
      Returns:
        the table breakdown arc

    - #### getBreakdownTreeArc

          public javax.xml.namespace.QName getBreakdownTreeArc()

      Access to the QName of breakdownTreeArc arcs for the specification version recognized during the compilation process.
      Returns:
        the breakdown tree arc

    - #### getAspectNodeFilterArc

          public javax.xml.namespace.QName getAspectNodeFilterArc()

      Access to the QName of aspectNodeFilterArc arcs for the specification version recognized during the compilation process.
      Returns:
        the aspect node filter arc

    - #### getTablePamaterArc

          public javax.xml.namespace.QName getTablePamaterArc()

      Access to the QName of tablePamaterArc arcs for the specification version recognized during the compilation process.
      Returns:
        the table pamater arc

    - #### getTableFilterArc

          public javax.xml.namespace.QName getTableFilterArc()

      Access to the QName of tableFilterArc arcs for the specification version recognized during the compilation process.
      Returns:
        the table filter arc

    - #### getDefinitionNodeSubtreeArc

          public javax.xml.namespace.QName getDefinitionNodeSubtreeArc()

      Access to the QName of definitionNodeSubtreeArc arcs for the specification version recognized during the compilation process.
      Returns:
        the definition node subtree arc

    - #### getTableBreakdownArcroleType

          public XBRLArcroleType getTableBreakdownArcroleType()

      Gets the table breakdown arcrole type.
      Returns:
        the table breakdown arcrole type

    - #### getTableFilterArcroleType

          public XBRLArcroleType getTableFilterArcroleType()

      Gets the table filter arcrole type.
      Returns:
        the table filter arcrole type

    - #### getBreakdownTreeArcroleType

          public XBRLArcroleType getBreakdownTreeArcroleType()

      Gets the breakdown tree arcrole type.
      Returns:
        the breakdown tree arcrole type

    - #### getDefinitionNodeSubtreeArcroleType

          public XBRLArcroleType getDefinitionNodeSubtreeArcroleType()

      Gets the definition node subtree arcrole type.
      Returns:
        the definition node subtree arcrole type

    - #### getAspectNodeFilterArcroleType

          public XBRLArcroleType getAspectNodeFilterArcroleType()

      Gets the aspect node filter arcrole type.
      Returns:
        the aspect node filter arcrole type

    - #### getTableParameterArcroleType

          public XBRLArcroleType getTableParameterArcroleType()

      Access to the table-parameter arcrole defined in this DTS. returns null if the table_parameter arcrole is not defined. Note this arcrole exists on the REC 2014-03-18 but does not exists in the PWD 2013-05-17
      Returns:
        XBRLArcroleType or null

    - #### validate

          public XBRLValidationReport validate()

      Description copied from interface: `XBRLPlugInProcessor`
      Validates the content of the DTS according to the rules indicated in this plug-in processor.

      This is the method that is called by the DTSContainer on each XBRLPlugInProcessor when the validation() method is called on the DTSContainer instance.

      Specified by:
        `validate` in interface `XBRLPlugInProcessor`
      Returns:
        an XBRLValidationReport object `XBRLValidationReport`

    - #### validate

          public XBRLValidationReport validate(XBRLDocument xDocument)

      Description copied from interface: `XBRLPlugInProcessor`
      Validates the document according to the rules indicated in this plug-in processor.
      Specified by:
        `validate` in interface `XBRLPlugInProcessor`
      Parameters:
        `xDocument` - the x document
      Returns:
        an XBRLValidationReport object `XBRLValidationReport`

    - #### getUnderEvaluationInstance

          public XBRLInstance getUnderEvaluationInstance()

      Gets the under evaluation instance.
      Returns:
        the under evaluation instance

    - #### setUnderEvaluationInstance

          public void setUnderEvaluationInstance(XBRLInstance valInstance)

      Sets or clear the instance document that is in the scope of formula functions. If the argument is null, all instances in the scope are removed.
      Parameters:
        `valInstance` - the new under evaluation instance

    - #### getName

          public java.lang.String getName()

      Description copied from interface: `XBRLPlugInProcessor`
      Returns the processor name so it can be written in validation reports.
      Specified by:
        `getName` in interface `XBRLPlugInProcessor`
      Returns:
        the name

    - #### getDescription

          public java.lang.String getDescription()

      Description copied from interface: `XBRLPlugInProcessor`
      Returns the processor description so it can be written in validation reports.
      Specified by:
        `getDescription` in interface `XBRLPlugInProcessor`
      Returns:
        the description

    - #### configure

          public void configure(java.util.Properties properties)

      Description copied from interface: `XBRLPlugInProcessor`
      Configures the processor according with the properties passed in in the properties parameter.
      Specified by:
        `configure` in interface `XBRLPlugInProcessor`
      Parameters:
        `properties` - the properties

    - #### compileResources

          public XBRLValidationReport compileResources()

      Description copied from interface: `XBRLCompilableProcessor`
      Compile resources.
      Specified by:
        `compileResources` in interface `XBRLCompilableProcessor`
      Returns:
        the XBRL validation report

    - #### getTables

          public java.util.Iterator<XBRLTable> getTables()

      Gets the tables.
      Returns:
        the vTables

    - #### removeDefinitionNode

          public void removeDefinitionNode(XBRLDefinitionNode definitionNode)

      Removes the rule node.
      Parameters:
        `definitionNode` - the rule node

    - #### addDefinitionNode

          public void addDefinitionNode(XBRLDefinitionNode definitionNode)

      Adds the rule node.
      Parameters:
        `definitionNode` - the definition node

    - #### addTable

          public void addTable(XBRLTable table)

      Adds the table.
      Parameters:
        `table` - the table

    - #### removeTable

          public void removeTable(XBRLTable table)

      Removes the table.
      Parameters:
        `table` - the table

    - #### getContainer

          public DTSContainer getContainer()

      Gets the container.
      Returns:
        the container

    - #### freeUnnecessary

          public void freeUnnecessary()
                               throws com.rs.lic.LicenseVerificationException,
                                      XBRLValidationException

      Description copied from interface: `XBRLCompilableProcessor`
      Liberates resources no longer needed.
      Specified by:
        `freeUnnecessary` in interface `XBRLCompilableProcessor`
      Throws:
        `com.rs.lic.LicenseVerificationException` - the license verification exception
        `XBRLValidationException` - the XBRL validation exception

    - #### create

          public static XBRLTableProcessor create(DTSContainer dts)
                                           throws com.rs.lic.LicenseVerificationException,
                                                  XBRLValidationException

      Creates or gets the instance of the table processor .
      Parameters:
        `dts` - the DTSContainer to create/get the XBRLTableProcessor from
      Returns:
        the XBRLTableProcessor associated with this DTSContainer
      Throws:
        `com.rs.lic.LicenseVerificationException` - the license verification exception
        `XBRLValidationException` - the XBRL validation exception

    - #### getDescriptionStatic

          public static java.lang.String getDescriptionStatic()

      Gets the description static.
      Returns:
        the description static

    - #### checkValidQNameIsConcept

          public javax.xml.namespace.QName checkValidQNameIsConcept(javax.xml.namespace.QName qname)
                                                             throws XTxbrlteInvalidQNameAspectValue

      Validates the QName passed in in the QName parameter is a concept defined in the DTS and is not a dimension and not an hypercube.
      Parameters:
        `qname` - the concept to check
      Returns:
        the q name
      Throws:
        `XTxbrlteInvalidQNameAspectValue` - in case the concept does not exists or is a dimension or is an hypercube

    - #### checkValidQNameIsConceptOrDimension

          public javax.xml.namespace.QName checkValidQNameIsConceptOrDimension(javax.xml.namespace.QName qname,
                                                                      javax.xml.namespace.QName ifDimensionMustBeThis)
                                                                        throws XTxbrlteInvalidQNameAspectValue

      Validates the QName passed in in the QName parameter is a concept or a dimension defined in the DTS and not an hypercube.
      Parameters:
        `qname` - the concept to check
        `ifDimensionMustBeThis` - the if dimension must be this
      Returns:
        the q name
      Throws:
        `XTxbrlteInvalidQNameAspectValue` - in case the concept does not exists or is a dimension or is an hypercube

    - #### getFilterOrderInstance

          public XBRLFilterOrderTool getFilterOrderInstance()

      Gets the filter order instance.
      Returns:
        the filter order instance

    - #### getBasesWithTables

          public java.util.Iterator<DTSBase> getBasesWithTables()

      Access to an iterator over bases that defines tables. The DTSBase contains a role type that is unique in the DTS for the linkbase type and role URI
      Returns:
        Iterator over DTSBase with tables, note only valid tables are returned

    - #### compileFormulaExpression

          public static net.sf.saxon.s9api.XPathExecutable compileFormulaExpression(java.lang.String expression,
                                                                    XBRLTableResource resource,
                                                                    java.util.Collection<net.sf.saxon.s9api.QName> variablesInSet,
                                                                    java.util.Collection<javax.xml.namespace.QName> requiredVariables)

      Compiles an XPath expression using the formula processor compiler and parameters.
      Parameters:
        `expression` - XPath expression to be compiled
        `resource` - the table resource
        `variablesInSet` - the variables in set
        `requiredVariables` - (OUT) this is a collection of QName with variable names that are required to evaluate the expression
      Returns:
        the x path executable

    - #### isHidden

          public boolean isHidden()

      Description copied from interface: `XBRLPlugInProcessor`
      A hidden processor will not pop-up in the GUI tabs.
      Specified by:
        `isHidden` in interface `XBRLPlugInProcessor`
      Returns:
        true if processor is hidden. False if the processor has a GUI

    - #### clear

          public void clear()

      Description copied from interface: `XBRLPlugInProcessor`
      Called when the DTSContainer's clear method is called. Shall clean up resources and empty tables.
      Specified by:
        `clear` in interface `XBRLPlugInProcessor`

    - #### createModel

          public org.jdom.Document createModel(XBRLTable table)
                                        throws XTValidationException,
                                               XFException

      Returns an XML document with the serialization of the table model as defined in the table specification. This method is used for validating the model producen against the XBRL Table Specification conformance suite.
      Parameters:
        `table` - the table to produce the document for
      Returns:
        a JDOM document
      Throws:
        `XTValidationException` - the XT validation exception
        `XFException` - the XF exception

    - #### getLabels

          public static java.util.Collection<java.lang.String> getLabels(XMLFragment node)

      Returns a collection of labels for the selected elements. If there is a language set in the DTS as the highest priority language and there is a label for that language, that label is returned first. This method shall never return an empty collection.
      Parameters:
        `node` - the node
      Returns:
        Collection of labels

    - #### addLabels

          public static void addLabels(org.jdom.Element parent,
                       XMLFragment node)

      This method implements the following paragraphs of the specification: "When choosing a single label, the generic label with the standard resource role (http://www.xbrl.org/2008/role/label), if available, SHOULD be used in preference to other labels. If multiple labels for the same header cell are rendered, the @order attribute MUST be honored.
      Parameters:
        `parent` - parent node to attach labels to
        `node` - the Object to search labels from

    - #### mergeAspects

          public static void mergeAspects(java.util.Hashtable<java.lang.String,java.util.Hashtable<java.lang.Object,AspectAndDistanceToLeaf>> inputAspects,
                          java.util.Hashtable<java.lang.String,java.util.Hashtable<java.lang.Object,AspectAndDistanceToLeaf>> outputAspects)

      helper method that is used during the creation of the table structural nodes to merge aspects of the parent node with the child node.
      Parameters:
        `inputAspects` - this is a hash table indexed by tag of all source aspects to merge. Aspects here will be combined to the outputAspects. May be null
        `outputAspects` - this is the target of the merge operation. Must not be null

    - #### mergeAspects

          public static java.util.Hashtable<java.lang.String,java.util.Hashtable<java.lang.Object,AspectAndDistanceToLeaf>> mergeAspects(CellHeader header1,
                                                                                                                         CellHeader header2,
                                                                                                                         java.util.TreeSet<java.lang.String> sortedTagSelectors)

      This method combines the aspects of two cell headers and returns an structure of combined aspects. It is used to build cells and combine constraints from column header and row header and z axis header
      Parameters:
        `header1` - the header1
        `header2` - the header2
        `sortedTagSelectors` - the sorted tag selectors
      Returns:
        the hashtable

    - #### mergeAspectsWithCellHeader

          public static void mergeAspectsWithCellHeader(java.util.Hashtable<java.lang.String,java.util.Hashtable<java.lang.Object,AspectAndDistanceToLeaf>> returnValue,
                                        CellHeader header)

      Combines the aspects in the first parameter with the aspects in the CellHeader. The combined aspects remains in the first parameter
      Parameters:
        `returnValue` - the return value
        `header` - the header