net.sf.saxon.style

## Class UseWhenFilter

- java.lang.Object
- - net.sf.saxon.event.SequenceReceiver
  - - net.sf.saxon.event.ProxyReceiver
    - - net.sf.saxon.style.UseWhenFilter

- All Implemented Interfaces:
    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.

- - ### Field Summary

    - ### Fields inherited from class net.sf.saxon.event.ProxyReceiver

      `nextReceiver`

    - ### Fields inherited from class net.sf.saxon.event.SequenceReceiver

      `pipelineConfiguration, previousAtomic, systemId`

    - ### Fields inherited from interface javax.xml.transform.Result

      `PI_DISABLE_OUTPUT_ESCAPING, PI_ENABLE_OUTPUT_ESCAPING`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `UseWhenFilter(PreparedStylesheet preparedStylesheet, Receiver next)` Create a UseWhenFilter

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `attribute(NodeName attName, SimpleType typeCode, CharSequence value, int locationId, int properties)` Notify an attribute.
    `void` | `characters(CharSequence chars, int locationId, int properties)` Character data
    `void` | `comment(CharSequence chars, int locationId, int properties)` Output a comment
    `XPathException` | `createXPathException(String message, String errorCode, LocationProvider lp, int locationId)`
    `void` | `endElement()` End of element
    `Sequence` | `evaluateStatic(String expression, int locationId)` Evaluate a use-when attribute
    `boolean` | `evaluateUseWhen(String expression, int locationId)` Evaluate a use-when attribute
    `void` | `namespace(NamespaceBinding namespaceBinding, int properties)` Notify a namespace.
    `void` | `open()` Start of document
    `void` | `processingInstruction(String target, CharSequence data, int locationId, int properties)` Processing Instruction
    `void` | `setStartTagBuffer(StartTagBuffer startTag)` Set the start tag buffer
    `void` | `startContent()` Notify the start of the content, that is, the completion of all attributes and namespaces.
    `void` | `startElement(NodeName elemName, SchemaType typeCode, int locationId, int properties)` Notify the start of an element.

    - ### Methods inherited from class net.sf.saxon.event.ProxyReceiver

      `append, close, endDocument, getNamePool, getUnderlyingReceiver, setPipelineConfiguration, setSystemId, setUnderlyingReceiver, setUnparsedEntity, startDocument, usesTypeAnnotations`

    - ### Methods inherited from class net.sf.saxon.event.SequenceReceiver

      `append, getConfiguration, getPipelineConfiguration, getSystemId`

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

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

- - ### Constructor Detail

    - #### UseWhenFilter

          public UseWhenFilter(PreparedStylesheet preparedStylesheet,
                       Receiver next)

      Create a UseWhenFilter
      Parameters:
        `preparedStylesheet` - the containing stylesheet
        `next` - the next receiver in the pipeline

  - ### Method Detail

    - #### setStartTagBuffer

          public void setStartTagBuffer(StartTagBuffer startTag)

      Set the start tag buffer
      Parameters:
        `startTag` - a preceding filter on the pipeline that buffers the attributes of a start tag

    - #### open

          public void open()
                    throws XPathException

      Start of document
      Specified by:
        `open` in interface `Receiver`
      Overrides:
        `open` in class `ProxyReceiver`
      Throws:
        `XPathException` - if an error occurs

    - #### startElement

          public void startElement(NodeName elemName,
                          SchemaType typeCode,
                          int locationId,
                          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.
        `typeCode` - integer code identifying the element's type within the name pool.
        `properties` - bit-significant properties of the element node
        `locationId` - an integer which can be interpreted using a `LocationProvider` to return information such as line number and system ID. If no location information is available, the value zero is supplied.
      Throws:
        `XPathException` - if an error occurs

    - #### createXPathException

          public XPathException createXPathException(String message,
                                            String errorCode,
                                            LocationProvider lp,
                                            int locationId)
                                              throws XPathException

      Throws:
        `XPathException`

    - #### namespace

          public void namespace(NamespaceBinding namespaceBinding,
                       int properties)
                         throws XPathException

      Notify a namespace. Namespaces are notified after the startElement event, and before any children for the element. The namespaces that are reported are only required to include those that are different from the parent element; however, duplicates may be reported. A namespace must not conflict with any namespaces already used for element or attribute names.
      Specified by:
        `namespace` in interface `Receiver`
      Overrides:
        `namespace` in class `ProxyReceiver`
      Parameters:
        `namespaceBinding` - the namespace to be notified
        `properties` - any special properties to be passed on this call
      Throws:
        `IllegalStateException:` - attempt to output a namespace when there is no open element start tag
        `XPathException` - if an error occurs

    - #### attribute

          public void attribute(NodeName attName,
                       SimpleType typeCode,
                       CharSequence value,
                       int locationId,
                       int properties)
                         throws XPathException

      Notify an attribute. Attributes are notified after the startElement event, and before any children. Namespaces and attributes may be intermingled.
      Specified by:
        `attribute` in interface `Receiver`
      Overrides:
        `attribute` in class `ProxyReceiver`
      Parameters:
        `attName` - The name of the attribute, as held in the name pool
        `typeCode` - The type of the attribute, as held in the name pool
        `properties` - Bit significant value. The following bits are defined:
        DISABLE_ESCAPING
      Disable escaping for this attribute
        NO_SPECIAL_CHARACTERS
      Attribute value contains no special characters
        `value` - the string value of the attribute
        `locationId` - an integer which can be interpreted using a `LocationProvider` to return information such as line number and system ID. If no location information is available, the value zero is supplied.
      Throws:
        `IllegalStateException:` - attempt to output an attribute when there is no open element start tag
        `XPathException` - if an error occurs

    - #### startContent

          public void startContent()
                            throws XPathException

      Notify the start of the content, that is, the completion of all attributes and namespaces. Note that the initial receiver of output from XSLT instructions will not receive this event, it has to detect it itself. Note that this event is reported for every element even if it has no attributes, no namespaces, and no content.
      Specified by:
        `startContent` in interface `Receiver`
      Overrides:
        `startContent` in class `ProxyReceiver`
      Throws:
        `XPathException` - if an error occurs

    - #### endElement

          public void endElement()
                          throws XPathException

      End of element
      Specified by:
        `endElement` in interface `Receiver`
      Overrides:
        `endElement` in class `ProxyReceiver`
      Throws:
        `XPathException` - if an error occurs

    - #### characters

          public void characters(CharSequence chars,
                        int locationId,
                        int properties)
                          throws XPathException

      Character data
      Specified by:
        `characters` in interface `Receiver`
      Overrides:
        `characters` in class `ProxyReceiver`
      Parameters:
        `chars` - The characters
        `locationId` - an integer which can be interpreted using a `LocationProvider` to return information such as line number and system ID. If no location information is available, the value zero is supplied.
        `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(String target,
                                   CharSequence data,
                                   int 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` - an integer which can be interpreted using a `LocationProvider` to return information such as line number and system ID. If no location information is available, the value zero is supplied.
        `properties` - Additional information about the PI.

    - #### comment

          public void comment(CharSequence chars,
                     int 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` - an integer which can be interpreted using a `LocationProvider` to return information such as line number and system ID. If no location information is available, the value zero is supplied.
        `properties` - Additional information about the comment.
      Throws:
        `XPathException` - if an error occurs

    - #### evaluateUseWhen

          public boolean evaluateUseWhen(String expression,
                                int locationId)
                                  throws XPathException

      Evaluate a use-when attribute
      Parameters:
        `expression` - the expression to be evaluated
        `locationId` - identifies the location of the expression in case error need to be reported
      Returns:
        the effective boolean value of the result of evaluating the expression
      Throws:
        `XPathException`

    - #### evaluateStatic

          public Sequence evaluateStatic(String expression,
                                int locationId)
                                  throws XPathException

      Evaluate a use-when attribute
      Parameters:
        `expression` - the expression to be evaluated
        `locationId` - identifies the location of the expression in case error need to be reported
      Returns:
        the effective boolean value of the result of evaluating the expression
      Throws:
        `XPathException`

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