<!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.4.2) on Thu May 05 15:26:36 EDT 2005 -->
<TITLE>
A-Index
</TITLE>


<LINK REL ="stylesheet" TYPE="text/css" HREF="../apistyles.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="A-Index";
}
</SCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">


<!-- ========= 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=3 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="../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="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><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;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" 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 NAME="main"></A>
<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">H</A> <A HREF="index-8.html">I</A> <A HREF="index-9.html">J</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <HR>
<A NAME="_A_"><!-- --></A><H2>
<B>A</B></H2>
<DL>
<DT><A HREF="../org/eclipse/jst/j2ee/applicationclient/componentcore/util/AppClientArtifactEdit.html#ADAPTER_TYPE"><B>ADAPTER_TYPE</B></A> - 
Static variable in class org.eclipse.jst.j2ee.applicationclient.componentcore.util.<A HREF="../org/eclipse/jst/j2ee/applicationclient/componentcore/util/AppClientArtifactEdit.html" title="class in org.eclipse.jst.j2ee.applicationclient.componentcore.util">AppClientArtifactEdit</A>
<DD>
 Identifier used to link AppClientArtifactEdit to a AppClientEditAdapterFactory <CODE>AppClientEditAdapterFactory</CODE> stored in an AdapterManger (@see AdapterManager)
 
<DT><A HREF="../org/eclipse/jst/j2ee/componentcore/util/EARArtifactEdit.html#ADAPTER_TYPE"><B>ADAPTER_TYPE</B></A> - 
Static variable in class org.eclipse.jst.j2ee.componentcore.util.<A HREF="../org/eclipse/jst/j2ee/componentcore/util/EARArtifactEdit.html" title="class in org.eclipse.jst.j2ee.componentcore.util">EARArtifactEdit</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/jst/j2ee/ejb/componentcore/util/EJBArtifactEdit.html#ADAPTER_TYPE"><B>ADAPTER_TYPE</B></A> - 
Static variable in class org.eclipse.jst.j2ee.ejb.componentcore.util.<A HREF="../org/eclipse/jst/j2ee/ejb/componentcore/util/EJBArtifactEdit.html" title="class in org.eclipse.jst.j2ee.ejb.componentcore.util">EJBArtifactEdit</A>
<DD>
 Identifier used to link EJBArtifactEdit to a EJBEditAdapterFactory <CODE>EJBEditAdapterFactory</CODE> stored in an AdapterManger (@see AdapterManager)
 
<DT><A HREF="../org/eclipse/jst/j2ee/jca/modulecore/util/ConnectorArtifactEdit.html#ADAPTER_TYPE"><B>ADAPTER_TYPE</B></A> - 
Static variable in class org.eclipse.jst.j2ee.jca.modulecore.util.<A HREF="../org/eclipse/jst/j2ee/jca/modulecore/util/ConnectorArtifactEdit.html" title="class in org.eclipse.jst.j2ee.jca.modulecore.util">ConnectorArtifactEdit</A>
<DD>
 Identifier used to link ConnectorArtifactEdit to a
 ConnectorEditAdapterFactory <CODE>ConnectorEditAdapterFactory</CODE> stored in
 an AdapterManger (@see AdapterManager)
 
<DT><A HREF="../org/eclipse/jst/j2ee/project/datamodel/properties/IFlexibleJavaProjectCreationDataModelProperties.html#ADD_SERVER_TARGET"><B>ADD_SERVER_TARGET</B></A> - 
Static variable in interface org.eclipse.jst.j2ee.project.datamodel.properties.<A HREF="../org/eclipse/jst/j2ee/project/datamodel/properties/IFlexibleJavaProjectCreationDataModelProperties.html" title="interface in org.eclipse.jst.j2ee.project.datamodel.properties">IFlexibleJavaProjectCreationDataModelProperties</A>
<DD>Optional, type Boolean The default value is <code>Boolean.TRUE</code>.
<DT><A HREF="../org/eclipse/jst/j2ee/datamodel/properties/IJ2EEComponentCreationDataModelProperties.html#ADD_TO_EAR"><B>ADD_TO_EAR</B></A> - 
Static variable in interface org.eclipse.jst.j2ee.datamodel.properties.<A HREF="../org/eclipse/jst/j2ee/datamodel/properties/IJ2EEComponentCreationDataModelProperties.html" title="interface in org.eclipse.jst.j2ee.datamodel.properties">IJ2EEComponentCreationDataModelProperties</A>
<DD>Required, type Boolean, the default value is <code>Boolean.FALSE</code>.
<DT><A HREF="../org/eclipse/jst/j2ee/datamodel/properties/IJ2EEModuleImportDataModelProperties.html#ADD_TO_EAR"><B>ADD_TO_EAR</B></A> - 
Static variable in interface org.eclipse.jst.j2ee.datamodel.properties.<A HREF="../org/eclipse/jst/j2ee/datamodel/properties/IJ2EEModuleImportDataModelProperties.html" title="interface in org.eclipse.jst.j2ee.datamodel.properties">IJ2EEModuleImportDataModelProperties</A>
<DD>Optional, type Boolean.
<DT><A HREF="../org/eclipse/jst/j2ee/datamodel/properties/IJ2EEComponentExportDataModelProperties.html#ARCHIVE_DESTINATION"><B>ARCHIVE_DESTINATION</B></A> - 
Static variable in interface org.eclipse.jst.j2ee.datamodel.properties.<A HREF="../org/eclipse/jst/j2ee/datamodel/properties/IJ2EEComponentExportDataModelProperties.html" title="interface in org.eclipse.jst.j2ee.datamodel.properties">IJ2EEComponentExportDataModelProperties</A>
<DD>Required, type IPath.
<DT><A HREF="../org/eclipse/jst/j2ee/applicationclient/componentcore/util/AppClientArtifactEdit.html" title="class in org.eclipse.jst.j2ee.applicationclient.componentcore.util"><B>AppClientArtifactEdit</B></A> - class org.eclipse.jst.j2ee.applicationclient.componentcore.util.<A HREF="../org/eclipse/jst/j2ee/applicationclient/componentcore/util/AppClientArtifactEdit.html" title="class in org.eclipse.jst.j2ee.applicationclient.componentcore.util">AppClientArtifactEdit</A>.<DD>&nbsp;<DT><A HREF="../org/eclipse/jst/j2ee/applicationclient/componentcore/util/AppClientArtifactEdit.html#AppClientArtifactEdit(ComponentHandle, boolean)"><B>AppClientArtifactEdit(ComponentHandle, boolean)</B></A> - 
Constructor for class org.eclipse.jst.j2ee.applicationclient.componentcore.util.<A HREF="../org/eclipse/jst/j2ee/applicationclient/componentcore/util/AppClientArtifactEdit.html" title="class in org.eclipse.jst.j2ee.applicationclient.componentcore.util">AppClientArtifactEdit</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/jst/j2ee/applicationclient/componentcore/util/AppClientArtifactEdit.html#AppClientArtifactEdit(ArtifactEditModel)"><B>AppClientArtifactEdit(ArtifactEditModel)</B></A> - 
Constructor for class org.eclipse.jst.j2ee.applicationclient.componentcore.util.<A HREF="../org/eclipse/jst/j2ee/applicationclient/componentcore/util/AppClientArtifactEdit.html" title="class in org.eclipse.jst.j2ee.applicationclient.componentcore.util">AppClientArtifactEdit</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/jst/j2ee/applicationclient/componentcore/util/AppClientArtifactEdit.html#AppClientArtifactEdit(ModuleCoreNature, WorkbenchComponent, boolean)"><B>AppClientArtifactEdit(ModuleCoreNature, WorkbenchComponent, boolean)</B></A> - 
Constructor for class org.eclipse.jst.j2ee.applicationclient.componentcore.util.<A HREF="../org/eclipse/jst/j2ee/applicationclient/componentcore/util/AppClientArtifactEdit.html" title="class in org.eclipse.jst.j2ee.applicationclient.componentcore.util">AppClientArtifactEdit</A>
<DD>Note: This method is for internal use only.
</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=3 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="../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="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><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;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" 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">H</A> <A HREF="index-8.html">I</A> <A HREF="index-9.html">J</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <HR>

</BODY>
</HTML>
