Class RefSelectorWatch

All Implemented Interfaces:
Watch

public class RefSelectorWatch extends SelectorWatch
This class watches the selector for a keyref constraint
  • Constructor Details

    • 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 Details

    • notifyActualKey

      public void notifyActualKey(AtomicSequence[] keyValue, Location locationId) throws XPathException
      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 - if the value is invalid for example a duplicate
      XPathException
    • close

      public void close() throws XPathException
      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:
      XPathException - May be raised if a dynamic error occurs