com.ihr.xbrl.om.formula

## Class XBRLVariableParameter

- 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.formula.XBRLFormulaResource
          - - com.ihr.xbrl.om.formula.XBRLVariableResource
            - - com.ihr.xbrl.om.formula.XBRLVariableParameter

- All Implemented Interfaces:
    HasAdditionalEqualityForReassignation, XBRLRelationshipPoint, HasFormulaProcessor, XBRLVariableFormulaEvaluable, Thinable, XBRLValidation, XBRLValueKey, XMLHasParent, java.lang.Cloneable, javax.xml.namespace.NamespaceContext

      public class XBRLVariableParameter
      extends XBRLVariableResource

  The Class XBRLVariableParameter.
  Author:
    Ignacio

- - ### Nested Class Summary

    - ### 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` | `as` The Constant as.
    `static javax.xml.namespace.QName` | `name` The Constant name.
    `static javax.xml.namespace.QName` | `required` The Constant required.
    `static javax.xml.namespace.QName` | `resourceName` The Constant resourceName.
    `static javax.xml.namespace.QName` | `select` The Constant select.

    - ### Fields inherited from class com.ihr.xbrl.om.formula.XBRLVariableResource

      `bindAsSequence, log, order`

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

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

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `XBRLVariableParameter(XBRLFormulaProcessor proc, XBRLResource other)` Instantiates a new XBRL variable parameter.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `checkVariable(XBRLVariablesHolder set, javax.xml.namespace.QName name, java.util.Collection<net.sf.saxon.s9api.QName> resolved)` Called for variables that are also resources during the static compilation phase of the formula preparation.
    `void` | `clear()` Removes all referneces to this resource in the DTS.
    `Evaluation` | `evaluateValue(XMLFragment evaluationContext, java.util.Collection<XBRLVariableResourceUse> availableVars, XBRLVariableSetResource set)` Evaluates the resource internal XPath expression and returns either the returned value from the XPath expression or the fall back value in the case of variables that may have a fall back value and the rawEvaluation of the XPath expression results in the empty sequence.
    `java.lang.String` | `getExpression()` Used only for debug purposes.
    `javax.xml.namespace.QName` | `getParameterName()` Gets the parameter name.
    `java.util.Collection<javax.xml.namespace.QName>` | `getVariablesRequired(XBRLVariablesHolder set)` Returns a collection of variables required for the evaluation of this variable.
    `XMLFragment` | `getXMLFragment()` Returns the surrounding XML Fragment this resource comes from.
    `boolean` | `isEvaluationRequired()` Returns true when this parameter has not been evaluated and evaluation depends upon the evaluation of another parameter so re-evaluation is needed.
    `Evaluation` | `rawEvaluateValue(XMLFragment evaluationContext, java.util.Collection<XBRLVariableResourceUse> availableVars)` Evaluates the resource internal XPath expression and returns the sequence.

    - ### Methods inherited from class com.ihr.xbrl.om.formula.XBRLVariableResource

      `adjustValueAccordingToType, bindAsSequence, getAllAspectsFiltered, getFilters, getKeysAspectsFiltered, getUse, getVariableType, hasFilterAspect`

    - ### Methods inherited from class com.ihr.xbrl.om.formula.XBRLFormulaResource

      `getProcessor`

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

      `addChild, 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.formula.XBRLVariableFormulaEvaluable

      `getProcessor`

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

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

- - ### Field Detail

    - #### name

          public static final javax.xml.namespace.QName name

      The Constant name.

    - #### required

          public static final javax.xml.namespace.QName required

      The Constant required.

    - #### select

          public static final javax.xml.namespace.QName select

      The Constant select.

    - #### as

          public static final javax.xml.namespace.QName as

      The Constant as.

    - #### resourceName

          public static final javax.xml.namespace.QName resourceName

      The Constant resourceName.

  - ### Constructor Detail

    - #### XBRLVariableParameter

          public XBRLVariableParameter(XBRLFormulaProcessor proc,
                               XBRLResource other)
                                throws XFValidationException

      Instantiates a new XBRL variable parameter.
      Parameters:
        `proc` - the proc
        `other` - the other
      Throws:
        `XFValidationException` - the XF validation exception

  - ### Method Detail

    - #### clear

          public void clear()

      Description copied from class: `XBRLResource`
      Removes all referneces to this resource in the DTS.
      Specified by:
        `clear` in interface `XBRLVariableFormulaEvaluable`
      Overrides:
        `clear` in class `XBRLVariableResource`

    - #### isEvaluationRequired

          public boolean isEvaluationRequired()

      Returns true when this parameter has not been evaluated and evaluation depends upon the evaluation of another parameter so re-evaluation is needed. This method is used internally by the XBRLFormulaProcessor
      Returns:
        true, if is evaluation required

    - #### getParameterName

          public javax.xml.namespace.QName getParameterName()

      Gets the parameter name.
      Returns:
        QName the variable QName name

    - #### evaluateValue

          public Evaluation evaluateValue(XMLFragment evaluationContext,
                                 java.util.Collection<XBRLVariableResourceUse> availableVars,
                                 XBRLVariableSetResource set)
                                   throws XFValidationException

      Description copied from interface: `XBRLVariableFormulaEvaluable`
      Evaluates the resource internal XPath expression and returns either the returned value from the XPath expression or the fall back value in the case of variables that may have a fall back value and the rawEvaluation of the XPath expression results in the empty sequence. The raw evaluation of the XPath expression is implemented in the rawEvaluateValue(XMLFragment, Collection) call.
      Parameters:
        `evaluationContext` - the evaluation context
        `availableVars` - the available vars
        `set` - the set
      Returns:
        the evaluation
      Throws:
        `XFValidationException` - the XF validation exception
      See Also:
        `XBRLVariableFormulaEvaluable.rawEvaluateValue(XMLFragment, Collection)`

    - #### rawEvaluateValue

          public Evaluation rawEvaluateValue(XMLFragment evaluationContext,
                                    java.util.Collection<XBRLVariableResourceUse> availableVars)
                                      throws XFValidationException

      Description copied from interface: `XBRLVariableFormulaEvaluable`
      Evaluates the resource internal XPath expression and returns the sequence. This method does not considers nor evaluates the default value if any is possible. The evaluation considering default values is implemented in the `XBRLVariableFormulaEvaluable.evaluateValue(XMLFragment, Collection, XBRLVariableSetResource)` method.
      Parameters:
        `evaluationContext` - the evaluation context
        `availableVars` - the available vars
      Returns:
        the evaluation
      Throws:
        `XFValidationException` - the XF validation exception

    - #### checkVariable

          public boolean checkVariable(XBRLVariablesHolder set,
                              javax.xml.namespace.QName name,
                              java.util.Collection<net.sf.saxon.s9api.QName> resolved)
                                throws XFValidationException

      Description copied from interface: `XBRLVariableFormulaEvaluable`
      Called for variables that are also resources during the static compilation phase of the formula preparation.

      throws exceptions according to the validation rules.

      shall return true on success

      Parameters:
        `set` - the set
        `name` - the name
        `resolved` - the resolved
      Returns:
        true, if successful
      Throws:
        `XFValidationException` - the XF validation exception

    - #### getVariablesRequired

          public java.util.Collection<javax.xml.namespace.QName> getVariablesRequired(XBRLVariablesHolder set)

      Description copied from interface: `XBRLVariableFormulaEvaluable`
      Returns a collection of variables required for the evaluation of this variable.
      Parameters:
        `set` - the set
      Returns:
        collection of QNames

    - #### getExpression

          public java.lang.String getExpression()

      Description copied from class: `XBRLVariableResource`
      Used only for debug purposes.

      Returns the XPath expression used to evaluate this variable

      Specified by:
        `getExpression` in class `XBRLVariableResource`
      Returns:
        String

    - #### getXMLFragment

          public XMLFragment getXMLFragment()

      Description copied from interface: `XBRLVariableFormulaEvaluable`
      Returns the surrounding XML Fragment this resource comes from.
      Returns:
        the XML fragment