Class 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.
  • Constructor Details

    • UseWhenFilter

      public UseWhenFilter(Receiver next)
      Create a UseWhenFilter
      Parameters:
      next - the next receiver in the pipeline
  • Method Details

    • 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.
      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 properties of the element node
      Throws:
      XPathException - if an error occurs
    • 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 -
      properties - any special properties to be passed on this call
      Throws:
      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
      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.
      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
      Throws:
      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