cgl.narada.matching.xpath
Class XPathMatching

java.lang.Object
  extended by cgl.narada.matching.xpath.XPathMatching
All Implemented Interfaces:
XPathMatchingDebugFlags, XPathMatchingTree

public class XPathMatching
extends Object
implements XPathMatchingTree, XPathMatchingDebugFlags

This class implements the XPATH matching algorithm. This provides methods to add a subscription and also to remove interest in a subscription predicate. The matching algorithm should also be able to compute destinations.


Field Summary
 
Fields inherited from interface cgl.narada.matching.xpath.XPathMatchingDebugFlags
ClientXPathMatching_Debug, XPathMatching_Debug, XPathProfile_Debug
 
Constructor Summary
XPathMatching(int unitLevel, int systemLevel, XPathProfilePropagation xPathPropagate)
          The XPathMatching constructor
 
Method Summary
 void addSubscriptionProfile(XPathProfile profile)
          This method adds a subscription predicate to the matching tree
 boolean documentMatchesXPathQuery(Document document, String xpath)
           
 int getMatchingLevel()
          This method returns the level assocaited with this matching tree.
static void main(String[] args)
           
 int matchEvent(XmlEvent xmlEvent)
          This method return the destinations assocaited with an event that needs to be matched to the matching tree
 void propagateChangesToHigherLevels(XPathProfile xPathProfile, boolean addProfile)
           
 void removeSubscriptionProfile(XPathProfile profile)
          This method removes a subscription predicate to the matching tree
 void setNodeDestination(Destinations destination)
          This method sets the destination address for this node
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

XPathMatching

public XPathMatching(int unitLevel,
                     int systemLevel,
                     XPathProfilePropagation xPathPropagate)
The XPathMatching constructor

Method Detail

getMatchingLevel

public int getMatchingLevel()
This method returns the level assocaited with this matching tree. A node could be a gateway at multiple levels. How it handles destinations at different levels, and propagates destinations at different levels is dicatated by the level of the matching tree which computes the destinations and initiates profile propagation changes.

Returns:
The level of the matching tree.

setNodeDestination

public void setNodeDestination(Destinations destination)
This method sets the destination address for this node

Specified by:
setNodeDestination in interface XPathMatchingTree

addSubscriptionProfile

public void addSubscriptionProfile(XPathProfile profile)
This method adds a subscription predicate to the matching tree

Specified by:
addSubscriptionProfile in interface XPathMatchingTree
Parameters:
profile - The predicate comprising the subscription and the destination assocaited with the subscription.

removeSubscriptionProfile

public void removeSubscriptionProfile(XPathProfile profile)
This method removes a subscription predicate to the matching tree

Specified by:
removeSubscriptionProfile in interface XPathMatchingTree
Parameters:
profile - The predicate comprising the subscription and the destination assocaited with the subscription.

propagateChangesToHigherLevels

public void propagateChangesToHigherLevels(XPathProfile xPathProfile,
                                           boolean addProfile)
Specified by:
propagateChangesToHigherLevels in interface XPathMatchingTree

matchEvent

public int matchEvent(XmlEvent xmlEvent)
This method return the destinations assocaited with an event that needs to be matched to the matching tree

Returns:
The destination as an INT

documentMatchesXPathQuery

public boolean documentMatchesXPathQuery(Document document,
                                         String xpath)

main

public static void main(String[] args)


For comments and suggestions please send e-mail to The NaradaBrokering Project