<!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 Wed May 14 15:16:14 EDT 2008 -->
<TITLE>
I-Index
</TITLE>

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

<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="I-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="../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;<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-7.html"><B>PREV LETTER</B></A>&nbsp;
&nbsp;<A HREF="index-9.html"><B>NEXT LETTER</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../index.html?index-filesindex-8.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-8.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">H</A> <A HREF="index-8.html">I</A> <A HREF="index-9.html">J</A> <A HREF="index-10.html">L</A> <A HREF="index-11.html">M</A> <A HREF="index-12.html">N</A> <A HREF="index-13.html">O</A> <A HREF="index-14.html">P</A> <A HREF="index-15.html">R</A> <A HREF="index-16.html">S</A> <A HREF="index-17.html">T</A> <A HREF="index-18.html">U</A> <A HREF="index-19.html">V</A> <A HREF="index-20.html">W</A> <HR>
<A NAME="_I_"><!-- --></A><H2>
<B>I</B></H2>
<DL>
<DT><A HREF="../org/eclipse/jst/server/core/IApplicationClientModule.html" title="interface in org.eclipse.jst.server.core"><B>IApplicationClientModule</B></A> - Interface in <A HREF="../org/eclipse/jst/server/core/package-summary.html">org.eclipse.jst.server.core</A><DD>A J2EE application client module.<DT><A HREF="../org/eclipse/jst/server/core/IConnectorModule.html" title="interface in org.eclipse.jst.server.core"><B>IConnectorModule</B></A> - Interface in <A HREF="../org/eclipse/jst/server/core/package-summary.html">org.eclipse.jst.server.core</A><DD>A J2EE connector module.<DT><A HREF="../org/eclipse/jst/server/core/IEJBModule.html" title="interface in org.eclipse.jst.server.core"><B>IEJBModule</B></A> - Interface in <A HREF="../org/eclipse/jst/server/core/package-summary.html">org.eclipse.jst.server.core</A><DD>A representation of a J2EE EJB module.<DT><A HREF="../org/eclipse/jst/server/core/IEnterpriseApplication.html" title="interface in org.eclipse.jst.server.core"><B>IEnterpriseApplication</B></A> - Interface in <A HREF="../org/eclipse/jst/server/core/package-summary.html">org.eclipse.jst.server.core</A><DD>A representation of a J2EE enterprise application (EAR file).<DT><A HREF="../org/eclipse/jst/server/core/IJ2EEModule.html" title="interface in org.eclipse.jst.server.core"><B>IJ2EEModule</B></A> - Interface in <A HREF="../org/eclipse/jst/server/core/package-summary.html">org.eclipse.jst.server.core</A><DD>A J2EE module that can be deployed to a server.<DT><A HREF="../org/eclipse/jst/server/core/IJavaRuntime.html" title="interface in org.eclipse.jst.server.core"><B>IJavaRuntime</B></A> - Interface in <A HREF="../org/eclipse/jst/server/core/package-summary.html">org.eclipse.jst.server.core</A><DD>An interface for a server that contains a Java runtime.<DT><A HREF="../org/eclipse/jst/server/core/IJavaRuntimeWorkingCopy.html" title="interface in org.eclipse.jst.server.core"><B>IJavaRuntimeWorkingCopy</B></A> - Interface in <A HREF="../org/eclipse/jst/server/core/package-summary.html">org.eclipse.jst.server.core</A><DD>An interface for a server that contains a Java runtime.<DT><A HREF="../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core"><B>IModule</B></A> - Interface in <A HREF="../org/eclipse/wst/server/core/package-summary.html">org.eclipse.wst.server.core</A><DD>A module is a unit of "content" that can be published to a
 server.<DT><A HREF="../org/eclipse/wst/server/core/IModuleArtifact.html" title="interface in org.eclipse.wst.server.core"><B>IModuleArtifact</B></A> - Interface in <A HREF="../org/eclipse/wst/server/core/package-summary.html">org.eclipse.wst.server.core</A><DD>A module artifact is a resource within a module, which can be launched
 on the server.<DT><A HREF="../org/eclipse/wst/server/core/model/IModuleFile.html" title="interface in org.eclipse.wst.server.core.model"><B>IModuleFile</B></A> - Interface in <A HREF="../org/eclipse/wst/server/core/model/package-summary.html">org.eclipse.wst.server.core.model</A><DD>A file within a module.<DT><A HREF="../org/eclipse/wst/server/core/model/IModuleFolder.html" title="interface in org.eclipse.wst.server.core.model"><B>IModuleFolder</B></A> - Interface in <A HREF="../org/eclipse/wst/server/core/model/package-summary.html">org.eclipse.wst.server.core.model</A><DD>A folder within a module.<DT><A HREF="../org/eclipse/wst/server/core/model/IModuleResource.html" title="interface in org.eclipse.wst.server.core.model"><B>IModuleResource</B></A> - Interface in <A HREF="../org/eclipse/wst/server/core/model/package-summary.html">org.eclipse.wst.server.core.model</A><DD>A resource (file or folder) within a module.<DT><A HREF="../org/eclipse/wst/server/core/model/IModuleResourceDelta.html" title="interface in org.eclipse.wst.server.core.model"><B>IModuleResourceDelta</B></A> - Interface in <A HREF="../org/eclipse/wst/server/core/model/package-summary.html">org.eclipse.wst.server.core.model</A><DD>A module resource delta.<DT><A HREF="../org/eclipse/wst/server/core/IModuleType.html" title="interface in org.eclipse.wst.server.core"><B>IModuleType</B></A> - Interface in <A HREF="../org/eclipse/wst/server/core/package-summary.html">org.eclipse.wst.server.core</A><DD>Represents the type of a module.<DT><A HREF="../org/eclipse/wst/server/core/model/ServerDelegate.html#importConfiguration(org.eclipse.wst.server.core.IRuntime, IProgressMonitor)"><B>importConfiguration(IRuntime, IProgressMonitor)</B></A> - 
Method in class org.eclipse.wst.server.core.model.<A HREF="../org/eclipse/wst/server/core/model/ServerDelegate.html" title="class in org.eclipse.wst.server.core.model">ServerDelegate</A>
<DD><B>Deprecated.</B>&nbsp;<I>should use importRuntimeConfiguration (which can throw a
    CoreException) instead</I>
<DT><A HREF="../org/eclipse/wst/server/core/model/ServerDelegate.html#importRuntimeConfiguration(org.eclipse.wst.server.core.IRuntime, IProgressMonitor)"><B>importRuntimeConfiguration(IRuntime, IProgressMonitor)</B></A> - 
Method in class org.eclipse.wst.server.core.model.<A HREF="../org/eclipse/wst/server/core/model/ServerDelegate.html" title="class in org.eclipse.wst.server.core.model">ServerDelegate</A>
<DD>This method is called to import the server configuration from the given
 runtime.
<DT><A HREF="../org/eclipse/wst/server/ui/editor/ServerEditorPart.html#init(IEditorSite, IEditorInput)"><B>init(IEditorSite, IEditorInput)</B></A> - 
Method in class org.eclipse.wst.server.ui.editor.<A HREF="../org/eclipse/wst/server/ui/editor/ServerEditorPart.html" title="class in org.eclipse.wst.server.ui.editor">ServerEditorPart</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/server/ui/editor/ServerEditorSection.html#init(IEditorSite, IEditorInput)"><B>init(IEditorSite, IEditorInput)</B></A> - 
Method in class org.eclipse.wst.server.ui.editor.<A HREF="../org/eclipse/wst/server/ui/editor/ServerEditorSection.html" title="class in org.eclipse.wst.server.ui.editor">ServerEditorSection</A>
<DD>Initialize the section.
<DT><A HREF="../org/eclipse/jst/server/core/RuntimeClasspathProviderDelegate.html#initialize(java.lang.String)"><B>initialize(String)</B></A> - 
Method in class org.eclipse.jst.server.core.<A HREF="../org/eclipse/jst/server/core/RuntimeClasspathProviderDelegate.html" title="class in org.eclipse.jst.server.core">RuntimeClasspathProviderDelegate</A>
<DD>Initializes this classpath provider with its life-long id.
<DT><A HREF="../org/eclipse/wst/server/core/model/ModuleDelegate.html#initialize(org.eclipse.wst.server.core.IModule)"><B>initialize(IModule)</B></A> - 
Method in class org.eclipse.wst.server.core.model.<A HREF="../org/eclipse/wst/server/core/model/ModuleDelegate.html" title="class in org.eclipse.wst.server.core.model">ModuleDelegate</A>
<DD>Initializes this module delegate with its life-long module instance.
<DT><A HREF="../org/eclipse/wst/server/core/model/ModuleDelegate.html#initialize()"><B>initialize()</B></A> - 
Method in class org.eclipse.wst.server.core.model.<A HREF="../org/eclipse/wst/server/core/model/ModuleDelegate.html" title="class in org.eclipse.wst.server.core.model">ModuleDelegate</A>
<DD>Initializes this module delegate.
<DT><A HREF="../org/eclipse/wst/server/core/model/ModuleFactoryDelegate.html#initialize()"><B>initialize()</B></A> - 
Method in class org.eclipse.wst.server.core.model.<A HREF="../org/eclipse/wst/server/core/model/ModuleFactoryDelegate.html" title="class in org.eclipse.wst.server.core.model">ModuleFactoryDelegate</A>
<DD>Initializes this module factory delegate.
<DT><A HREF="../org/eclipse/wst/server/core/model/RuntimeTargetHandlerDelegate.html#initialize(org.eclipse.wst.server.core.IRuntimeTargetHandler)"><B>initialize(IRuntimeTargetHandler)</B></A> - 
Method in class org.eclipse.wst.server.core.model.<A HREF="../org/eclipse/wst/server/core/model/RuntimeTargetHandlerDelegate.html" title="class in org.eclipse.wst.server.core.model">RuntimeTargetHandlerDelegate</A>
<DD><B>Deprecated.</B>&nbsp;Initializes the runtime target handler.
<DT><A HREF="../org/eclipse/wst/server/ui/ServerLaunchConfigurationTab.html#initializeFrom(ILaunchConfiguration)"><B>initializeFrom(ILaunchConfiguration)</B></A> - 
Method in class org.eclipse.wst.server.ui.<A HREF="../org/eclipse/wst/server/ui/ServerLaunchConfigurationTab.html" title="class in org.eclipse.wst.server.ui">ServerLaunchConfigurationTab</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/server/core/model/InternalInitializer.html#initializeModuleFactoryDelegate(org.eclipse.wst.server.core.model.ModuleFactoryDelegate, org.eclipse.wst.server.core.internal.ModuleFactory, IProgressMonitor)"><B>initializeModuleFactoryDelegate(ModuleFactoryDelegate, ModuleFactory, IProgressMonitor)</B></A> - 
Static method in class org.eclipse.wst.server.core.model.<A HREF="../org/eclipse/wst/server/core/model/InternalInitializer.html" title="class in org.eclipse.wst.server.core.model">InternalInitializer</A>
<DD>Internal method - do not call.
<DT><A HREF="../org/eclipse/wst/server/core/model/InternalInitializer.html#initializeRuntimeDelegate(org.eclipse.wst.server.core.model.RuntimeDelegate, org.eclipse.wst.server.core.internal.Runtime, IProgressMonitor)"><B>initializeRuntimeDelegate(RuntimeDelegate, Runtime, IProgressMonitor)</B></A> - 
Static method in class org.eclipse.wst.server.core.model.<A HREF="../org/eclipse/wst/server/core/model/InternalInitializer.html" title="class in org.eclipse.wst.server.core.model">InternalInitializer</A>
<DD>Internal method - do not call.
<DT><A HREF="../org/eclipse/wst/server/core/model/InternalInitializer.html#initializeServerBehaviourDelegate(org.eclipse.wst.server.core.model.ServerBehaviourDelegate, org.eclipse.wst.server.core.internal.Server, IProgressMonitor)"><B>initializeServerBehaviourDelegate(ServerBehaviourDelegate, Server, IProgressMonitor)</B></A> - 
Static method in class org.eclipse.wst.server.core.model.<A HREF="../org/eclipse/wst/server/core/model/InternalInitializer.html" title="class in org.eclipse.wst.server.core.model">InternalInitializer</A>
<DD>Internal method - do not call.
<DT><A HREF="../org/eclipse/wst/server/core/model/InternalInitializer.html#initializeServerDelegate(org.eclipse.wst.server.core.model.ServerDelegate, org.eclipse.wst.server.core.internal.Server, IProgressMonitor)"><B>initializeServerDelegate(ServerDelegate, Server, IProgressMonitor)</B></A> - 
Static method in class org.eclipse.wst.server.core.model.<A HREF="../org/eclipse/wst/server/core/model/InternalInitializer.html" title="class in org.eclipse.wst.server.core.model">InternalInitializer</A>
<DD>Internal method - do not call.
<DT><A HREF="../org/eclipse/wst/server/ui/editor/ServerEditorPart.html#insertSections(Composite, java.lang.String)"><B>insertSections(Composite, String)</B></A> - 
Method in class org.eclipse.wst.server.ui.editor.<A HREF="../org/eclipse/wst/server/ui/editor/ServerEditorPart.html" title="class in org.eclipse.wst.server.ui.editor">ServerEditorPart</A>
<DD>Inserts editor sections into the given composite.
<DT><A HREF="../org/eclipse/wst/server/core/model/InternalInitializer.html" title="class in org.eclipse.wst.server.core.model"><B>InternalInitializer</B></A> - Class in <A HREF="../org/eclipse/wst/server/core/model/package-summary.html">org.eclipse.wst.server.core.model</A><DD>This is an internal utility class that is used by the server framework.<DT><A HREF="../org/eclipse/wst/server/core/model/InternalInitializer.html#InternalInitializer()"><B>InternalInitializer()</B></A> - 
Constructor for class org.eclipse.wst.server.core.model.<A HREF="../org/eclipse/wst/server/core/model/InternalInitializer.html" title="class in org.eclipse.wst.server.core.model">InternalInitializer</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/server/core/IProjectProperties.html" title="interface in org.eclipse.wst.server.core"><B>IProjectProperties</B></A> - Interface in <A HREF="../org/eclipse/wst/server/core/package-summary.html">org.eclipse.wst.server.core</A><DD><B>Deprecated.</B>&nbsp;<I>Project facet support should now be used instead of this API. @see
    org.eclipse.wst.common.project.facet.core.IFacetedProject#getRuntime()</I><DT><A HREF="../org/eclipse/wst/server/core/IPublishListener.html" title="interface in org.eclipse.wst.server.core"><B>IPublishListener</B></A> - Interface in <A HREF="../org/eclipse/wst/server/core/package-summary.html">org.eclipse.wst.server.core</A><DD>A publish listener is used to listen for publishing events from a server.<DT><A HREF="../org/eclipse/wst/server/core/IRuntime.html" title="interface in org.eclipse.wst.server.core"><B>IRuntime</B></A> - Interface in <A HREF="../org/eclipse/wst/server/core/package-summary.html">org.eclipse.wst.server.core</A><DD>Represents a runtime instance.<DT><A HREF="../org/eclipse/wst/server/core/IRuntimeLifecycleListener.html" title="interface in org.eclipse.wst.server.core"><B>IRuntimeLifecycleListener</B></A> - Interface in <A HREF="../org/eclipse/wst/server/core/package-summary.html">org.eclipse.wst.server.core</A><DD>Listener interface for changes to runtimes.<DT><A HREF="../org/eclipse/wst/server/core/IRuntimeTargetHandler.html" title="interface in org.eclipse.wst.server.core"><B>IRuntimeTargetHandler</B></A> - Interface in <A HREF="../org/eclipse/wst/server/core/package-summary.html">org.eclipse.wst.server.core</A><DD><B>Deprecated.</B>&nbsp;<I>use project facets instead of runtime targets</I><DT><A HREF="../org/eclipse/wst/server/core/IRuntimeType.html" title="interface in org.eclipse.wst.server.core"><B>IRuntimeType</B></A> - Interface in <A HREF="../org/eclipse/wst/server/core/package-summary.html">org.eclipse.wst.server.core</A><DD>Represents a (server) runtime type from which runtime instances can be
 created.<DT><A HREF="../org/eclipse/wst/server/core/IRuntimeWorkingCopy.html" title="interface in org.eclipse.wst.server.core"><B>IRuntimeWorkingCopy</B></A> - Interface in <A HREF="../org/eclipse/wst/server/core/package-summary.html">org.eclipse.wst.server.core</A><DD>A working copy runtime object used for formulating changes
 to a runtime instance (<A HREF="../org/eclipse/wst/server/core/IRuntime.html" title="interface in org.eclipse.wst.server.core"><CODE>IRuntime</CODE></A>).<DT><A HREF="../org/eclipse/wst/server/core/ServerPort.html#isAdvanced()"><B>isAdvanced()</B></A> - 
Method in class org.eclipse.wst.server.core.<A HREF="../org/eclipse/wst/server/core/ServerPort.html" title="class in org.eclipse.wst.server.core">ServerPort</A>
<DD>Returns true if this port is an "advanced" port and should not be shown
 to novice users.
<DT><A HREF="../org/eclipse/wst/server/core/ServerCore.html#isAutoPublishing()"><B>isAutoPublishing()</B></A> - 
Static method in class org.eclipse.wst.server.core.<A HREF="../org/eclipse/wst/server/core/ServerCore.html" title="class in org.eclipse.wst.server.core">ServerCore</A>
<DD>Returns <code>true</code> if the preference is set to automatically
 publish when starting servers, or <code>false</code> otherwise
<DT><A HREF="../org/eclipse/jst/server/core/IJ2EEModule.html#isBinary()"><B>isBinary()</B></A> - 
Method in interface org.eclipse.jst.server.core.<A HREF="../org/eclipse/jst/server/core/IJ2EEModule.html" title="interface in org.eclipse.jst.server.core">IJ2EEModule</A>
<DD>Returns true if this is a binary (zipped) module, and
 false if it is expanded.
<DT><A HREF="../org/eclipse/jst/server/core/IUtilityModule.html#isBinary()"><B>isBinary()</B></A> - 
Method in interface org.eclipse.jst.server.core.<A HREF="../org/eclipse/jst/server/core/IUtilityModule.html" title="interface in org.eclipse.jst.server.core">IUtilityModule</A>
<DD>Returns true if this is a binary (zipped) module, and
 false if it is expanded.
<DT><A HREF="../org/eclipse/wst/server/ui/wizard/WizardFragment.html#isComplete()"><B>isComplete()</B></A> - 
Method in class org.eclipse.wst.server.ui.wizard.<A HREF="../org/eclipse/wst/server/ui/wizard/WizardFragment.html" title="class in org.eclipse.wst.server.ui.wizard">WizardFragment</A>
<DD>Returns true if this fragment is complete (can finish).
<DT><A HREF="../org/eclipse/wst/server/core/IRuntimeWorkingCopy.html#isDirty()"><B>isDirty()</B></A> - 
Method in interface org.eclipse.wst.server.core.<A HREF="../org/eclipse/wst/server/core/IRuntimeWorkingCopy.html" title="interface in org.eclipse.wst.server.core">IRuntimeWorkingCopy</A>
<DD>Returns whether this working copy has unsaved changes.
<DT><A HREF="../org/eclipse/wst/server/core/IServerWorkingCopy.html#isDirty()"><B>isDirty()</B></A> - 
Method in interface org.eclipse.wst.server.core.<A HREF="../org/eclipse/wst/server/core/IServerWorkingCopy.html" title="interface in org.eclipse.wst.server.core">IServerWorkingCopy</A>
<DD>Returns whether this working copy has unsaved changes.
<DT><A HREF="../org/eclipse/wst/server/ui/editor/ServerEditorPart.html#isDirty()"><B>isDirty()</B></A> - 
Method in class org.eclipse.wst.server.ui.editor.<A HREF="../org/eclipse/wst/server/ui/editor/ServerEditorPart.html" title="class in org.eclipse.wst.server.ui.editor">ServerEditorPart</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/server/core/IServer.html" title="interface in org.eclipse.wst.server.core"><B>IServer</B></A> - Interface in <A HREF="../org/eclipse/wst/server/core/package-summary.html">org.eclipse.wst.server.core</A><DD>Represents a server instance.<DT><A HREF="../org/eclipse/wst/server/core/IServer.IOperationListener.html" title="interface in org.eclipse.wst.server.core"><B>IServer.IOperationListener</B></A> - Interface in <A HREF="../org/eclipse/wst/server/core/package-summary.html">org.eclipse.wst.server.core</A><DD>An operation listener is used to receive notification back about a
 specific server operation, such as starting or stopping a server.<DT><A HREF="../org/eclipse/wst/server/core/IServerAttributes.html" title="interface in org.eclipse.wst.server.core"><B>IServerAttributes</B></A> - Interface in <A HREF="../org/eclipse/wst/server/core/package-summary.html">org.eclipse.wst.server.core</A><DD>Represents a server instance.<DT><A HREF="../org/eclipse/wst/server/ui/editor/IServerEditorPartInput.html" title="interface in org.eclipse.wst.server.ui.editor"><B>IServerEditorPartInput</B></A> - Interface in <A HREF="../org/eclipse/wst/server/ui/editor/package-summary.html">org.eclipse.wst.server.ui.editor</A><DD>An input into a server part or section editor.<DT><A HREF="../org/eclipse/wst/server/core/IServerLifecycleListener.html" title="interface in org.eclipse.wst.server.core"><B>IServerLifecycleListener</B></A> - Interface in <A HREF="../org/eclipse/wst/server/core/package-summary.html">org.eclipse.wst.server.core</A><DD>Listener interface for changes to servers.<DT><A HREF="../org/eclipse/wst/server/core/IServerListener.html" title="interface in org.eclipse.wst.server.core"><B>IServerListener</B></A> - Interface in <A HREF="../org/eclipse/wst/server/core/package-summary.html">org.eclipse.wst.server.core</A><DD>This interface is used by the server to broadcast a change of state.<DT><A HREF="../org/eclipse/wst/server/ui/IServerModule.html" title="interface in org.eclipse.wst.server.ui"><B>IServerModule</B></A> - Interface in <A HREF="../org/eclipse/wst/server/ui/package-summary.html">org.eclipse.wst.server.ui</A><DD>A helper interface for modules that are deployed to a server, commonly
 used to help actions interact with modules in the Servers view.<DT><A HREF="../org/eclipse/wst/server/core/IServerType.html" title="interface in org.eclipse.wst.server.core"><B>IServerType</B></A> - Interface in <A HREF="../org/eclipse/wst/server/core/package-summary.html">org.eclipse.wst.server.core</A><DD>Represents a server type from which server instances can be created.<DT><A HREF="../org/eclipse/wst/server/core/IServerWorkingCopy.html" title="interface in org.eclipse.wst.server.core"><B>IServerWorkingCopy</B></A> - Interface in <A HREF="../org/eclipse/wst/server/core/package-summary.html">org.eclipse.wst.server.core</A><DD>A working copy server object used for formulating changes
 to a server instance (<A HREF="../org/eclipse/wst/server/core/IServer.html" title="interface in org.eclipse.wst.server.core"><CODE>IServer</CODE></A>).<DT><A HREF="../org/eclipse/wst/server/core/IModule.html#isExternal()"><B>isExternal()</B></A> - 
Method in interface org.eclipse.wst.server.core.<A HREF="../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>
<DD>Returns <code>true</code> if the module is an external (non-workspace) module,
 and <code>false</code> otherwise
<DT><A HREF="../org/eclipse/wst/server/core/util/SocketUtil.html#isLocalhost(java.lang.String)"><B>isLocalhost(String)</B></A> - 
Static method in class org.eclipse.wst.server.core.util.<A HREF="../org/eclipse/wst/server/core/util/SocketUtil.html" title="class in org.eclipse.wst.server.core.util">SocketUtil</A>
<DD>Checks if the given host (name, fully qualified name, or IP address) is
 referring to the local machine.
<DT><A HREF="../org/eclipse/wst/server/core/util/SocketUtil.html#isPortInUse(int, int)"><B>isPortInUse(int, int)</B></A> - 
Static method in class org.eclipse.wst.server.core.util.<A HREF="../org/eclipse/wst/server/core/util/SocketUtil.html" title="class in org.eclipse.wst.server.core.util">SocketUtil</A>
<DD>Checks to see if the given port number is being used.
<DT><A HREF="../org/eclipse/wst/server/core/util/SocketUtil.html#isPortInUse(int)"><B>isPortInUse(int)</B></A> - 
Static method in class org.eclipse.wst.server.core.util.<A HREF="../org/eclipse/wst/server/core/util/SocketUtil.html" title="class in org.eclipse.wst.server.core.util">SocketUtil</A>
<DD>Checks to see if the given port number is being used.
<DT><A HREF="../org/eclipse/wst/server/core/IRuntime.html#isReadOnly()"><B>isReadOnly()</B></A> - 
Method in interface org.eclipse.wst.server.core.<A HREF="../org/eclipse/wst/server/core/IRuntime.html" title="interface in org.eclipse.wst.server.core">IRuntime</A>
<DD>Returns whether this runtime is marked read only.
<DT><A HREF="../org/eclipse/wst/server/core/IServerAttributes.html#isReadOnly()"><B>isReadOnly()</B></A> - 
Method in interface org.eclipse.wst.server.core.<A HREF="../org/eclipse/wst/server/core/IServerAttributes.html" title="interface in org.eclipse.wst.server.core">IServerAttributes</A>
<DD>Returns whether this server is marked read only.
<DT><A HREF="../org/eclipse/wst/server/ui/editor/ServerEditorPart.html#isSaveAsAllowed()"><B>isSaveAsAllowed()</B></A> - 
Method in class org.eclipse.wst.server.ui.editor.<A HREF="../org/eclipse/wst/server/ui/editor/ServerEditorPart.html" title="class in org.eclipse.wst.server.ui.editor">ServerEditorPart</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/server/ui/editor/IServerEditorPartInput.html#isServerReadOnly()"><B>isServerReadOnly()</B></A> - 
Method in interface org.eclipse.wst.server.ui.editor.<A HREF="../org/eclipse/wst/server/ui/editor/IServerEditorPartInput.html" title="interface in org.eclipse.wst.server.ui.editor">IServerEditorPartInput</A>
<DD>Returns true if the server is read-only.
<DT><A HREF="../org/eclipse/wst/server/core/util/ProjectModule.html#isSingleRootStructure()"><B>isSingleRootStructure()</B></A> - 
Method in class org.eclipse.wst.server.core.util.<A HREF="../org/eclipse/wst/server/core/util/ProjectModule.html" title="class in org.eclipse.wst.server.core.util">ProjectModule</A>
<DD>Returns <code>true</code> if this module has a simple structure based on a
 single root folder, and <code>false</code> otherwise.
<DT><A HREF="../org/eclipse/wst/server/core/IRuntime.html#isStub()"><B>isStub()</B></A> - 
Method in interface org.eclipse.wst.server.core.<A HREF="../org/eclipse/wst/server/core/IRuntime.html" title="interface in org.eclipse.wst.server.core">IRuntime</A>
<DD>Returns whether this runtime is a stub (used for compilation only)
 or a full runtime.
<DT><A HREF="../org/eclipse/wst/server/core/ServerUtil.html#isSupportedModule(org.eclipse.wst.server.core.IModuleType[], java.lang.String, java.lang.String)"><B>isSupportedModule(IModuleType[], String, String)</B></A> - 
Static method in class org.eclipse.wst.server.core.<A HREF="../org/eclipse/wst/server/core/ServerUtil.html" title="class in org.eclipse.wst.server.core">ServerUtil</A>
<DD>Returns <code>true</code> if any of the given moduleTypes have the given
 module type id and version id.
<DT><A HREF="../org/eclipse/wst/server/core/ServerUtil.html#isSupportedModule(org.eclipse.wst.server.core.IModuleType[], org.eclipse.wst.server.core.IModuleType)"><B>isSupportedModule(IModuleType[], IModuleType)</B></A> - 
Static method in class org.eclipse.wst.server.core.<A HREF="../org/eclipse/wst/server/core/ServerUtil.html" title="class in org.eclipse.wst.server.core">ServerUtil</A>
<DD>Returns <code>true</code> if any of the given moduleTypes match the given
 module type.
<DT><A HREF="../org/eclipse/wst/server/core/ServerUtil.html#isSupportedModule(org.eclipse.wst.server.core.IModuleType, org.eclipse.wst.server.core.IModuleType)"><B>isSupportedModule(IModuleType, IModuleType)</B></A> - 
Static method in class org.eclipse.wst.server.core.<A HREF="../org/eclipse/wst/server/core/ServerUtil.html" title="class in org.eclipse.wst.server.core">ServerUtil</A>
<DD>Returns true if the two given module types are compatible.
<DT><A HREF="../org/eclipse/wst/server/core/util/IStaticWeb.html" title="interface in org.eclipse.wst.server.core.util"><B>IStaticWeb</B></A> - Interface in <A HREF="../org/eclipse/wst/server/core/util/package-summary.html">org.eclipse.wst.server.core.util</A><DD>A static Web module that could be deployed to Apache or another
 HTTP server.<DT><A HREF="../org/eclipse/jst/server/core/IJavaRuntime.html#isUsingDefaultJRE()"><B>isUsingDefaultJRE()</B></A> - 
Method in interface org.eclipse.jst.server.core.<A HREF="../org/eclipse/jst/server/core/IJavaRuntime.html" title="interface in org.eclipse.jst.server.core">IJavaRuntime</A>
<DD>Returns <code>true</code> if the runtime is using the default JRE.
<DT><A HREF="../org/eclipse/wst/server/ui/ServerLaunchConfigurationTab.html#isValid(ILaunchConfiguration)"><B>isValid(ILaunchConfiguration)</B></A> - 
Method in class org.eclipse.wst.server.ui.<A HREF="../org/eclipse/wst/server/ui/ServerLaunchConfigurationTab.html" title="class in org.eclipse.wst.server.ui">ServerLaunchConfigurationTab</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/server/core/IRuntime.html#isWorkingCopy()"><B>isWorkingCopy()</B></A> - 
Method in interface org.eclipse.wst.server.core.<A HREF="../org/eclipse/wst/server/core/IRuntime.html" title="interface in org.eclipse.wst.server.core">IRuntime</A>
<DD>Returns true if this is a working copy.
<DT><A HREF="../org/eclipse/wst/server/core/IServerAttributes.html#isWorkingCopy()"><B>isWorkingCopy()</B></A> - 
Method in interface org.eclipse.wst.server.core.<A HREF="../org/eclipse/wst/server/core/IServerAttributes.html" title="interface in org.eclipse.wst.server.core">IServerAttributes</A>
<DD>Returns true if this is a working copy.
<DT><A HREF="../org/eclipse/wst/server/core/model/IURLProvider.html" title="interface in org.eclipse.wst.server.core.model"><B>IURLProvider</B></A> - Interface in <A HREF="../org/eclipse/wst/server/core/model/package-summary.html">org.eclipse.wst.server.core.model</A><DD>An interface for a server delegate that can provide URLs for a module published
 to the server.<DT><A HREF="../org/eclipse/jst/server/core/IUtilityModule.html" title="interface in org.eclipse.jst.server.core"><B>IUtilityModule</B></A> - Interface in <A HREF="../org/eclipse/jst/server/core/package-summary.html">org.eclipse.jst.server.core</A><DD>A J2EE utility module that can be deployed to a server.<DT><A HREF="../org/eclipse/jst/server/core/IWebModule.html" title="interface in org.eclipse.jst.server.core"><B>IWebModule</B></A> - Interface in <A HREF="../org/eclipse/jst/server/core/package-summary.html">org.eclipse.jst.server.core</A><DD>A J2EE web module.<DT><A HREF="../org/eclipse/wst/server/ui/wizard/IWizardHandle.html" title="interface in org.eclipse.wst.server.ui.wizard"><B>IWizardHandle</B></A> - Interface in <A HREF="../org/eclipse/wst/server/ui/wizard/package-summary.html">org.eclipse.wst.server.ui.wizard</A><DD>A wizard handle.</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="../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;<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-7.html"><B>PREV LETTER</B></A>&nbsp;
&nbsp;<A HREF="index-9.html"><B>NEXT LETTER</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../index.html?index-filesindex-8.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-8.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">L</A> <A HREF="index-11.html">M</A> <A HREF="index-12.html">N</A> <A HREF="index-13.html">O</A> <A HREF="index-14.html">P</A> <A HREF="index-15.html">R</A> <A HREF="index-16.html">S</A> <A HREF="index-17.html">T</A> <A HREF="index-18.html">U</A> <A HREF="index-19.html">V</A> <A HREF="index-20.html">W</A> <HR>

</BODY>
</HTML>
