net.sf.saxon.functions

## Class ResolveURI

- java.lang.Object
- - net.sf.saxon.expr.Expression
  - - net.sf.saxon.expr.FunctionCall
    - - net.sf.saxon.functions.SystemFunctionCall
      - - net.sf.saxon.functions.ResolveURI

- All Implemented Interfaces:
    Serializable, SourceLocator, LocationProvider, SaxonLocator, Callable, InstructionInfo, Locator

      public class ResolveURI
      extends SystemFunctionCall
      implements Callable

  This class supports the resolve-uri() functions in XPath 2.0
  See Also:
    Serialized Form

- - ### Field Summary

    - ### Fields inherited from class net.sf.saxon.functions.SystemFunctionCall

      `operation`

    - ### Fields inherited from class net.sf.saxon.expr.FunctionCall

      `argument`

    - ### Fields inherited from class net.sf.saxon.expr.Expression

      `EFFECTIVE_BOOLEAN_VALUE, EVALUATE_METHOD, EVENT_FEED_METHOD, INHERITED_CONTEXT, INSPECTION_CONTEXT, ITEM_FEED_METHOD, ITERATE_METHOD, locationId, MAX_SEQUENCE_LENGTH, MAX_STRING_LENGTH, NAVIGATION_CONTEXT, NODE_VALUE_CONTEXT, PROCESS_METHOD, PUSH_SELECTION, staticProperties, UNBOUNDED_LOWER, UNBOUNDED_UPPER, W3C_CONSUMING, W3C_FREE_RANGING, W3C_GROUP_CONSUMING, W3C_MOTIONLESS, WATCH_METHOD`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ResolveURI()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `bindStaticContext(StaticContext env)` Bind aspects of the static context on which the particular function depends
    `Sequence` | `call(XPathContext context, Sequence[] arguments)` Evaluate the expression
    `void` | `checkArguments(ExpressionVisitor visitor)` Method called during static type checking
    `Expression` | `copy()` Copy an expression.
    `boolean` | `equals(Object o)` Determine whether two expressions are equivalent
    `static String` | `escapeSpaces(String s)` Replace spaces by %20
    `AnyURIValue` | `evaluateItem(XPathContext context)` Evaluate the function at run-time
    `String` | `getStaticBaseURI()` Get the static base URI of the expression
    `static URI` | `makeAbsolute(String relativeURI, String base)` Construct an absolute URI from a relative URI and a base URI.
    `static String` | `tryToExpand(String systemId)` If a system ID can't be parsed as a URL, try to expand it as a relative URI using the current directory as the base URI.

    - ### Methods inherited from class net.sf.saxon.functions.SystemFunctionCall

      `addContextDocumentArgument, addDocToPathMap, computeCardinality, computeSpecialProperties, equalOrNull, getContextNode, getConvertingCallable, getDefaultArgumentNode, getDetails, getErrorCodeForTypeErrors, getFunctionItemType, getImplementationMethod, getItemType, getOperation, getRequiredType, iterateSubExpressionInfo, makeSystemFunction, optimize, setDetails, useContextItemAsDefault`

    - ### Methods inherited from class net.sf.saxon.expr.FunctionCall

      `addExternalFunctionCallToPathMap, checkArgumentCount, explain, getArguments, getDisplayName, getExpressionName, getFunctionName, getNumberOfArguments, hashCode, iterateSubExpressions, preEvaluate, promote, replaceSubExpression, setArguments, setFunctionName, simplify, simplifyArguments, toString, typeCheck`

    - ### Methods inherited from class net.sf.saxon.expr.Expression

      `addToPathMap, adoptChildExpression, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeStaticProperties, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluatePendingUpdates, explain, getCardinality, getColumnNumber, getColumnNumber, getConstructType, getContainer, getDependencies, getEvaluationMethod, getExecutable, getExpressionCompiler, getHostLanguage, getIntegerBounds, getIntrinsicDependencies, getLineNumber, getLineNumber, getLocationId, getLocationProvider, getObjectName, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getStreamability, getStreamingAdjunct, getSystemId, getSystemId, hasVariableBinding, implementsStaticTypeCheck, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, iterate, iterateEvents, markTailFunctionCalls, process, resetLocalStaticProperties, setContainer, setEvaluationMethod, setFiltered, setFlattened, setLocationId, staticTypeCheck, suppressValidation, toPattern, toStreamingPattern, typeError`

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

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### ResolveURI

          public ResolveURI()

  - ### Method Detail

    - #### bindStaticContext

          public void bindStaticContext(StaticContext env)
                                 throws XPathException

      Description copied from class: `SystemFunctionCall`
      Bind aspects of the static context on which the particular function depends
      Overrides:
        `bindStaticContext` in class `SystemFunctionCall`
      Parameters:
        `env` - the static context of the function call
      Throws:
        `XPathException` - if execution with this static context will inevitably fail

    - #### checkArguments

          public void checkArguments(ExpressionVisitor visitor)
                              throws XPathException

      Description copied from class: `SystemFunctionCall`
      Method called during static type checking
      Overrides:
        `checkArguments` in class `SystemFunctionCall`
      Parameters:
        `visitor` - the expression visitor
      Throws:
        `XPathException` - if the arguments are incorrect

    - #### getStaticBaseURI

          public String getStaticBaseURI()

      Get the static base URI of the expression
      Returns:
        the base URI from the static context

    - #### copy

          public Expression copy()

      Copy an expression. This makes a deep copy.
      Overrides:
        `copy` in class `SystemFunctionCall`
      Returns:
        the copy of the original expression

    - #### equals

          public boolean equals(Object o)

      Determine whether two expressions are equivalent
      Overrides:
        `equals` in class `SystemFunctionCall`

    - #### evaluateItem

          public AnyURIValue evaluateItem(XPathContext context)
                                   throws XPathException

      Evaluate the function at run-time
      Overrides:
        `evaluateItem` in class `Expression`
      Parameters:
        `context` - The context in which the expression is to be evaluated
      Returns:
        the node or atomic value that results from evaluating the expression; or null to indicate that the result is an empty sequence
      Throws:
        `XPathException` - if any dynamic error occurs evaluating the expression

    - #### call

          public Sequence call(XPathContext context,
                      Sequence[] arguments)
                        throws XPathException

      Evaluate the expression
      Specified by:
        `call` in interface `Callable`
      Parameters:
        `context` - the dynamic evaluation context
        `arguments` - the values of the arguments, supplied as SequenceIterators
      Returns:
        the result of the evaluation, in the form of a SequenceIterator
      Throws:
        `XPathException` - if a dynamic error occurs during the evaluation of the expression

    - #### tryToExpand

          public static String tryToExpand(String systemId)

      If a system ID can't be parsed as a URL, try to expand it as a relative URI using the current directory as the base URI.
      Parameters:
        `systemId` - the supplied systemId. Null is treated as equivalent to ""
      Returns:
        the systemId itself if it is a valid URL; otherwise the result of resolving the systemId as a relative file name in the current working directory; or if the current working directory is not available (e.g. in an applet) the supplied systemId unchanged (except that null is treated as "").

    - #### makeAbsolute

          public static URI makeAbsolute(String relativeURI,
                         String base)
                                  throws URISyntaxException

      Construct an absolute URI from a relative URI and a base URI. The method uses the resolve method of the java.net.URI class, except where the base URI uses the (non-standard) "jar:" scheme, in which case the method used is `new URL(baseURL, relativeURL)`.

      Spaces in either URI are converted to %20

      If no base URI is available, and the relative URI is not an absolute URI, then the current directory is used as a base URI.

      Parameters:
        `relativeURI` - the relative URI. Null is permitted provided that the base URI is an absolute URI
        `base` - the base URI. Null is permitted provided that relativeURI is an absolute URI
      Returns:
        the absolutized URI
      Throws:
        `URISyntaxException` - if either of the strings is not a valid URI or if the resolution fails

    - #### escapeSpaces

          public static String escapeSpaces(String s)

      Replace spaces by %20
      Parameters:
        `s` - the input string
      Returns:
        the input string with each space replaced by %20

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.