<!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_14) on Wed Apr 07 07:46:23 BST 2010 -->
<TITLE>
A-Index
</TITLE>

<META NAME="date" CONTENT="2010-04-07">

<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="A-Index";
    }
}
</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">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-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="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&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 LETTER&nbsp;
&nbsp;<A HREF="index-2.html"><B>NEXT LETTER</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../index.html?index-filesindex-1.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-1.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 ========= -->

<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">J</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">O</A> <A HREF="index-12.html">P</A> <A HREF="index-13.html">R</A> <A HREF="index-14.html">S</A> <A HREF="index-15.html">U</A> <A HREF="index-16.html">V</A> <A HREF="index-17.html">W</A> <HR>
<A NAME="_A_"><!-- --></A><H2>
<B>A</B></H2>
<DL>
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/processor/AbstractAnnotationProcessor.html" title="class in org.eclipse.jst.ws.annotations.core.processor"><B>AbstractAnnotationProcessor</B></A> - Class in <A HREF="../org/eclipse/jst/ws/annotations/core/processor/package-summary.html">org.eclipse.jst.ws.annotations.core.processor</A><DD>Abstract base class for processors contributed to the
 <code>org.eclipse.jst.ws.annotations.core.annotationProcessor</code> extension point.<DT><A HREF="../org/eclipse/jst/ws/annotations/core/processor/AbstractAnnotationProcessor.html#AbstractAnnotationProcessor()"><B>AbstractAnnotationProcessor()</B></A> - 
Constructor for class org.eclipse.jst.ws.annotations.core.processor.<A HREF="../org/eclipse/jst/ws/annotations/core/processor/AbstractAnnotationProcessor.html" title="class in org.eclipse.jst.ws.annotations.core.processor">AbstractAnnotationProcessor</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/utils/AnnotationUtils.html#addAnnotation(org.eclipse.jdt.core.IJavaElement, org.eclipse.jdt.core.dom.Annotation)"><B>addAnnotation(IJavaElement, Annotation)</B></A> - 
Static method in class org.eclipse.jst.ws.annotations.core.utils.<A HREF="../org/eclipse/jst/ws/annotations/core/utils/AnnotationUtils.html" title="class in org.eclipse.jst.ws.annotations.core.utils">AnnotationUtils</A>
<DD>Adds the given <CODE>Annotation</CODE> to the <CODE>IJavaElement</CODE>.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/utils/AnnotationUtils.html#addImport(org.eclipse.jdt.core.IJavaElement, java.lang.String)"><B>addImport(IJavaElement, String)</B></A> - 
Static method in class org.eclipse.jst.ws.annotations.core.utils.<A HREF="../org/eclipse/jst/ws/annotations/core/utils/AnnotationUtils.html" title="class in org.eclipse.jst.ws.annotations.core.utils">AnnotationUtils</A>
<DD>Adds an import to the compilation unit of the given <CODE>IJavaElement</CODE>.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/utils/AnnotationUtils.html#addMemberValuePair(org.eclipse.jdt.core.dom.NormalAnnotation, org.eclipse.jdt.core.dom.MemberValuePair)"><B>addMemberValuePair(NormalAnnotation, MemberValuePair)</B></A> - 
Static method in class org.eclipse.jst.ws.annotations.core.utils.<A HREF="../org/eclipse/jst/ws/annotations/core/utils/AnnotationUtils.html" title="class in org.eclipse.jst.ws.annotations.core.utils">AnnotationUtils</A>
<DD>Adds the <CODE>MemberValuePair</CODE> to the <CODE>NormalAnnotation</CODE>.
<DT><A HREF="../org/eclipse/jst/ws/jaxws/core/utils/JDTUtils.html#addToClasspath(org.eclipse.jdt.core.IJavaProject, org.eclipse.jdt.core.IClasspathEntry)"><B>addToClasspath(IJavaProject, IClasspathEntry)</B></A> - 
Static method in class org.eclipse.jst.ws.jaxws.core.utils.<A HREF="../org/eclipse/jst/ws/jaxws/core/utils/JDTUtils.html" title="class in org.eclipse.jst.ws.jaxws.core.utils">JDTUtils</A>
<DD>Add a <code>IClasspathEntry</code> to a <code>IJavaProject</code>
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/initialization/AnnotationAttributeInitializer.html" title="class in org.eclipse.jst.ws.annotations.core.initialization"><B>AnnotationAttributeInitializer</B></A> - Class in <A HREF="../org/eclipse/jst/ws/annotations/core/initialization/package-summary.html">org.eclipse.jst.ws.annotations.core.initialization</A><DD>Abstract base class for initializers contributed to the
 <code>org.eclipse.jst.ws.annotations.core.annotationInitializer</code> extension point.<DT><A HREF="../org/eclipse/jst/ws/annotations/core/initialization/AnnotationAttributeInitializer.html#AnnotationAttributeInitializer()"><B>AnnotationAttributeInitializer()</B></A> - 
Constructor for class org.eclipse.jst.ws.annotations.core.initialization.<A HREF="../org/eclipse/jst/ws/annotations/core/initialization/AnnotationAttributeInitializer.html" title="class in org.eclipse.jst.ws.annotations.core.initialization">AnnotationAttributeInitializer</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationDefinition.html" title="class in org.eclipse.jst.ws.annotations.core"><B>AnnotationDefinition</B></A> - Class in <A HREF="../org/eclipse/jst/ws/annotations/core/package-summary.html">org.eclipse.jst.ws.annotations.core</A><DD>An <code>AnnotationDefinition</code> is a representation of the information contributed through the
 <code>org.eclipse.jst.ws.annotations.core.annotationDefinition</code>,
 <code>org.eclipse.jst.ws.annotations.core.annotationCategory</code> and
 <code>org.eclipse.jst.ws.annotations.core.annotationInitializer</code> extension points.<DT><A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationDefinition.html#AnnotationDefinition(org.eclipse.core.runtime.IConfigurationElement, java.lang.String)"><B>AnnotationDefinition(IConfigurationElement, String)</B></A> - 
Constructor for class org.eclipse.jst.ws.annotations.core.<A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationDefinition.html" title="class in org.eclipse.jst.ws.annotations.core">AnnotationDefinition</A>
<DD>Constructs an <code>AnnotationDefinition</code> using information from the
 <code>org.eclipse.jst.ws.annotations.core.annotationDefinition</code> extension point and category name.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html" title="class in org.eclipse.jst.ws.annotations.core"><B>AnnotationsCore</B></A> - Class in <A HREF="../org/eclipse/jst/ws/annotations/core/package-summary.html">org.eclipse.jst.ws.annotations.core</A><DD>Utility class for creating annotations and member value pairs.<DT><A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCorePlugin.html" title="class in org.eclipse.jst.ws.annotations.core"><B>AnnotationsCorePlugin</B></A> - Class in <A HREF="../org/eclipse/jst/ws/annotations/core/package-summary.html">org.eclipse.jst.ws.annotations.core</A><DD>
 <strong>Provisional API:</strong> This class/interface is part of an interim API that is still under 
 development and expected to change significantly before reaching stability.<DT><A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCorePlugin.html#AnnotationsCorePlugin()"><B>AnnotationsCorePlugin()</B></A> - 
Constructor for class org.eclipse.jst.ws.annotations.core.<A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCorePlugin.html" title="class in org.eclipse.jst.ws.annotations.core">AnnotationsCorePlugin</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsManager.html" title="class in org.eclipse.jst.ws.annotations.core"><B>AnnotationsManager</B></A> - Class in <A HREF="../org/eclipse/jst/ws/annotations/core/package-summary.html">org.eclipse.jst.ws.annotations.core</A><DD>Manages the annotation categories, definitions, processors and initializers contributed through the
 <code>org.eclipse.jst.ws.annotations.core.annotationDefinition</code>,
 <code>org.eclipse.jst.ws.annotations.core.annotationCategory</code>,
 <code>org.eclipse.jst.ws.annotations.core.annotationInitializer</code> and
 <code>org.eclipse.jst.ws.annotations.core.annotationProcessor</code> extension points.<DT><A HREF="../org/eclipse/jst/ws/annotations/core/utils/AnnotationUtils.html" title="class in org.eclipse.jst.ws.annotations.core.utils"><B>AnnotationUtils</B></A> - Class in <A HREF="../org/eclipse/jst/ws/annotations/core/utils/package-summary.html">org.eclipse.jst.ws.annotations.core.utils</A><DD>Utility class for adding, removing and updating annotations and member value pairs.</DL>
<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">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-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="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&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 LETTER&nbsp;
&nbsp;<A HREF="index-2.html"><B>NEXT LETTER</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../index.html?index-filesindex-1.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-1.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 ======= -->

<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">J</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">O</A> <A HREF="index-12.html">P</A> <A HREF="index-13.html">R</A> <A HREF="index-14.html">S</A> <A HREF="index-15.html">U</A> <A HREF="index-16.html">V</A> <A HREF="index-17.html">W</A> <HR>

</BODY>
</HTML>
