com.ihr.xbrl.om.formula

## Class XBRLRSCustomFunctionLibraryAbstract

- java.lang.Object
- - com.ihr.xbrl.om.formula.XBRLRSCustomFunctionLibraryAbstract

- All Implemented Interfaces:
    XBRLRSCustomFunctionLibrary, java.io.Serializable, net.sf.saxon.functions.FunctionLibrary
  Direct Known Subclasses:
    RSFunctionLibrary, XBRLCustomFunctionImplementationLibrary, XFFFunctionLibrary, XFIFunctionLibrary

      public abstract class XBRLRSCustomFunctionLibraryAbstract
      extends java.lang.Object
      implements XBRLRSCustomFunctionLibrary

  This class in an implementation of the XBRLRSCustomFunctionLibrary interface that helps implementing new functions.
  Author:
    Ignacio
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `XBRLRSCustomFunctionLibraryAbstract()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `net.sf.saxon.expr.Expression` | `bind(net.sf.saxon.om.StructuredQName functionName, net.sf.saxon.expr.Expression[] staticArgs, net.sf.saxon.expr.StaticContext env, net.sf.saxon.expr.Container container)`
    `net.sf.saxon.functions.FunctionLibrary` | `copy()`
    `XBRLFormulaProcessor` | `getFormulaProcessor()` This function returns the instance of the XBRLFormulaProcessor that has been set during the initialization phase of this library.
    `abstract net.sf.saxon.functions.StandardFunction.Entry` | `getFunction(java.lang.String local, int arity)` Returns the implementation of a specific function providing the function local name and the arity.
    `abstract java.lang.String` | `getFunctionLibraryPrefix()` Returns the custom function library prefix.
    `abstract java.lang.String` | `getFunctionLibraryURI()` returns the custom function library URI.
    `net.sf.saxon.value.SequenceType[]` | `getFunctionSignature(net.sf.saxon.om.StructuredQName functionName, int arity)`
    `boolean` | `isAvailable(net.sf.saxon.om.StructuredQName functionName, int arity)` Checks if is available.
    `void` | `setFormulaProcessor(XBRLFormulaProcessor fp)` This function will be called when the function library is initialized.

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

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

- - ### Constructor Detail

    - #### XBRLRSCustomFunctionLibraryAbstract

          public XBRLRSCustomFunctionLibraryAbstract()

  - ### Method Detail

    - #### getFormulaProcessor

          public XBRLFormulaProcessor getFormulaProcessor()

      Description copied from interface: `XBRLRSCustomFunctionLibrary`
      This function returns the instance of the XBRLFormulaProcessor that has been set during the initialization phase of this library.

      Use methods inside the XBRLFormulaProcessor in order to access the instance document under validation, the DTSContainer and, from that point, all the information in the DTS such as concepts defined, labels, relationships, etc.

      Specified by:
        `getFormulaProcessor` in interface `XBRLRSCustomFunctionLibrary`
      Returns:
        XBRLFormulaProcessor

    - #### setFormulaProcessor

          public void setFormulaProcessor(XBRLFormulaProcessor fp)

      Description copied from interface: `XBRLRSCustomFunctionLibrary`
      This function will be called when the function library is initialized. The library should store the formula processor for internal use within functions in the library. See also `XBRLRSCustomFunctionLibrary.getFormulaProcessor()`
      Specified by:
        `setFormulaProcessor` in interface `XBRLRSCustomFunctionLibrary`
      Parameters:
        `fp` - the new formula processor

    - #### getFunctionLibraryURI

          public abstract java.lang.String getFunctionLibraryURI()

      returns the custom function library URI.
      Returns:
        String

    - #### getFunctionLibraryPrefix

          public abstract java.lang.String getFunctionLibraryPrefix()

      Returns the custom function library prefix.
      Returns:
        String

    - #### getFunction

          public abstract net.sf.saxon.functions.StandardFunction.Entry getFunction(java.lang.String local,
                                                                  int arity)

      Returns the implementation of a specific function providing the function local name and the arity.
      Parameters:
        `local` - function local name
        `arity` - number of arguments
      Returns:
        StandardFunction.Entry

    - #### bind

          public net.sf.saxon.expr.Expression bind(net.sf.saxon.om.StructuredQName functionName,
                                          net.sf.saxon.expr.Expression[] staticArgs,
                                          net.sf.saxon.expr.StaticContext env,
                                          net.sf.saxon.expr.Container container)
                                            throws net.sf.saxon.trans.XPathException

      Specified by:
        `bind` in interface `net.sf.saxon.functions.FunctionLibrary`
      Throws:
        `net.sf.saxon.trans.XPathException`

    - #### copy

          public net.sf.saxon.functions.FunctionLibrary copy()

      Specified by:
        `copy` in interface `net.sf.saxon.functions.FunctionLibrary`

    - #### isAvailable

          public boolean isAvailable(net.sf.saxon.om.StructuredQName functionName,
                            int arity)

      Checks if is available.
      Parameters:
        `functionName` - the function name
        `arity` - the arity
      Returns:
        true, if is available

    - #### getFunctionSignature

          public net.sf.saxon.value.SequenceType[] getFunctionSignature(net.sf.saxon.om.StructuredQName functionName,
                                                               int arity)

      Specified by:
        `getFunctionSignature` in interface `net.sf.saxon.functions.FunctionLibrary`