com.saxonica.validate
Class FieldWatch

java.lang.Object
  extended by com.saxonica.validate.FieldWatch
All Implemented Interfaces:
Watch

public class FieldWatch
extends 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.