com.ihr.xbrl.om.formula
Class XBRLVariableFact

java.lang.Object
  extended by com.ihr.xbrl.om.XMLFragment
      extended by com.ihr.xbrl.om.exLinks.XLinkElement
          extended by com.ihr.xbrl.om.exLinks.XBRLPointerOfARelationship
              extended by com.ihr.xbrl.om.exLinks.XBRLResource
                  extended by com.ihr.xbrl.om.formula.XBRLFormulaResource
                      extended by com.ihr.xbrl.om.formula.XBRLVariableResource
                          extended by com.ihr.xbrl.om.formula.XBRLVariableFact
All Implemented Interfaces:
XBRLRelationshipPoint, HasFormulaProcessor, XBRLVariableFormulaEvaluable, XBRLValidation, XBRLValueKey, XMLHasParent, java.lang.Cloneable, javax.xml.namespace.NamespaceContext

public class XBRLVariableFact
extends XBRLVariableResource

Author:
Ignacio

Nested Class Summary
 
Nested classes/interfaces inherited from interface com.ihr.xbrl.om.XBRLValidation
XBRLValidation.Direction
 
Field Summary
 XFCompleteScenarioAspectTest completeScenarioTest
           
 XFCompleteSegmentAspectTest completeSegmentTest
           
 XFConceptAspectTest conceptTest
           
 XFDimensionsTestController dimensionsTest
           
 XFEntityAspectTest entityTest
           
static javax.xml.namespace.QName fallbackValue
           
 XFLocationAspectTest locationTest
           
static javax.xml.namespace.QName matches
           
static javax.xml.namespace.QName nils
           
 XFNonXDTScenarioAspectTest nonXDTScenarioTest
           
 XFNonXDTSegmentAspectTest nonXDTSegmentTest
           
 XFPeriodAspectTest periodTest
           
static javax.xml.namespace.QName resourceName
           
 XFUnitAspectTest unitTest
           
 
Fields inherited from class com.ihr.xbrl.om.formula.XBRLVariableResource
as, bindAsSequence, name, 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, EMPTYRELATIONSHIPSITERATORINSTANCE, EMPTYXMLFRAGMENTITERATORINSTANCE, FACT_CONCEPT_DATATYPE, FACT_CONCEPT_LABEL, FACT_QNAME, idQName, NO_POSITION, OrderComparator, PERIOD_TYPE, PERIOD_VALUE, SHORT_TEXT, SOURCE_DOCUMENT, XPATH, XPOINTER
 
Constructor Summary
XBRLVariableFact(XBRLFormulaProcessor formulaProcessor, XBRLResource res)
           
 
Method Summary
 boolean bindAsEmpty(XBRLVariablesHolder set)
           
 boolean bindAsSequence()
          In the case of resource based variables this reads the surrounding syntax and returns the value of the bindAsSequence.
 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.
 net.sf.saxon.s9api.XdmValue fallbackValue(XBRLVariablesHolder set)
          Return the fallbackValue or null if no fallback value is possible on this variable
 java.lang.String getExpression()
          Used only for debug purposes.
 int getUncoveredAspects(XBRLVariablesHolder set)
           
 java.util.Collection<javax.xml.namespace.QName> getVariablesRequired(XBRLVariablesHolder set)
          Returns a collection of variables required for the evaluation of this variable
 boolean hasFilterAspect(int aspect, javax.xml.namespace.QName dimName)
           
 boolean isCoveredAspect(int aspect, javax.xml.namespace.QName dimName)
           
 boolean matcheable(net.sf.saxon.s9api.XdmValue value, int aspectModel)
          Calculates if the sequence passed in as a parameter satisfy requirements to be split into sub-sequences by the VariablesLoopController who is the only one class that should call this method.
 boolean matches()
          Returns the explicit or default value of the matches attribute on the Fact Variable definition
 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, getAllAspectsFiltered, getFilters, getKeysAspectsFiltered, getUse, getVariableType
 
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, 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, getAttribute, getAttributeQNameValue, getAttributes, getAttributeStringValue, getAttributeValue, getBase, getBase, getBaseURI, getBooleanValue, getChild, getContainer, getContainerDocumentURI, getDeclaredNamespaces, getDocument, getElements, getFragment, getFromRelationships, getFromRelationships, getFromRelationships, getFromRelationships, getId, getLang, getNamespaceURI, getNodeName, getNumberOfAttributes, getNumberOfElements, getNumberOfFromRelationships, getNumberOfToRelationships, getOrGenerateId, getPrefix, getPrefixes, getQNameValue, getRelationshipsBases, getRelationshipsChain, getRelationshipTypes, getStaticNamespace, getStringValue, getToRelationships, getToRelationships, getToRelationships, getToRelationships, getValue, getXPathNamespaceContext, getXPathToNode, getXPathToRoot, getXPointerElementScheme, getXPointerElementScheme, getXPointerShorthandScheme, getXPointerToNode, isDead, isNamespaceDefined, objEquals, objHashCode, qNameToString, removeAttribute, removeChild, removeChild, removeFromRelationship, removeToRelationship, removeXMLChild, resetElements, resetHash, resolveHRef, resolveHRef, s_equal2, s_equal2, setAttributes, setBase, setDocument, setDocumentAndReload, setElements, setLang, setNamespaceContext, setNamespaces, setNode, setNodeName, setParent, setValue, setVariablesDefined, 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

resourceName

public static final javax.xml.namespace.QName resourceName

nils

public static final javax.xml.namespace.QName nils

matches

public static final javax.xml.namespace.QName matches

fallbackValue

public static final javax.xml.namespace.QName fallbackValue

unitTest

public XFUnitAspectTest unitTest

locationTest

public XFLocationAspectTest locationTest

conceptTest

public XFConceptAspectTest conceptTest

entityTest

public XFEntityAspectTest entityTest

periodTest

public XFPeriodAspectTest periodTest

completeSegmentTest

public XFCompleteSegmentAspectTest completeSegmentTest

completeScenarioTest

public XFCompleteScenarioAspectTest completeScenarioTest

nonXDTScenarioTest

public XFNonXDTScenarioAspectTest nonXDTScenarioTest

nonXDTSegmentTest

public XFNonXDTSegmentAspectTest nonXDTSegmentTest

dimensionsTest

public XFDimensionsTestController dimensionsTest
Constructor Detail

XBRLVariableFact

public XBRLVariableFact(XBRLFormulaProcessor formulaProcessor,
                        XBRLResource res)
                 throws XFValidationException
Parameters:
formulaProcessor -
res -
Throws:
XFValidationException
Method Detail

bindAsSequence

public boolean bindAsSequence()
Description copied from interface: XBRLVariableFormulaEvaluable
In the case of resource based variables this reads the surrounding syntax and returns the value of the bindAsSequence.

In other cases relays on the implementation

Specified by:
bindAsSequence in interface XBRLVariableFormulaEvaluable
Overrides:
bindAsSequence in class XBRLVariableResource
Returns:

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

Returns:
Throws:
XFValidationException

matches

public boolean matches()
Returns the explicit or default value of the matches attribute on the Fact Variable definition

Returns:
boolean

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.

Returns:
Throws:
XFValidationException

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, XBRLVariableSetResource) call.

Returns:
Throws:
XFValidationException

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

fallbackValue

public net.sf.saxon.s9api.XdmValue fallbackValue(XBRLVariablesHolder set)
                                          throws XFValidationException
Return the fallbackValue or null if no fallback value is possible on this variable

Returns:
Throws:
XFValidationException

bindAsEmpty

public boolean bindAsEmpty(XBRLVariablesHolder set)
                    throws XFValidationException
Returns:
Throws:
XFValidationException

isCoveredAspect

public boolean isCoveredAspect(int aspect,
                               javax.xml.namespace.QName dimName)

getUncoveredAspects

public int getUncoveredAspects(XBRLVariablesHolder set)

hasFilterAspect

public boolean hasFilterAspect(int aspect,
                               javax.xml.namespace.QName dimName)
Specified by:
hasFilterAspect in interface XBRLVariableFormulaEvaluable
Overrides:
hasFilterAspect in class XBRLVariableResource
dimName - if aspect is DIMENSION then dimName is the dimension name
Returns:

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

Returns:
collection of QNames

matcheable

public boolean matcheable(net.sf.saxon.s9api.XdmValue value,
                          int aspectModel)
                   throws XFValidationException
Calculates if the sequence passed in as a parameter satisfy requirements to be split into sub-sequences by the VariablesLoopController who is the only one class that should call this method.

Parameters:
value - a sequence of 1 or more items that are values of a variable.
aspectModel - This is the variable set aspect model
Returns:
true or false. If true an iterator over the sequence will be created. true is then returned when all elements in the sequence contains the same values for all aspects. No value of the covered is used at this time.
Throws:
XFValidationException

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


Copyright 2006-2009 Reporting Standard S.L., C/ Torrecilla del Puerto 1, 28043, Madrid, Espaņa