Class Copy

All Implemented Interfaces:
Serializable, SourceLocator, Container, Expression, TailCallReturner, InstructionInfoProvider

public class Copy extends ElementCreator
Handler for xsl:copy elements in stylesheet.
See Also:
  • Constructor Details

    • Copy

      public Copy(boolean copyNamespaces, boolean inheritNamespaces, SchemaType schemaType, int validation)
  • Method Details

    • simplify

      public Expression simplify(StaticContext env) throws XPathException
      Simplify an expression. This performs any static optimization (by rewriting the expression as a different expression). The default implementation does nothing.
      Specified by:
      simplify in interface Expression
      Overrides:
      simplify in class ParentNodeConstructor
      Parameters:
      env - the static context
      Returns:
      the simplified expression
      Throws:
      XPathException - if an error is discovered during expression rewriting
    • getInstructionNameCode

      public int getInstructionNameCode()
      Get the name of this instruction for diagnostic and tracing purposes
      Overrides:
      getInstructionNameCode in class Instruction
    • getItemType

      public ItemType getItemType(TypeHierarchy th)
      Get the item type of the result of this instruction.
      Specified by:
      getItemType in interface Expression
      Overrides:
      getItemType in class ElementCreator
      Parameters:
      th -
      Returns:
      The context item type.
    • getNameCode

      public int getNameCode(XPathContext context) throws XPathException
      Callback from ElementCreator when constructing an element
      Specified by:
      getNameCode in class ElementCreator
      Parameters:
      context -
      Returns:
      the namecode of the element to be constructed
      Throws:
      XPathException
    • getNewBaseURI

      public String getNewBaseURI(XPathContext context)
      Get the base URI of a copied element node (the base URI is retained in the new copy)
      Specified by:
      getNewBaseURI in class ElementCreator
      Parameters:
      context -
      Returns:
      the base URI
    • outputNamespaceNodes

      protected void outputNamespaceNodes(XPathContext context, Receiver receiver) throws XPathException
      Callback to output namespace nodes for the new element.
      Specified by:
      outputNamespaceNodes in class ElementCreator
      Parameters:
      context - The execution context
      receiver - the Receiver where the namespace nodes are to be written
      Throws:
      XPathException
    • getActiveNamespaces

      public int[] getActiveNamespaces() throws XPathException
      Callback to get a list of the intrinsic namespaces that need to be generated for the element. The result is an array of namespace codes, the codes either occupy the whole array or are terminated by a -1 entry. A result of null is equivalent to a zero-length array.
      Overrides:
      getActiveNamespaces in class ElementCreator
      Throws:
      XPathException
    • processLeavingTail

      public TailCall processLeavingTail(XPathContext context) throws XPathException
      Description copied from class: ElementCreator
      Evaluate the instruction to produce a new element node. This method is typically used when there is a parent element or document in a result tree, to which the new element is added.
      Specified by:
      processLeavingTail in interface TailCallReturner
      Overrides:
      processLeavingTail in class ElementCreator
      Parameters:
      context -
      Returns:
      null (this instruction never returns a tail call)
      Throws:
      XPathException
    • evaluateItem

      public Item evaluateItem(XPathContext context) throws XPathException
      Evaluate as an expression. We rely on the fact that when these instructions are generated by XQuery, there will always be a valueExpression to evaluate the content
      Specified by:
      evaluateItem in interface Expression
      Overrides:
      evaluateItem in class ElementCreator
      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
    • display

      public void display(int level, PrintStream out, Configuration config)
      Diagnostic print of expression structure. The expression is written to the System.err output stream
      Parameters:
      level - indentation level for this expression
      out -
      config -