com.ihr.xbrl.om.table.definition

## Class DimensionExplicitRule

- java.lang.Object
- - com.ihr.xbrl.om.table.definition.DimensionCommonAspectRule
  - - com.ihr.xbrl.om.table.definition.DimensionExplicitRule

- All Implemented Interfaces:
    DimensionAspectInterface<javax.xml.namespace.QName>, ExplicitDimensionAspectInterface, Aspect<DimensionAndValuePair<javax.xml.namespace.QName>>

      public class DimensionExplicitRule
      extends DimensionCommonAspectRule
      implements ExplicitDimensionAspectInterface

  The Class DimensionExplicitRule.
  Author:
    Ignacio

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static javax.xml.namespace.QName` | `member` The Constant member.
    `static javax.xml.namespace.QName` | `omit` The Constant omit.
    `static javax.xml.namespace.QName` | `qname` The Constant qname.
    `static javax.xml.namespace.QName` | `qnameExpression` The Constant qnameExpression.
    `static javax.xml.namespace.QName` | `resourceName` The Constant resourceName.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DimensionExplicitRule(XBRLRuleNode ruleNode, net.sf.saxon.s9api.XdmNode aspectNode)` Instantiates a new dimension explicit rule.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `getAspectClashIdentity()` Returns an object that can be used to evaluate aspect clash.
    `int` | `getAspectType()` Returns a value from the CommonAspectRule class that identifies the aspect type.
    `javax.xml.namespace.QName` | `getMember(XBRLStructuralTable xbrlTable)` Returns the QName member this DimensionExplicitRule contributes.
    `DimensionAndMemberQNamesPair` | `getMember(XBRLStructuralTable table, CellHeader[] header)` Convert this aspect into a proper Member
    `int` | `getMembersCount()` Gets the members count.
    `javax.xml.namespace.QName` | `getStaticMember()` If the node contains the member explicitly defined as a QName, this method returns the defined member in the resource.
    `void` | `resetNode()` Reset node.
    `java.lang.String` | `toString()`

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

      `getDimension`

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

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

    - ### Methods inherited from interface com.ihr.xbrl.om.table.definition.DimensionAspectInterface

      `getDimension`

- - ### Field Detail

    - #### resourceName

          public static final javax.xml.namespace.QName resourceName

      The Constant resourceName.

    - #### member

          public static final javax.xml.namespace.QName member

      The Constant member.

    - #### omit

          public static final javax.xml.namespace.QName omit

      The Constant omit.

    - #### qname

          public static final javax.xml.namespace.QName qname

      The Constant qname.

    - #### qnameExpression

          public static final javax.xml.namespace.QName qnameExpression

      The Constant qnameExpression.

  - ### Constructor Detail

    - #### DimensionExplicitRule

          public DimensionExplicitRule(XBRLRuleNode ruleNode,
                               net.sf.saxon.s9api.XdmNode aspectNode)
                                throws XTValidationException

      Instantiates a new dimension explicit rule.
      Parameters:
        `ruleNode` - the rule node
        `aspectNode` - the aspect node
      Throws:
        `XTValidationException` - the XT validation exception

  - ### Method Detail

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### getStaticMember

          public javax.xml.namespace.QName getStaticMember()

      If the node contains the member explicitly defined as a QName, this method returns the defined member in the resource. Otherwise this method returns null and, in order to evaluate the member an XPathHelper is required

      Note, this method is not stable. We may remove this method and create a single method to remove the need to provide an XPathHelper if that is possible. At this time we cannot evaluate if this is possible so we have two methods in place

      Returns:
        QName member or null if it is not statically defined

    - #### getMember

          public javax.xml.namespace.QName getMember(XBRLStructuralTable xbrlTable)
                                              throws XTValidationException

      Returns the QName member this DimensionExplicitRule contributes. If the QName is static, the xbrlTable parameter is not used. If the node contains the member defined as an XPath expression, this method returns the defined member in the resource by evaluating the XPath expression. In this case, the xbrlTable may provide parameters for the evaluation of the XPath expression
      Specified by:
        `getMember` in interface `ExplicitDimensionAspectInterface`
      Parameters:
        `xbrlTable` - this is the table this expression is participating. This is used to obtain the table parameters
      Returns:
        QName member
      Throws:
        `XTValidationException` - the XT validation exception

    - #### getAspectClashIdentity

          public java.lang.Object getAspectClashIdentity()

      Description copied from interface: `Aspect`
      Returns an object that can be used to evaluate aspect clash.
      Specified by:
        `getAspectClashIdentity` in interface `Aspect<DimensionAndValuePair<javax.xml.namespace.QName>>`
      Returns:
        the aspect clash identity

    - #### getAspectType

          public int getAspectType()

      Description copied from interface: `Aspect`
      Returns a value from the CommonAspectRule class that identifies the aspect type.
      Specified by:
        `getAspectType` in interface `Aspect<DimensionAndValuePair<javax.xml.namespace.QName>>`
      Returns:
        the aspect type

    - #### getMembersCount

          public int getMembersCount()

      Description copied from interface: `DimensionAspectInterface`
      Gets the members count.
      Specified by:
        `getMembersCount` in interface `DimensionAspectInterface<javax.xml.namespace.QName>`
      Returns:
        the members count

    - #### resetNode

          public void resetNode()

      Description copied from interface: `DimensionAspectInterface`
      Reset node.
      Specified by:
        `resetNode` in interface `DimensionAspectInterface<javax.xml.namespace.QName>`

    - #### getMember

          public DimensionAndMemberQNamesPair getMember(XBRLStructuralTable table,
                                               CellHeader[] header)
                                                 throws XTValidationException

      Description copied from interface: `Aspect`
      Convert this aspect into a proper Member depending on the aspect type. Member can be used later to search for facts that satisfy the set of members
      Specified by:
        `getMember` in interface `Aspect<DimensionAndValuePair<javax.xml.namespace.QName>>`
      Parameters:
        `table` - the table
        `header` - the header
      Returns:
        the member
      Throws:
        `XTValidationException` - the XT validation exception