com.saxonica.validate

## Class RefSelectorWatch

- java.lang.Object
- - com.saxonica.validate.AbstractWatch
  - - com.saxonica.validate.SelectorWatch
    - - com.saxonica.validate.RefSelectorWatch

- All Implemented Interfaces:
    Watch

      public class RefSelectorWatch
      extends SelectorWatch

  This class watches the selector for a keyref constraint

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `RefSelectorWatch(ConstraintChecker checker, KeyRef constraint)` Create a watch for values that might satisfy a keyref constraint

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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` | `notifyActualKey(AtomicSequence[] keyValue, int locationId)` Notify a value selected by this KeyRef

    - ### Methods inherited from class com.saxonica.validate.SelectorWatch

      `addFieldValue, checkRow, displayRow, endSelectedParentNode, getIdentityConstraint, reportValidationError, reportValidationError, startSelectedParentNode`

    - ### Methods inherited from class com.saxonica.validate.AbstractWatch

      `getAnchorNode, getNamespaceResolver, getPipelineConfiguration, getSelection, notifySelectedLeafNode, open, setAnchorNode, setNamespaceResolver, setPipelineConfiguration, setSelection`

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

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

- - ### Constructor Detail

    - #### RefSelectorWatch

          public RefSelectorWatch(ConstraintChecker checker,
                          KeyRef constraint)

      Create a watch for values that might satisfy a keyref constraint
      Parameters:
        `checker` - the ConstraintChecker that initiated this watch
        `constraint` - the constraint being checked

  - ### Method Detail

    - #### notifyActualKey

          public void notifyActualKey(AtomicSequence[] keyValue,
                             int locationId)
                               throws ValidationException

      Notify a value selected by this KeyRef
      Parameters:
        `keyValue` - an array holding the components (fields) making up the keyref value
        `locationId` - the location of the node containing the keyref values
      Throws:
        `ValidationException`

    - #### close

          public void close()
                     throws ValidationException

      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. This implementation searches the list of all key values encountered looking (a) for key references that reference no corresponding key value (b) for key references that reference more than one corresponding key value (which can happen if the keyref and the key are defined at different levels of hierarchy.
      Specified by:
        `close` in interface `Watch`
      Overrides:
        `close` in class `SelectorWatch`
      Throws:
        `ValidationException`

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