Class BasisLibrary

java.lang.Object
org.apache.xalan.xsltc.runtime.BasisLibrary

public final class BasisLibrary extends Object
Standard XSLT functions. All standard functions expect the current node and the DOM as their last two arguments.
  • Field Details

  • Constructor Details

    • BasisLibrary

      public BasisLibrary()
  • Method Details

    • countF

      public static int countF(DTMAxisIterator iterator)
      Standard function count(node-set)
    • positionF

      public static int positionF(DTMAxisIterator iterator)
      Deprecated.
      This method exists only for backwards compatibility with old translets. New code should not reference it.
      Standard function position()
    • sumF

      public static double sumF(DTMAxisIterator iterator, DOM dom)
      XSLT Standard function sum(node-set). stringToDouble is inlined
    • stringF

      public static String stringF(int node, DOM dom)
      XSLT Standard function string()
    • stringF

      public static String stringF(Object obj, DOM dom)
      XSLT Standard function string(value)
    • stringF

      public static String stringF(Object obj, int node, DOM dom)
      XSLT Standard function string(value)
    • numberF

      public static double numberF(int node, DOM dom)
      XSLT Standard function number()
    • numberF

      public static double numberF(Object obj, DOM dom)
      XSLT Standard function number(value)
    • roundF

      public static double roundF(double d)
      XSLT Standard function round()
    • booleanF

      public static boolean booleanF(Object obj)
      XSLT Standard function boolean()
    • substringF

      public static String substringF(String value, double start)
      XSLT Standard function substring(). Must take a double because of conversions resulting into NaNs and rounding.
    • substringF

      public static String substringF(String value, double start, double length)
      XSLT Standard function substring(). Must take a double because of conversions resulting into NaNs and rounding.
    • substring_afterF

      public static String substring_afterF(String value, String substring)
      XSLT Standard function substring-after().
    • substring_beforeF

      public static String substring_beforeF(String value, String substring)
      XSLT Standard function substring-before().
    • translateF

      public static String translateF(String value, String from, String to)
      XSLT Standard function translate().
    • normalize_spaceF

      public static String normalize_spaceF(int node, DOM dom)
      XSLT Standard function normalize-space().
    • normalize_spaceF

      public static String normalize_spaceF(String value)
      XSLT Standard function normalize-space(string).
    • generate_idF

      public static String generate_idF(int node)
      XSLT Standard function generate-id().
    • getLocalName

      public static String getLocalName(String value)
      utility function for calls to local-name().
    • unresolved_externalF

      public static void unresolved_externalF(String name)
      External functions that cannot be resolved are replaced with a call to this method. This method will generate a runtime errors. A good stylesheet checks whether the function exists using conditional constructs, and never really tries to call it if it doesn't exist. But simple stylesheets may result in a call to this method. The compiler should generate a warning if it encounters a call to an unresolved external function.
    • unallowed_extension_functionF

      public static void unallowed_extension_functionF(String name)
      Utility function to throw a runtime error on the use of an extension function when the secure processing feature is set to true.
    • unallowed_extension_elementF

      public static void unallowed_extension_elementF(String name)
      Utility function to throw a runtime error on the use of an extension element when the secure processing feature is set to true.
    • unsupported_ElementF

      public static void unsupported_ElementF(String qname, boolean isExtension)
      Utility function to throw a runtime error for an unsupported element. This is only used in forward-compatibility mode, when the control flow cannot be determined. In 1.0 mode, the error message is emitted at compile time.
    • namespace_uriF

      public static String namespace_uriF(DTMAxisIterator iter, DOM dom)
      XSLT Standard function namespace-uri(node-set).
    • system_propertyF

      public static String system_propertyF(String name)
      XSLT Standard function system-property(name)
    • namespace_uriF

      public static String namespace_uriF(int node, DOM dom)
      XSLT Standard function namespace-uri().
    • objectTypeF

      public static String objectTypeF(Object obj)
      Implements the object-type() extension function.
      See Also:
    • nodesetF

      public static DTMAxisIterator nodesetF(Object obj)
      Implements the nodeset() extension function.
    • compare

      public static boolean compare(DTMAxisIterator left, DTMAxisIterator right, int op, DOM dom)
      Utility function: node-set/node-set compare.
    • compare

      public static boolean compare(int node, DTMAxisIterator iterator, int op, DOM dom)
    • compare

      public static boolean compare(DTMAxisIterator left, double rnumber, int op, DOM dom)
      Utility function: node-set/number compare.
    • compare

      public static boolean compare(DTMAxisIterator left, String rstring, int op, DOM dom)
      Utility function: node-set/string comparison.
    • compare

      public static boolean compare(Object left, Object right, int op, DOM dom)
    • testLanguage

      public static boolean testLanguage(String testLang, DOM dom, int node)
      Utility function: used to test context node's language
    • stringToReal

      public static double stringToReal(String s)
      Utility function: used in StringType to convert a string to a real.
    • stringToInt

      public static int stringToInt(String s)
      Utility function: used in StringType to convert a string to an int.
    • realToString

      public static String realToString(double d)
      Utility function: used in RealType to convert a real to a string. Removes the decimal if null.
    • realToInt

      public static int realToInt(double d)
      Utility function: used in RealType to convert a real to an integer
    • formatNumber

      public static String formatNumber(double number, String pattern, DecimalFormat formatter)
    • referenceToNodeSet

      public static DTMAxisIterator referenceToNodeSet(Object obj)
      Utility function: used to convert references to node-sets. If the obj is an instanceof Node then create a singleton iterator.
    • referenceToNodeList

      public static NodeList referenceToNodeList(Object obj, DOM dom)
      Utility function: used to convert reference to org.w3c.dom.NodeList.
    • referenceToNode

      public static Node referenceToNode(Object obj, DOM dom)
      Utility function: used to convert reference to org.w3c.dom.Node.
    • referenceToLong

      public static long referenceToLong(Object obj)
      Utility function: used to convert reference to long.
    • referenceToDouble

      public static double referenceToDouble(Object obj)
      Utility function: used to convert reference to double.
    • referenceToBoolean

      public static boolean referenceToBoolean(Object obj)
      Utility function: used to convert reference to boolean.
    • referenceToString

      public static String referenceToString(Object obj, DOM dom)
      Utility function: used to convert reference to String.
    • node2Iterator

      public static DTMAxisIterator node2Iterator(Node node, Translet translet, DOM dom)
      Utility function used to convert a w3c Node into an internal DOM iterator.
    • nodeList2Iterator

      public static DTMAxisIterator nodeList2Iterator(NodeList nodeList, Translet translet, DOM dom)
      Utility function used to convert a w3c NodeList into a internal DOM iterator.
    • referenceToResultTree

      public static DOM referenceToResultTree(Object obj)
      Utility function used to convert references to DOMs.
    • getSingleNode

      public static DTMAxisIterator getSingleNode(DTMAxisIterator iterator)
      Utility function: used with nth position filters to convert a sequence of nodes to just one single node (the one at position n).
    • copy

      public static void copy(Object obj, SerializationHandler handler, int node, DOM dom)
    • checkAttribQName

      public static void checkAttribQName(String name)
      Utility function to check if xsl:attribute has a valid qname This method should only be invoked if the name attribute is an AVT
    • checkNCName

      public static void checkNCName(String name)
      Utility function to check if a name is a valid ncname This method should only be invoked if the attribute value is an AVT
    • checkQName

      public static void checkQName(String name)
      Utility function to check if a name is a valid qname This method should only be invoked if the attribute value is an AVT
    • startXslElement

      public static String startXslElement(String qname, String namespace, SerializationHandler handler, DOM dom, int node)
      Utility function for the implementation of xsl:element.
    • lookupStylesheetQNameNamespace

      public static String lookupStylesheetQNameNamespace(String lexicalQName, int stylesheetNodeID, int[] ancestorNodeIDs, int[] prefixURIsIndex, String[] prefixURIPairs, boolean ignoreDefault)

      Look up the namespace for a lexical QName using the namespace declarations available at a particular location in the stylesheet.

      See Stylesheet.compileStaticInitializer(org.apache.xalan.xsltc.compiler.util.ClassGenerator) for more information about the ancestorNodeIDs, prefixURIsIndex and prefixURIPairsinvalid input: '<'/code arrays.

      Parameters:
      lexicalQName - The QName as a java.lang.String
      stylesheetNodeID - An int representing the element in the stylesheet relative to which the namespace of the lexical QName is to be determined
      ancestorNodeIDs - An int array, indexed by stylesheet node IDs, containing the ID of the nearest ancestor node in the stylesheet that has namespace declarations, or -1 if there is no such ancestor
      prefixURIsIndex - An int array, indexed by stylesheet node IDs, containing the index into the prefixURIPairs array of the first prefix declared on that stylesheet node
      prefixURIPairs - A java.lang.String array that contains pairs of
      ignoreDefault - A boolean indicating whether any default namespace decarlation should be considered
      Returns:
      The namespace of the lexical QName or a zero-length string if the QName is in no namespace or no namespace declaration for the prefix of the QName was found
    • expandStylesheetQNameRef

      public static String expandStylesheetQNameRef(String lexicalQName, int stylesheetNodeID, int[] ancestorNodeIDs, int[] prefixURIsIndex, String[] prefixURIPairs, boolean ignoreDefault)

      Look up the namespace for a lexical QName using the namespace declarations available at a particular location in the stylesheet and return the expanded QName

      See Stylesheet.compileStaticInitializer(org.apache.xalan.xsltc.compiler.util.ClassGenerator) for more information about the ancestorNodeIDs, prefixURIsIndex and prefixURIPairsinvalid input: '<'/code arrays.

      Parameters:
      lexicalQName - The QName as a java.lang.String
      stylesheetNodeID - An int representing the element in the stylesheet relative to which the namespace of the lexical QName is to be determined
      ancestorNodeIDs - An int array, indexed by stylesheet node IDs, containing the ID of the nearest ancestor node in the stylesheet that has namespace declarations, or -1 if there is no such ancestor
      prefixURIsIndex - An int array, indexed by stylesheet node IDs, containing the index into the prefixURIPairs array of the first prefix declared on that stylesheet node
      prefixURIPairs - A java.lang.String array that contains pairs of
      ignoreDefault - A boolean indicating whether any default namespace decarlation should be considered
      Returns:
      The expanded QName in the form "uri:localName" or just "localName" if the QName is in no namespace or no namespace declaration for the prefix of the QName was found
    • getPrefix

      public static String getPrefix(String qname)
      This function is used in the execution of xsl:element
    • generatePrefix

      public static String generatePrefix()
    • runTimeError

      public static void runTimeError(String code)
      Print a run-time error message.
    • runTimeError

      public static void runTimeError(String code, Object[] args)
    • runTimeError

      public static void runTimeError(String code, Object arg0)
    • runTimeError

      public static void runTimeError(String code, Object arg0, Object arg1)
    • consoleOutput

      public static void consoleOutput(String msg)
    • replace

      public static String replace(String base, char ch, String str)
      Replace a certain character in a string with a new substring.
    • replace

      public static String replace(String base, String delim, String[] str)
    • mapQNameToJavaName

      public static String mapQNameToJavaName(String base)
      Utility method to allow setting parameters of the form {namespaceuri}localName which get mapped to an instance variable in the class Hence a parameter of the form "{http://foo.bar}xyz" will be replaced with the corresponding values by the BasisLibrary's utility method mapQNametoJavaName and thus get mapped to legal java variable names