Class UseWhenFilter

  • All Implemented Interfaces:
    javax.xml.transform.Result, Receiver

    public class UseWhenFilter
    extends ProxyReceiver
    This is a filter inserted into the input pipeline for processing stylesheet modules, whose task is to evaluate use-when expressions and discard those parts of the stylesheet module for which the use-when attribute evaluates to false.

    Originally, with XSLT 2.0, this class did use-when filtering and very little else. In XSLT 3.0 its role has expanded: it evaluates shadow attributes and static variables, and collects information about package dependencies.

    • Constructor Detail

      • UseWhenFilter

        public UseWhenFilter​(Compilation compilation,
                             Receiver next,
                             NestedIntegerValue precedence)
        Create a UseWhenFilter
        Parameters:
        compilation - the compilation episode
        next - the next receiver in the pipeline
        precedence - the import precedence expressed as a dotted-decimal integer, e.g. 1.4.6
    • Method Detail

      • startElement

        public void startElement​(NodeName elemName,
                                 SchemaType type,
                                 AttributeMap attributes,
                                 NamespaceMap namespaces,
                                 Location location,
                                 int properties)
                          throws XPathException
        Notify the start of an element.
        Specified by:
        startElement in interface Receiver
        Overrides:
        startElement in class ProxyReceiver
        Parameters:
        elemName - the name of the element.
        type - the type annotation of the element.
        attributes - the attributes of this element
        namespaces - the in-scope namespaces of this element: generally this is all the in-scope namespaces, without relying on inheriting namespaces from parent elements
        location - an object providing information about the module, line, and column where the node originated
        properties - bit-significant properties of the element node. If there are no relevant properties, zero is supplied. The definitions of the bits are in class ReceiverOption
        Throws:
        XPathException - if an error occurs
      • characters

        public void characters​(UnicodeString chars,
                               Location locationId,
                               int properties)
                        throws XPathException
        Character data
        Specified by:
        characters in interface Receiver
        Overrides:
        characters in class ProxyReceiver
        Parameters:
        chars - The characters
        locationId - provides information such as line number and system ID.
        properties - Bit significant value. The following bits are defined:
        DISABLE_ESCAPING
        Disable escaping for this text node
        USE_CDATA
        Output as a CDATA section
        Throws:
        XPathException - if an error occurs
      • processingInstruction

        public void processingInstruction​(java.lang.String target,
                                          UnicodeString data,
                                          Location locationId,
                                          int properties)
        Processing Instruction
        Specified by:
        processingInstruction in interface Receiver
        Overrides:
        processingInstruction in class ProxyReceiver
        Parameters:
        target - The PI name. This must be a legal name (it will not be checked).
        data - The data portion of the processing instruction
        locationId - provides information such as line number and system ID.
        properties - Additional information about the PI.
      • comment

        public void comment​(UnicodeString chars,
                            Location locationId,
                            int properties)
                     throws XPathException
        Output a comment
        Specified by:
        comment in interface Receiver
        Overrides:
        comment in class ProxyReceiver
        Parameters:
        chars - The content of the comment
        locationId - provides information such as line number and system ID.
        properties - Additional information about the comment.
        Throws:
        XPathException - if an error occurs
      • evaluateStatic

        public Sequence evaluateStatic​(java.lang.String expression,
                                       Location locationId,
                                       UseWhenStaticContext staticContext)
                                throws XPathException
        Evaluate a static expression (to initialize a static variable)
        Parameters:
        expression - the expression to be evaluated
        locationId - identifies the location of the expression in case error need to be reported
        staticContext - the static context for evaluation of the expression
        Returns:
        the effective boolean value of the result of evaluating the expression
        Throws:
        XPathException - if evaluation of the expression fails