com.ihr.xbrl.om.xenum

## Class ExtensibleEnumerationsProcessor

- java.lang.Object
- - com.ihr.xbrl.om.xenum.ExtensibleEnumerationsProcessor

- All Implemented Interfaces:
    XBRLCompilableProcessor, XBRLPlugInProcessor

      public class ExtensibleEnumerationsProcessor
      extends java.lang.Object
      implements XBRLCompilableProcessor

  Implementation version.
  Author:
    Ignacio
  See Also:
    Extensible Enumerations 1.0 Recommendation 29 October 2014

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static javax.xml.namespace.QName` | `enumDomain` The Constant enumDomain.
    `static javax.xml.namespace.QName` | `enumerationItemType` The Constant enumerationItemType.
    `static javax.xml.namespace.QName` | `enumHeadUsable` The Constant enumHeadUsable.
    `static java.lang.String` | `enumieNS` The Constant enumieNS.
    `static java.lang.String` | `enumiePfx` The Constant enumiePfx.
    `static javax.xml.namespace.QName` | `enumLinkrole` The Constant enumLinkrole.
    `static java.lang.String` | `enumNS` The Constant enumNS.
    `static java.lang.String` | `enumPfx` The Constant enumPfx.
    `static java.lang.String` | `enumteNS` The Constant enumteNS.
    `static java.lang.String` | `enumtePfx` The Constant enumtePfx.
    `static java.lang.String` | `PROCESSORNAME` The Constant PROCESSORNAME.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `XMLElementDefinition` | `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.
    `void` | `clear()` Called when the DTSContainer's clear method is called.
    `XBRLValidationReport` | `compileResources()` Compile resources.
    `void` | `configure(java.util.Properties properties)` Configures the processor according with the properties passed in in the properties parameter.
    `static XBRLPlugInProcessor` | `create(DTSContainer dts)` Creates the.
    `void` | `freeUnnecessary()` Liberates resources no longer needed.
    `DTSContainer` | `getContainer()` Gets the container.
    `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.
    `java.util.Iterator<DomainNode>` | `getEnumerableDomain(javax.xml.namespace.QName concept)` Access to the enumerable domain of a concept definition.
    `java.util.Iterator<DomainNode>` | `getEnumerableDomain(XBRLFactItem fact)` Access to the enumerable domain of a concept definition.
    `java.util.Iterator<DomainNode>` | `getEnumerableDomain(XBRLItem element)` Access to the enumerable domain of a concept definition.
    `java.lang.String` | `getName()` Returns the processor name so it can be written in validation reports.
    `net.sf.saxon.value.QNameValue` | `getQNameValueFromDecoratedQName(XBRLFactItem fact, java.lang.String label)` Gets the q name value from decorated q name.
    `boolean` | `isEnumerable(javax.xml.namespace.QName concept)` Returns true if the concept is defined as enum:enumerationItemType.
    `boolean` | `isEnumerable(XBRLFactItem fact)` Returns true if the fact is defined as enum:enumerationItemType.
    `boolean` | `isEnumerable(XBRLItem element)` Returns true if the element is defined as enum:enumerationItemType.
    `boolean` | `isHidden()` A hidden processor will not pop-up in the GUI tabs.
    `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.
    `XBRLValidationReport` | `validateFact(XBRLFactItem xbrlFactItem)` Validate fact.

    - ### 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

    - #### enumNS

          public static final java.lang.String enumNS

      The Constant enumNS.
      See Also:
        Constant Field Values

    - #### enumPfx

          public static final java.lang.String enumPfx

      The Constant enumPfx.
      See Also:
        Constant Field Values

    - #### enumteNS

          public static final java.lang.String enumteNS

      The Constant enumteNS.
      See Also:
        Constant Field Values

    - #### enumtePfx

          public static final java.lang.String enumtePfx

      The Constant enumtePfx.
      See Also:
        Constant Field Values

    - #### enumieNS

          public static final java.lang.String enumieNS

      The Constant enumieNS.
      See Also:
        Constant Field Values

    - #### enumiePfx

          public static final java.lang.String enumiePfx

      The Constant enumiePfx.
      See Also:
        Constant Field Values

    - #### enumerationItemType

          public static final javax.xml.namespace.QName enumerationItemType

      The Constant enumerationItemType.

    - #### enumDomain

          public static final javax.xml.namespace.QName enumDomain

      The Constant enumDomain.

    - #### enumLinkrole

          public static final javax.xml.namespace.QName enumLinkrole

      The Constant enumLinkrole.

    - #### enumHeadUsable

          public static final javax.xml.namespace.QName enumHeadUsable

      The Constant enumHeadUsable.

  - ### Method Detail

    - #### 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`

    - #### 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

    - #### getDescriptionStatic

          public static java.lang.String getDescriptionStatic()

      Gets the description static.
      Returns:
        the description static

    - #### 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

    - #### 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`

    - #### compileResources

          public XBRLValidationReport compileResources()

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

    - #### checkValidQNameIsConcept

          public XMLElementDefinition checkValidQNameIsConcept(javax.xml.namespace.QName qname)
                                                        throws ENenumteInvalidDomainError

      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 XML element definition
      Throws:
        `ENenumteInvalidDomainError` - the e nenumte invalid domain error

    - #### 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 XBRLPlugInProcessor create(DTSContainer dts)

      Creates the.
      Parameters:
        `dts` - the dts
      Returns:
        the XBRL plug in processor

    - #### getContainer

          public DTSContainer getContainer()

      Gets the container.
      Returns:
        the container

    - #### validateFact

          public XBRLValidationReport validateFact(XBRLFactItem xbrlFactItem)

      Validate fact.
      Parameters:
        `xbrlFactItem` - the xbrl fact item
      Returns:
        the XBRL validation report

    - #### isEnumerable

          public boolean isEnumerable(XBRLFactItem fact)

      Returns true if the fact is defined as enum:enumerationItemType.
      Parameters:
        `fact` - the fact
      Returns:
        true, if is enumerable

    - #### isEnumerable

          public boolean isEnumerable(XBRLItem element)

      Returns true if the element is defined as enum:enumerationItemType.
      Parameters:
        `element` - the element
      Returns:
        true, if is enumerable

    - #### isEnumerable

          public boolean isEnumerable(javax.xml.namespace.QName concept)

      Returns true if the concept is defined as enum:enumerationItemType.
      Parameters:
        `concept` - the concept
      Returns:
        true, if is enumerable

    - #### getEnumerableDomain

          public java.util.Iterator<DomainNode> getEnumerableDomain(XBRLFactItem fact)

      Access to the enumerable domain of a concept definition. DomainNode are organized in a tree
      Parameters:
        `fact` - the fact
      Returns:
        the enumerable domain

    - #### getEnumerableDomain

          public java.util.Iterator<DomainNode> getEnumerableDomain(XBRLItem element)

      Access to the enumerable domain of a concept definition. DomainNode are organized in a tree
      Parameters:
        `element` - the element
      Returns:
        the enumerable domain

    - #### getEnumerableDomain

          public java.util.Iterator<DomainNode> getEnumerableDomain(javax.xml.namespace.QName concept)

      Access to the enumerable domain of a concept definition. DomainNode are organized in a tree
      Parameters:
        `concept` - the concept
      Returns:
        the enumerable domain

    - #### getQNameValueFromDecoratedQName

          public net.sf.saxon.value.QNameValue getQNameValueFromDecoratedQName(XBRLFactItem fact,
                                                                      java.lang.String label)

      Gets the q name value from decorated q name.
      Parameters:
        `fact` - the fact
        `label` - the label
      Returns:
        the q name value from decorated q name