com.ihr.xbrl.om.table.definition

## Class XBRLRuleNode

- java.lang.Object
- - com.ihr.xbrl.om.XMLFragment
  - - com.ihr.xbrl.om.exLinks.XLinkElement
    - - com.ihr.xbrl.om.exLinks.XBRLPointerOfARelationship
      - - com.ihr.xbrl.om.exLinks.XBRLResource
        - - com.ihr.xbrl.om.table.XBRLTableResource
          - - com.ihr.xbrl.om.table.definition.XBRLDefinitionNode
            - - com.ihr.xbrl.om.table.definition.XBRLClosedDefinitionNode
              - - com.ihr.xbrl.om.table.definition.XBRLRuleNode

- All Implemented Interfaces:
    HasAdditionalEqualityForReassignation, XBRLRelationshipPoint, HasBreakdownTree, HasParentChildAttribute, HasTableProcessor, StaticCheck, Thinable, XBRLValidation, XBRLValueKey, XMLHasParent, java.lang.Cloneable, javax.xml.namespace.NamespaceContext

      public class XBRLRuleNode
      extends XBRLClosedDefinitionNode
      implements StaticCheck

  The Class XBRLRuleNode.
  Author:
    Ignacio

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `XBRLRuleNode.RuleSet` The Class RuleSet.

    - ### Nested classes/interfaces inherited from interface com.ihr.xbrl.om.table.HasParentChildAttribute

      `HasParentChildAttribute.ParentChildEnum`

    - ### Nested classes/interfaces inherited from interface com.ihr.xbrl.om.XBRLValidation

      `XBRLValidation.Direction`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static javax.xml.namespace.QName` | `_abstract` This is the attribute name "abstract" represented as a QName.
    `static javax.xml.namespace.QName` | `merge` This is the attribute name "merged" represented as a QName.
    `static java.lang.String` | `UNTAGGED_TAG_NAME` The Constant UNTAGGED_TAG_NAME.

    - ### Fields inherited from class com.ihr.xbrl.om.table.definition.XBRLDefinitionNode

      `tagSelector`

    - ### Fields inherited from class com.ihr.xbrl.om.exLinks.XBRLResource

      `log, nullResource`

    - ### Fields inherited from class com.ihr.xbrl.om.exLinks.XLinkElement

      `actuate, ACTUATE, ARC, arcrole, ARCROLE, ETITLE, EXTENDED, from, FROM, href, HREF, label, LABEL, LOCATOR, RESOURCE, role, ROLE, show, SHOW, SIMPLE, title, TITLE, to, TO, TYPE`

    - ### Fields inherited from class com.ihr.xbrl.om.XMLFragment

      `CONCEPT_LABEL, CONCEPT_QNAME, EASY_TO_READ, ELEMENT_LABEL, EMPTYRELATIONSHIPSITERATORINSTANCE, EMPTYXMLFRAGMENTITERATORINSTANCE, FACT_CONCEPT_DATATYPE, FACT_CONCEPT_LABEL, FACT_QNAME, HIDE_COMMON_ACCURACY, idQName, NO_POSITION, OrderComparator, OrderComparator2, PERIOD_TYPE, PERIOD_VALUE, SHORT_TEXT, SOURCE_DOCUMENT, XPATH, XPOINTER`

    - ### Fields inherited from interface com.ihr.xbrl.om.table.HasParentChildAttribute

      `parentChilOrder`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `XBRLRuleNode(XBRLTableProcessor xbrlTableProcessor, XBRLResource res)` Instantiates a new XBRL rule node.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `XBRLRuleNode.RuleSet` | `getRuleSetByTag(java.lang.String tag)` Gets the rule set by tag.
    `java.util.Iterator<java.lang.String>` | `getTags()` Gets the tags.
    `boolean` | `isAbstract()` Returns true if this rule node contains an abstract attribute whose value is true if the attribute does not exists or if it exists and the value is false this method returns false
    `boolean` | `isMerge()` returns true if this rule node contains a merged attribute whose value is true if the attribute does not exists or if it exists and the value is false this method returns false.
    `void` | `staticCheck()` Resources that has static checking implements this interface.
    `void` | `staticCheckAspectRules()` Called during the compilation of the resource.

    - ### Methods inherited from class com.ihr.xbrl.om.table.definition.XBRLClosedDefinitionNode

      `allowRollUps, getParentChildOrder, isParentChildOrderDefined`

    - ### Methods inherited from class com.ihr.xbrl.om.table.definition.XBRLDefinitionNode

      `getBreakdownTree, getNumberOfNodes, getTagSelector, hasOpen, isLeaf, isOpen, readDefinitionNodeSubTree, resetTable`

    - ### Methods inherited from class com.ihr.xbrl.om.table.XBRLTableResource

      `getFPXPathCompiler, getProcessor, isSpecificationVersion`

    - ### Methods inherited from class com.ihr.xbrl.om.exLinks.XBRLResource

      `addChild, clear, equals, generateLocatorToNode, generateNode, getAttributes, getDTSBase, getFriendlyName, getFriendlyName, getParent, getResourceIdentifier, getRoleType, getType, getValidationReport, getValueKey, hashCode, invalidate, invalidate, isComplexType, isOnValidation, isSimpleType, setComplexType, setDTSBase, setId, setParent, setRole, setRoleType, setSimpleType, setValue, validate`

    - ### Methods inherited from class com.ihr.xbrl.om.exLinks.XLinkElement

      `getActuate, getArcrole, getFromTxt, getHRef, getLabel, getRole, getShow, getStaticLabel, getSType, getTitle, getToTxt, isRequiredAttribute, isValidAttribute, setActuate, setArcrole, setFrom, setHRef, setLabel, setShow, setSType, setTitle, setTo`

    - ### Methods inherited from class com.ihr.xbrl.om.XMLFragment

      `addAttribute, addFromRelationship, addNamespace, addNamespace, addToRelationship, addXMLChild, changeBase, checkBase, clone, clone, delAttribute, delAttribute, equalXdmValues, evaluateBoolean, evaluateList, evaluateNode, evaluateNumber, evaluateString, generateId, generateNodeNamespacesAndAttributes, generateNodeValue, generatePrefix, getAllAttributes, getAttribute, getAttributeBooleanValue, getAttributeQNameValue, getAttributes, getAttributeStringValue, getAttributeValue, getBase, getBase, getBaseURI, getBooleanValue, getChild, getContainer, getContainerDocumentURI, getDeclaredNamespaces, getDocument, getElements, getElementsHashCode, getFragment, getFromRelationships, getFromRelationships, getFromRelationships, getFromRelationships, getFromRelationships, getGenericLabelText, getId, getLang, getNamespaceURI, getNodeName, getNumberOfAttributes, getNumberOfElements, getNumberOfFromRelationships, getNumberOfToRelationships, getOrGenerateId, getPrefix, getPrefixes, getQNameValue, getRelationshipsBases, getRelationshipsChain, getRelationshipTypes, getStaticContext, getStaticNamespace, getStringValue, getToolTipText, getToRelationships, getToRelationships, getToRelationships, getToRelationships, getToRelationships, getValue, getXPathExecutable, getXPathNamespaceContext, getXPathToNode, getXPathToRoot, getXPointerElementScheme, getXPointerElementScheme, getXPointerShorthandScheme, getXPointerToNode, isDead, isNamespaceDefined, isXdmDocumentAttached, objEquals, objHashCode, qNameToString, removeAttribute, removeChild, removeChild, removeFromRelationship, removeToRelationship, removeXMLChild, resetElements, resetHash, resolve_equal2, resolveHRef, resolveHRef, s_equal2, s_equal2, s_equal2, setAttributes, setBase, setDocument, setDocumentAndReload, setElements, setLang, setNamespaceContext, setNamespaces, setNode, setNodeName, setParent, setRegenerateNodeIfnotFound, setValue, setVariablesDefined, size, thin, toString, valueEquals, xEqual`

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

      `getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface com.ihr.xbrl.om.exLinks.XBRLRelationshipPoint

      `addFromRelationship, addToRelationship, getFromRelationships, getToRelationships, removeFromRelationship, removeToRelationship`

- - ### Field Detail

    - #### _abstract

          public static final javax.xml.namespace.QName _abstract

      This is the attribute name "abstract" represented as a QName.

    - #### merge

          public static final javax.xml.namespace.QName merge

      This is the attribute name "merged" represented as a QName.

    - #### UNTAGGED_TAG_NAME

          public static final java.lang.String UNTAGGED_TAG_NAME

      The Constant UNTAGGED_TAG_NAME.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### XBRLRuleNode

          public XBRLRuleNode(XBRLTableProcessor xbrlTableProcessor,
                      XBRLResource res)
                       throws XTValidationException

      Instantiates a new XBRL rule node.
      Parameters:
        `xbrlTableProcessor` - the xbrl table processor
        `res` - the res
      Throws:
        `XTValidationException` - the XT validation exception

  - ### Method Detail

    - #### getTags

          public java.util.Iterator<java.lang.String> getTags()

      Gets the tags.
      Returns:
        the tags

    - #### getRuleSetByTag

          public XBRLRuleNode.RuleSet getRuleSetByTag(java.lang.String tag)

      Gets the rule set by tag.
      Parameters:
        `tag` - the tag
      Returns:
        the rule set by tag

    - #### isAbstract

          public boolean isAbstract()

      Returns true if this rule node contains an abstract attribute whose value is true if the attribute does not exists or if it exists and the value is false this method returns false
      Specified by:
        `isAbstract` in class `XBRLDefinitionNode`
      Returns:
        boolean value with the interpreted value for the abstract attribute

    - #### isMerge

          public boolean isMerge()

      returns true if this rule node contains a merged attribute whose value is true if the attribute does not exists or if it exists and the value is false this method returns false.
      Returns:
        boolean value with the interpreted value for the merged attribute

    - #### staticCheckAspectRules

          public void staticCheckAspectRules()
                                      throws XTValidationException,
                                             XFValidationException

      Called during the compilation of the resource. This method implement the rules about checking the aspects for the formula and raise static errors if no aspect is found.

      This method updates the internal variable allAspectsIndicated

      Throws:
        `XTValidationException` - the XT validation exception
        `XFValidationException` - the XF validation exception
      See Also:
        2.1.2 Aspect rules

    - #### staticCheck

          public void staticCheck()
                           throws XTValidationException,
                                  XFValidationException

      Description copied from interface: `StaticCheck`
      Resources that has static checking implements this interface. During resource compilation time the static check is evaluated.

      In case of errors, the staticCheck method raises XTValidationException

      Specified by:
        `staticCheck` in interface `StaticCheck`
      Throws:
        `XTValidationException` - if static errors occurs
        `XFValidationException` - if static errors occurs and the error is defined in the formula specification