<!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>
C-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="C-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;<A HREF="index-1.html"><B>PREV LETTER</B></A>&nbsp;
&nbsp;<A HREF="index-3.html"><B>NEXT LETTER</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../index.html?index-filesindex-2.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-2.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="_C_"><!-- --></A><H2>
<B>C</B></H2>
<DL>
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/utils/AnnotationUtils.html#compareFieldNames(org.eclipse.jdt.core.dom.FieldDeclaration, org.eclipse.jdt.core.IField)"><B>compareFieldNames(FieldDeclaration, IField)</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>Compares the <CODE>FieldDeclaration</CODE> and <CODE>IField</CODE>.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/utils/AnnotationUtils.html#compareMethods(org.eclipse.jdt.core.dom.MethodDeclaration, org.eclipse.jdt.core.IMethod)"><B>compareMethods(MethodDeclaration, IMethod)</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>Compares the <CODE>MethodDeclaration</CODE> and <CODE>IMethod</CODE>.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/utils/AnnotationUtils.html#compareMethods(org.eclipse.jdt.core.dom.MethodDeclaration, org.eclipse.jdt.core.dom.MethodDeclaration)"><B>compareMethods(MethodDeclaration, MethodDeclaration)</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>Compares the two <CODE>MethodDeclaration</CODE>.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/utils/AnnotationUtils.html#compareMethods(com.sun.mirror.declaration.MethodDeclaration, com.sun.mirror.declaration.MethodDeclaration)"><B>compareMethods(MethodDeclaration, MethodDeclaration)</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>Compares the two <CODE>MethodDeclaration</CODE>.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/utils/AnnotationUtils.html#compareTypeNames(org.eclipse.jdt.core.dom.AbstractTypeDeclaration, org.eclipse.jdt.core.IType)"><B>compareTypeNames(AbstractTypeDeclaration, IType)</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>Compares the <CODE>AbstractTypeDeclaration</CODE> and <CODE>IType</CODE>.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/utils/AnnotationUtils.html#createAddAnnotationTextEdit(org.eclipse.jdt.core.IJavaElement, org.eclipse.jdt.core.dom.Annotation)"><B>createAddAnnotationTextEdit(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>Creates a <CODE>TextEdit</CODE> object representing the add annotation change to the source code of the java elements compilation unit.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/utils/AnnotationUtils.html#createAddImportTextEdit(org.eclipse.jdt.core.IJavaElement, java.lang.String)"><B>createAddImportTextEdit(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>Creates a <CODE>TextEdit</CODE> object representing the add import change to the source code of the java elements compilation unit.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/utils/AnnotationUtils.html#createAddMemberValuePairTextEdit(org.eclipse.jdt.core.dom.NormalAnnotation, org.eclipse.jdt.core.dom.MemberValuePair)"><B>createAddMemberValuePairTextEdit(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>Creates a <CODE>TextEdit</CODE> object representing the change of adding the <CODE>MemberValuePair</CODE> to the <CODE>NormalAnnotation</CODE>.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html#createArrayMemberValuePair(org.eclipse.jdt.core.dom.AST, java.lang.String, java.lang.Object[])"><B>createArrayMemberValuePair(AST, String, Object[])</B></A> - 
Static method in class org.eclipse.jst.ws.annotations.core.<A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html" title="class in org.eclipse.jst.ws.annotations.core">AnnotationsCore</A>
<DD>Creates a new <CODE>MemberValuePair</CODE> with an <CODE>ArrayInitializer</CODE> value.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html#createArrayValueLiteral(org.eclipse.jdt.core.dom.AST, java.lang.Object[])"><B>createArrayValueLiteral(AST, Object[])</B></A> - 
Static method in class org.eclipse.jst.ws.annotations.core.<A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html" title="class in org.eclipse.jst.ws.annotations.core">AnnotationsCore</A>
<DD>Creates a new <CODE>ArrayInitializer</CODE>.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html#createBooleanLiteral(org.eclipse.jdt.core.dom.AST, boolean)"><B>createBooleanLiteral(AST, boolean)</B></A> - 
Static method in class org.eclipse.jst.ws.annotations.core.<A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html" title="class in org.eclipse.jst.ws.annotations.core">AnnotationsCore</A>
<DD>Creates a new <CODE>BooleanLiteral</CODE>.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html#createBooleanMemberValuePair(org.eclipse.jdt.core.dom.AST, java.lang.String, java.lang.Boolean)"><B>createBooleanMemberValuePair(AST, String, Boolean)</B></A> - 
Static method in class org.eclipse.jst.ws.annotations.core.<A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html" title="class in org.eclipse.jst.ws.annotations.core">AnnotationsCore</A>
<DD>Creates a new <CODE>MemberValuePair</CODE> with a <CODE>BooleanLiteral</CODE> value.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/initialization/AnnotationAttributeInitializer.html#createCompletionProposal(java.lang.String, org.eclipse.jdt.core.dom.Expression)"><B>createCompletionProposal(String, Expression)</B></A> - 
Method in 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/initialization/AnnotationAttributeInitializer.html#createCompletionProposal(java.lang.String, org.eclipse.jdt.core.dom.Expression, org.eclipse.swt.graphics.Image, java.lang.String)"><B>createCompletionProposal(String, Expression, Image, String)</B></A> - 
Method in 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/AnnotationsCore.html#createEnumLiteral(org.eclipse.jdt.core.dom.AST, java.lang.String, java.lang.Object)"><B>createEnumLiteral(AST, String, Object)</B></A> - 
Static method in class org.eclipse.jst.ws.annotations.core.<A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html" title="class in org.eclipse.jst.ws.annotations.core">AnnotationsCore</A>
<DD>Creates a new <CODE>QualifiedName</CODE> to represent an <code>enum</code> literal value.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html#createEnumMemberValuePair(org.eclipse.jdt.core.dom.AST, java.lang.String, java.lang.String, java.lang.Object)"><B>createEnumMemberValuePair(AST, String, String, Object)</B></A> - 
Static method in class org.eclipse.jst.ws.annotations.core.<A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html" title="class in org.eclipse.jst.ws.annotations.core">AnnotationsCore</A>
<DD>Creates a new <CODE>MemberValuePair</CODE> with a <CODE>Name</CODE> value.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html#createMarkerAnnotation(org.eclipse.jdt.core.dom.AST, java.lang.String)"><B>createMarkerAnnotation(AST, String)</B></A> - 
Static method in class org.eclipse.jst.ws.annotations.core.<A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html" title="class in org.eclipse.jst.ws.annotations.core">AnnotationsCore</A>
<DD>Creates a new <CODE>MarkerAnnotation</CODE>.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html#createMemberValuePair(org.eclipse.jdt.core.dom.AST, java.lang.String, org.eclipse.jdt.core.dom.Expression)"><B>createMemberValuePair(AST, String, Expression)</B></A> - 
Static method in class org.eclipse.jst.ws.annotations.core.<A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html" title="class in org.eclipse.jst.ws.annotations.core">AnnotationsCore</A>
<DD>Creates a new <CODE>MemberValuePair</CODE>.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html#createNormalAnnotation(org.eclipse.jdt.core.dom.AST, java.lang.String, java.util.List)"><B>createNormalAnnotation(AST, String, List&lt;MemberValuePair&gt;)</B></A> - 
Static method in class org.eclipse.jst.ws.annotations.core.<A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html" title="class in org.eclipse.jst.ws.annotations.core">AnnotationsCore</A>
<DD>Creates a new <CODE>NormalAnnotation</CODE>.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html#createNumberLiteral(org.eclipse.jdt.core.dom.AST, java.lang.String)"><B>createNumberLiteral(AST, String)</B></A> - 
Static method in class org.eclipse.jst.ws.annotations.core.<A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html" title="class in org.eclipse.jst.ws.annotations.core">AnnotationsCore</A>
<DD>Creates a new <CODE>NumberLiteral</CODE>.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html#createNumberMemberValuePair(org.eclipse.jdt.core.dom.AST, java.lang.String, java.lang.String)"><B>createNumberMemberValuePair(AST, String, String)</B></A> - 
Static method in class org.eclipse.jst.ws.annotations.core.<A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html" title="class in org.eclipse.jst.ws.annotations.core">AnnotationsCore</A>
<DD>Creates a new <CODE>MemberValuePair</CODE> with a <CODE>NumberLiteral</CODE> value.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/utils/AnnotationUtils.html#createRemoveAnnotationTextEdit(org.eclipse.jdt.core.IJavaElement, org.eclipse.jdt.core.dom.Annotation)"><B>createRemoveAnnotationTextEdit(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>Creates a <CODE>TextEdit</CODE> object representing the remove annotation change to the source code of the java elements compilation unit.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/utils/AnnotationUtils.html#createRemoveImportTextEdit(org.eclipse.jdt.core.IJavaElement, java.lang.String)"><B>createRemoveImportTextEdit(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>Creates a <CODE>TextEdit</CODE> object representing the remove import change to the source code of the java elements compilation unit.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/utils/AnnotationUtils.html#createRemoveMemberValuePairTextEdit(org.eclipse.jdt.core.dom.NormalAnnotation, org.eclipse.jdt.core.dom.MemberValuePair)"><B>createRemoveMemberValuePairTextEdit(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>Creates a <CODE>TextEdit</CODE> object representing the change of removing the <CODE>MemberValuePair</CODE> from the <CODE>NormalAnnotation</CODE>.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html#createSingleMemberAnnotation(org.eclipse.jdt.core.dom.AST, java.lang.String, org.eclipse.jdt.core.dom.Expression)"><B>createSingleMemberAnnotation(AST, String, Expression)</B></A> - 
Static method in class org.eclipse.jst.ws.annotations.core.<A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html" title="class in org.eclipse.jst.ws.annotations.core">AnnotationsCore</A>
<DD>Creates a new <CODE>SingleMemberAnnotation</CODE>.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html#createStringLiteral(org.eclipse.jdt.core.dom.AST, java.lang.String)"><B>createStringLiteral(AST, String)</B></A> - 
Static method in class org.eclipse.jst.ws.annotations.core.<A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html" title="class in org.eclipse.jst.ws.annotations.core">AnnotationsCore</A>
<DD>Creates a new <CODE>StringLiteral</CODE>.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html#createStringMemberValuePair(org.eclipse.jdt.core.dom.AST, java.lang.String, java.lang.String)"><B>createStringMemberValuePair(AST, String, String)</B></A> - 
Static method in class org.eclipse.jst.ws.annotations.core.<A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html" title="class in org.eclipse.jst.ws.annotations.core">AnnotationsCore</A>
<DD>Creates a new <CODE>MemberValuePair</CODE> with a <CODE>StringLiteral</CODE> value.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html#createTypeLiteral(org.eclipse.jdt.core.dom.AST, java.lang.Object)"><B>createTypeLiteral(AST, Object)</B></A> - 
Static method in class org.eclipse.jst.ws.annotations.core.<A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html" title="class in org.eclipse.jst.ws.annotations.core">AnnotationsCore</A>
<DD>Creates a new <CODE>TypeLiteral</CODE>.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html#createTypeLiteral(org.eclipse.jdt.core.dom.AST, java.lang.Class)"><B>createTypeLiteral(AST, Class&lt;?&gt;)</B></A> - 
Static method in class org.eclipse.jst.ws.annotations.core.<A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html" title="class in org.eclipse.jst.ws.annotations.core">AnnotationsCore</A>
<DD>Creates a new <CODE>TypeLiteral</CODE>.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html#createTypeLiteral(org.eclipse.jdt.core.dom.AST, java.lang.String)"><B>createTypeLiteral(AST, String)</B></A> - 
Static method in class org.eclipse.jst.ws.annotations.core.<A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html" title="class in org.eclipse.jst.ws.annotations.core">AnnotationsCore</A>
<DD>Creates a new <CODE>TypeLiteral</CODE>
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html#createTypeMemberValuePair(org.eclipse.jdt.core.dom.AST, java.lang.String, java.lang.Object)"><B>createTypeMemberValuePair(AST, String, Object)</B></A> - 
Static method in class org.eclipse.jst.ws.annotations.core.<A HREF="../org/eclipse/jst/ws/annotations/core/AnnotationsCore.html" title="class in org.eclipse.jst.ws.annotations.core">AnnotationsCore</A>
<DD>Creates a new <CODE>MemberValuePair</CODE> with a <CODE>TypeLiteral</CODE> value.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/utils/AnnotationUtils.html#createUpdateMemberValuePairTextEdit(org.eclipse.jdt.core.dom.MemberValuePair, org.eclipse.jdt.core.dom.ASTNode)"><B>createUpdateMemberValuePairTextEdit(MemberValuePair, ASTNode)</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>Creates a <CODE>TextEdit</CODE> object representing the change of updating the <CODE>MemberValuePair</CODE> with the <CODE>ASTNode</CODE> value.
<DT><A HREF="../org/eclipse/jst/ws/annotations/core/utils/AnnotationUtils.html#createUpdateSingleMemberAnnotationTextEdit(org.eclipse.jdt.core.dom.SingleMemberAnnotation, org.eclipse.jdt.core.dom.ASTNode)"><B>createUpdateSingleMemberAnnotationTextEdit(SingleMemberAnnotation, ASTNode)</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>Creates a <CODE>TextEdit</CODE> object representing the change of updating the <CODE>SingleMemberAnnotation</CODE> with the <CODE>ASTNode</CODE> value.
</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;<A HREF="index-1.html"><B>PREV LETTER</B></A>&nbsp;
&nbsp;<A HREF="index-3.html"><B>NEXT LETTER</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../index.html?index-filesindex-2.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-2.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>
