com.saxonica.validate
Class RefSelectorWatch

java.lang.Object
  extended by com.saxonica.validate.AbstractWatch
      extended by com.saxonica.validate.SelectorWatch
          extended by com.saxonica.validate.RefSelectorWatch
All Implemented Interfaces:
Watch

public class RefSelectorWatch
extends SelectorWatch

This class watches the selector for a keyref constraint


Constructor Summary
RefSelectorWatch(ConstraintChecker checker, KeyRef constraint)
          Create a watch for values that might satisfy a keyref constraint
 
Method Summary
 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(Value[] 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
 
Methods inherited from interface com.saxonica.stream.watch.Watch
getAnchorNode, getNamespaceResolver, getPipelineConfiguration, getSelection, notifySelectedLeafNode, open, setAnchorNode, setNamespaceResolver, setPipelineConfiguration, setSelection
 

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(Value[] 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-2010 Saxonica Limited. All rights reserved.