## com.saxonica.validate
Class FieldWatch

    java.lang.Object
      com.saxonica.validate.FieldWatch

All Implemented Interfaces:
  Watch

    public class FieldWatch

extends java.lang.Object
implements Watch

A FieldWatch is a class that is looking for nodes that match a field selector within a uniqueness or key constraint.

Constructor Summary
`FieldWatch(SelectorWatch parentWatch, Selection selection, Value[] currentRow, int column)` Create a new FieldWatch

Method Summary
`Receiver` `activate(int locationId, int matchKind)` Signal that an element has been found that matches the selection that this Watch is looking for.
`void` `close()` The close() method is called immediately before the Watch is destroyed, that is, when the element whose declaration scopes the constraint implemented by this Watch goes out of scope.
`void` `deactivate(int locationId)` Signal that the endElement event has occurred for the element whose startElement event caused the Watch to be activated.
`int` `getOriginDepth()` Get the depth within the XML hierarchy of the element whose element declaration contains the unique/key/keyref constraint that this Watch implements
`Selection` `getSelection()` Get the selection (that is, the restricted XPath expression) that defines the the nodes that this Watch is looking for
`void` `setNamespaceResolver(NamespaceResolver resolver)` Set a NamespaceResolver for use by the Watch
`void` `setOriginDepth(int depth)` Set the depth within the XML hierarchy of the element whose element declaration contains the unique/key/keyref constraint that this Watch implements
`void` `setPipelineConfiguration(PipelineConfiguration pipe)` Set the NamePool in use

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### FieldWatch

    public FieldWatch(SelectorWatch parentWatch,
                      Selection selection,
                      Value[] currentRow,
                      int column)

  Create a new FieldWatch

  Parameters:
    `parentWatch` - The SelectorWatch to which field values should be notified
    `selection` - The selection (that is, the restricted XPath expression) used in this field of the constraint
    `currentRow` - represents the selected node whose fields are being evaluated
    `column` - sequence number for this field within the constraint being evaluated

Method Detail

### getSelection

    public Selection getSelection()

  Get the selection (that is, the restricted XPath expression) that defines the the nodes that this Watch is looking for

  Specified by:
    `getSelection` in interface `Watch`
  Returns:
    the selection

### setPipelineConfiguration

    public void setPipelineConfiguration(PipelineConfiguration pipe)

  Set the NamePool in use

  Specified by:
    `setPipelineConfiguration` in interface `Watch`
  Parameters:
    `pipe` - the NamePool in use

### setNamespaceResolver

    public void setNamespaceResolver(NamespaceResolver resolver)

  Set a NamespaceResolver for use by the Watch

  Specified by:
    `setNamespaceResolver` in interface `Watch`
  Parameters:
    `resolver` - the namespace resolver to be used

### getOriginDepth

    public int getOriginDepth()

  Get the depth within the XML hierarchy of the element whose element declaration contains the unique/key/keyref constraint that this Watch implements

  Specified by:
    `getOriginDepth` in interface `Watch`
  Returns:
    The depth at which the watch is scoped

### setOriginDepth

    public void setOriginDepth(int depth)

  Set the depth within the XML hierarchy of the element whose element declaration contains the unique/key/keyref constraint that this Watch implements

  Specified by:
    `setOriginDepth` in interface `Watch`
  Parameters:
    `depth` - The depth at which the watch is scoped

### activate

    public Receiver activate(int locationId,
                             int matchKind)
                      throws ValidationException

  Signal that an element has been found that matches the selection that this Watch is looking for. This method is called by the ConstraintChecker while processing the startElement event that matches the selection. For this purpose, any attributes selected by the last step in the selection are ignored

  Specified by:
    `activate` in interface `Watch`
  Parameters:
    `locationId` - the location of the element
    `matchKind` - indicates whether the match was on an element in its own right, or as parent of a matched attribute, or both
  Returns:
    a Receiver to be notified of all events starting with the startElement event for the matched element, and ending with the endElement event for that element.
  Throws:
    `ValidationException` - May be raised if the constraint implemented by this Watch is violated @param locationId

### deactivate

    public void deactivate(int locationId)
                    throws ValidationException

  Signal that the endElement event has occurred for the element whose startElement event caused the Watch to be activated.

  Specified by:
    `deactivate` in interface `Watch`
  Parameters:
    `locationId` - the location of the element
  Throws:
    `ValidationException` - May be raised if the constraint implemented by this Watch is violated @param locationId

### close

    public void close()

  The close() method is called immediately before the Watch is destroyed, that is, when the element whose declaration scopes the constraint implemented by this Watch goes out of scope.

  Specified by:
    `close` in interface `Watch`

Copyright (c) Saxonica Limited. All rights reserved.