Class CheckSumFilter

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

    public class CheckSumFilter
    extends ProxyReceiver
    A filter to go on a Receiver pipeline and calculate a checksum of the data passing through the pipeline. Optionally the filter will also check any checksum (represented by a processing instruction with name SIGMA) found in the file.

    The checksum takes account of element, attribute, and text nodes only. The order of attributes within an element makes no difference.

    • Constructor Detail

      • CheckSumFilter

        public CheckSumFilter​(Receiver nextReceiver)
    • Method Detail

      • setCheckExistingChecksum

        public void setCheckExistingChecksum​(boolean check)
        Ask the filter to check any existing checksums found in the file
        Parameters:
        check - true if existing checksums are to be checked
      • append

        public void append​(Item item,
                           Location locationId,
                           int copyNamespaces)
                    throws XPathException
        Append an arbitrary item (node or atomic value) to the output
        Specified by:
        append in interface Receiver
        Overrides:
        append in class ProxyReceiver
        Parameters:
        item - the item to be appended
        locationId - the location of the calling instruction, for diagnostics
        copyNamespaces - if the item is an element node, this indicates whether its namespaces need to be copied. Values are ReceiverOption.ALL_NAMESPACES; the default (0) means
        Throws:
        XPathException - if an error occurs
      • characters

        public void characters​(java.lang.CharSequence 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
      • 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
      • processingInstruction

        public void processingInstruction​(java.lang.String target,
                                          java.lang.CharSequence data,
                                          Location locationId,
                                          int properties)
                                   throws XPathException
        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.
        Throws:
        XPathException - if an error occurs
      • isChecksumFound

        public boolean isChecksumFound()
        Ask whether a checksum has been found
        Returns:
        true if a checksum processing instruction has been found (whether or not the checksum was correct)
      • getChecksum

        public int getChecksum()
        Get the accumulated checksum
        Returns:
        the checksum of the events passed through the filter so far.
      • isChecksumCorrect

        public boolean isChecksumCorrect()
        Ask if a correct checksum has been found in the file
        Returns:
        true if a checksum has been found, if its value matches, and if no significant data has been encountered after the checksum