<!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) on Tue May 20 09:50:55 EDT 2008 -->
<TITLE>
Uses of Class org.eclipse.wst.validation.ValidationState
</TITLE>

<META NAME="date" CONTENT="2008-05-20">

<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="Uses of Class org.eclipse.wst.validation.ValidationState";
    }
}
</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="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</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="../../../../../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;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidationState.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="ValidationState.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>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<CENTER>
<H2>
<B>Uses of Class<br>org.eclipse.wst.validation.ValidationState</B></H2>
</CENTER>

<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
Packages that use <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.eclipse.wst.validation"><B>org.eclipse.wst.validation</B></A></TD>
<TD>A framework for calling validators that are build based.&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<P>
<A NAME="org.eclipse.wst.validation"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
Uses of <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A> in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A></FONT></TH>
</TR>
</TABLE>
&nbsp;
<P>

<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/wst/validation/package-summary.html">org.eclipse.wst.validation</A> with parameters of type <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A></FONT></TH>
</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>AbstractValidator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/AbstractValidator.html#clean(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">clean</A></B>(IProject&nbsp;project,
      <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
      IProgressMonitor&nbsp;monitor)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A call back method that lets the validator know that the project is being
 cleaned.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;<A HREF="../../../../../org/eclipse/wst/validation/ValidationResult.html" title="class in org.eclipse.wst.validation">ValidationResult</A></CODE></FONT></TD>
<TD><CODE><B>AbstractValidator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/AbstractValidator.html#validate(IResource, int, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validate</A></B>(IResource&nbsp;resource,
         int&nbsp;kind,
         <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
         IProgressMonitor&nbsp;monitor)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate the resource.</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>Validator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.html#validationFinishing(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validationFinishing</A></B>(IProject&nbsp;project,
                    <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
                    IProgressMonitor&nbsp;monitor)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method will be called when validation is complete.</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>Validator.V2.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.V2.html#validationFinishing(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validationFinishing</A></B>(IProject&nbsp;project,
                    <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
                    IProgressMonitor&nbsp;monitor)</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>AbstractValidator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/AbstractValidator.html#validationFinishing(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validationFinishing</A></B>(IProject&nbsp;project,
                    <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
                    IProgressMonitor&nbsp;monitor)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method will be called when validation is complete.</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>IValidatorGroupListener.</B><B><A HREF="../../../../../org/eclipse/wst/validation/IValidatorGroupListener.html#validationFinishing(IResource, IProgressMonitor, org.eclipse.wst.validation.ValidationState)">validationFinishing</A></B>(IResource&nbsp;resource,
                    IProgressMonitor&nbsp;monitor,
                    <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the validationStarting method was called on the resource, then this
 method will be called after the last validator has processed the
 resource.</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>Validator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.html#validationStarting(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validationStarting</A></B>(IProject&nbsp;project,
                   <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
                   IProgressMonitor&nbsp;monitor)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method will be called before any validation takes place.</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>Validator.V2.</B><B><A HREF="../../../../../org/eclipse/wst/validation/Validator.V2.html#validationStarting(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validationStarting</A></B>(IProject&nbsp;project,
                   <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
                   IProgressMonitor&nbsp;monitor)</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>AbstractValidator.</B><B><A HREF="../../../../../org/eclipse/wst/validation/AbstractValidator.html#validationStarting(IProject, org.eclipse.wst.validation.ValidationState, IProgressMonitor)">validationStarting</A></B>(IProject&nbsp;project,
                   <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state,
                   IProgressMonitor&nbsp;monitor)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method is called before any validation takes place.</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>IValidatorGroupListener.</B><B><A HREF="../../../../../org/eclipse/wst/validation/IValidatorGroupListener.html#validationStarting(IResource, IProgressMonitor, org.eclipse.wst.validation.ValidationState)">validationStarting</A></B>(IResource&nbsp;resource,
                   IProgressMonitor&nbsp;monitor,
                   <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation">ValidationState</A>&nbsp;state)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is called before the first validator in the group that is interested
 in the resource is called.</TD>
</TR>
</TABLE>
&nbsp;
<P>
<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="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/wst/validation/ValidationState.html" title="class in org.eclipse.wst.validation"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</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="../../../../../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;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?org/eclipse/wst/validation/\class-useValidationState.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="ValidationState.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>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>

</BODY>
</HTML>
