blob: 2ea09bc9507e08f216e0a82f543f7c568535f00c [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_06) on Fri Jun 05 14:31:19 PDT 2009 -->
<TITLE>
TagMatchingAlgorithm
</TITLE>
<META NAME="date" CONTENT="2009-06-05">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="TagMatchingAlgorithm";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/TagMatchingAlgorithm.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/core/tagmatcher/InvalidExpressionException.html" title="class in org.eclipse.jst.jsf.core.tagmatcher"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/core/tagmatcher/XPathMatchingAlgorithm.html" title="class in org.eclipse.jst.jsf.core.tagmatcher"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../../index.html?org/eclipse/jst/jsf/core/tagmatcher/TagMatchingAlgorithm.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="TagMatchingAlgorithm.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.eclipse.jst.jsf.core.tagmatcher</FONT>
<BR>
Class TagMatchingAlgorithm</H2>
<PRE>
java.lang.Object
<IMG SRC="../../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.jst.jsf.core.tagmatcher.TagMatchingAlgorithm</B>
</PRE>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../../org/eclipse/jst/jsf/core/tagmatcher/XPathMatchingAlgorithm.html" title="class in org.eclipse.jst.jsf.core.tagmatcher">XPathMatchingAlgorithm</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public abstract class <B>TagMatchingAlgorithm</B><DT>extends java.lang.Object</DL>
</PRE>
<P>
An algorithm that can be applied at a particular DOM node. The result
may be expressed as a boolean or a set of matching nodes. The following
are equivalent:
false and empty set
true and non-empty set
Concrete implementations must be idempotent on evaluate():
1) evaluate(node) must always return the same set if called repeatedly on
the same node in the same DOM tree.
2) evaluate must be able to be called on any number of nodes in order and always
produce the same result independent of what was called before and in what order.
<p><b>Provisional API - subject to change</b></p>
<P>
<P>
<HR>
<P>
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/common/sets/AxiomaticSet.html" title="interface in org.eclipse.jst.jsf.common.sets">AxiomaticSet</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/core/tagmatcher/TagMatchingAlgorithm.html#evaluate(org.w3c.dom.Node)">evaluate</A></B>(org.w3c.dom.Node&nbsp;applyTo)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/core/tagmatcher/TagMatchingAlgorithm.html#initialize()">initialize</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called exactly once to initialize any pre-evaluation setup for
the expression set for the algorithm.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="initialize()"><!-- --></A><H3>
initialize</H3>
<PRE>
public final void <B>initialize</B>()</PRE>
<DL>
<DD>Called exactly once to initialize any pre-evaluation setup for
the expression set for the algorithm. This is public to allow
the client control when this initialization occurs in case it is expensive.
evaluate() will call this method automatically if it has never been called
<P>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../../org/eclipse/jst/jsf/core/tagmatcher/InvalidExpressionException.html" title="class in org.eclipse.jst.jsf.core.tagmatcher">InvalidExpressionException</A></CODE> - if the underlying algorithm throws an
exception during init
<DD><CODE>java.lang.IllegalStateException</CODE> - if it has already been determined that the
expression is invalid.</DL>
</DD>
</DL>
<HR>
<A NAME="evaluate(org.w3c.dom.Node)"><!-- --></A><H3>
evaluate</H3>
<PRE>
public final <A HREF="../../../../../../org/eclipse/jst/jsf/common/sets/AxiomaticSet.html" title="interface in org.eclipse.jst.jsf.common.sets">AxiomaticSet</A> <B>evaluate</B>(org.w3c.dom.Node&nbsp;applyTo)</PRE>
<DL>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>applyTo</CODE> -
<DT><B>Returns:</B><DD>the set matching the configured expression applied to applyTo
using the algorithm represented by this instance.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../../org/eclipse/jst/jsf/core/tagmatcher/InvalidExpressionException.html" title="class in org.eclipse.jst.jsf.core.tagmatcher">InvalidExpressionException</A></CODE> - of a problem occurs initializing the expression
<DD><CODE><A HREF="../../../../../../org/eclipse/jst/jsf/core/tagmatcher/EvaluationException.html" title="class in org.eclipse.jst.jsf.core.tagmatcher">EvaluationException</A></CODE> - if the internal algorithm throws an exception while
evaluating.
<DD><CODE>java.lang.IllegalStateException</CODE> - if evaluate is called again once InvalidExpressionException
has already been thrown.</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/TagMatchingAlgorithm.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/core/tagmatcher/InvalidExpressionException.html" title="class in org.eclipse.jst.jsf.core.tagmatcher"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/core/tagmatcher/XPathMatchingAlgorithm.html" title="class in org.eclipse.jst.jsf.core.tagmatcher"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../../index.html?org/eclipse/jst/jsf/core/tagmatcher/TagMatchingAlgorithm.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="TagMatchingAlgorithm.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
</BODY>
</HTML>