blob: 6c5446f97da418ee81b989538210f24af72d62e2 [file] [log] [blame]
<!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:12 EDT 2008 -->
<TITLE>
ServerDelegate
</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="ServerDelegate";
}
}
</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="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/ServerDelegate.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-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="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><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;<A HREF="../../../../../../org/eclipse/wst/server/core/model/ServerBehaviourDelegate.html" title="class in org.eclipse.wst.server.core.model"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../../index.html?org/eclipse/wst/server/core/model/ServerDelegate.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="ServerDelegate.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>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.eclipse.wst.server.core.model</FONT>
<BR>
Class ServerDelegate</H2>
<PRE>
java.lang.Object
<IMG SRC="../../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.wst.server.core.model.ServerDelegate</B>
</PRE>
<HR>
<DL>
<DT><PRE>public abstract class <B>ServerDelegate</B><DT>extends java.lang.Object</DL>
</PRE>
<P>
A server delegate provides the implementation for various
generic and server-type-specific operations for a specific type of server.
A server delegate is specified by the
<code>class</code> attribute of a <code>serverTypes</code> extension.
<p>
When the server instance needs to be given a delegate, the delegate class
specified for the server type is instantiated with a 0-argument constructor
and primed with <code>delegate.initialize(((IServerState)server)</code>,
which it is expected to hang on to. Later, when
<code>delegate.dispose()</code> is called as the server instance is
being discarded, the delegate is expected to let go of the server instance.
</p>
<p>
ServerDelegate supports an open-ended set of attribute-value pairs. All
state stored in this manner will be saved when the server working copy is
saved, and persisted across workbench sessions.
Server delegates may keep state in instance fields, but that state is
transient and will not be persisted across workbench sessions. To save
state across workbench sessions, it must be persisted using the
attributes.
</p>
<p>
This abstract class is intended to be extended only by clients
to extend the <code>serverTypes</code> extension point.
</p>
<P>
<P>
<DL>
<DT><B>Since:</B></DT>
<DD>1.0</DD>
<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/server/core/IServer.html" title="interface in org.eclipse.wst.server.core"><CODE>IServer</CODE></A>,
<A HREF="../../../../../../org/eclipse/wst/server/core/IServerWorkingCopy.html" title="interface in org.eclipse.wst.server.core"><CODE>IServerWorkingCopy</CODE></A></DL>
<HR>
<P>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/server/core/model/ServerDelegate.html#ServerDelegate()">ServerDelegate</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delegates must have a public 0-arg constructor.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;IStatus</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/server/core/model/ServerDelegate.html#canModifyModules(org.eclipse.wst.server.core.IModule[], org.eclipse.wst.server.core.IModule[])">canModifyModules</A></B>(<A HREF="../../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&nbsp;add,
<A HREF="../../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&nbsp;remove)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether the specified module modifications could be made to this
server at this time.</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><A HREF="../../../../../../org/eclipse/wst/server/core/model/ServerDelegate.html#configurationChanged()">configurationChanged</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method is called whenever the server configuration folder has changed.</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><A HREF="../../../../../../org/eclipse/wst/server/core/model/ServerDelegate.html#dispose()">dispose</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Disposes of this server delegate.</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/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/server/core/model/ServerDelegate.html#getChildModules(org.eclipse.wst.server.core.IModule[])">getChildModules</A></B>(<A HREF="../../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&nbsp;module)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the child module(s) of this module.</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/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/server/core/model/ServerDelegate.html#getRootModules(org.eclipse.wst.server.core.IModule)">getRootModules</A></B>(<A HREF="../../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>&nbsp;module)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the parent module(s) of this module.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/server/core/IServer.html" title="interface in org.eclipse.wst.server.core">IServer</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/server/core/model/ServerDelegate.html#getServer()">getServer</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the server that this server delegate corresponds to.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/server/core/ServerPort.html" title="class in org.eclipse.wst.server.core">ServerPort</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/server/core/model/ServerDelegate.html#getServerPorts()">getServerPorts</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array of ServerPorts that this server has.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/server/core/IServerWorkingCopy.html" title="interface in org.eclipse.wst.server.core">IServerWorkingCopy</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/server/core/model/ServerDelegate.html#getServerWorkingCopy()">getServerWorkingCopy</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the server working copy that this server delegate corresponds to.</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><A HREF="../../../../../../org/eclipse/wst/server/core/model/ServerDelegate.html#importConfiguration(org.eclipse.wst.server.core.IRuntime, IProgressMonitor)">importConfiguration</A></B>(<A HREF="../../../../../../org/eclipse/wst/server/core/IRuntime.html" title="interface in org.eclipse.wst.server.core">IRuntime</A>&nbsp;runtime,
IProgressMonitor&nbsp;monitor)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>should use importRuntimeConfiguration (which can throw a
CoreException) instead</I></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><A HREF="../../../../../../org/eclipse/wst/server/core/model/ServerDelegate.html#importRuntimeConfiguration(org.eclipse.wst.server.core.IRuntime, IProgressMonitor)">importRuntimeConfiguration</A></B>(<A HREF="../../../../../../org/eclipse/wst/server/core/IRuntime.html" title="interface in org.eclipse.wst.server.core">IRuntime</A>&nbsp;runtime,
IProgressMonitor&nbsp;monitor)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method is called to import the server configuration from the given
runtime.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/server/core/model/ServerDelegate.html#modifyModules(org.eclipse.wst.server.core.IModule[], org.eclipse.wst.server.core.IModule[], IProgressMonitor)">modifyModules</A></B>(<A HREF="../../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&nbsp;add,
<A HREF="../../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&nbsp;remove,
IProgressMonitor&nbsp;monitor)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Modifies the list of modules associated with the server.</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><A HREF="../../../../../../org/eclipse/wst/server/core/model/ServerDelegate.html#saveConfiguration(IProgressMonitor)">saveConfiguration</A></B>(IProgressMonitor&nbsp;monitor)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method is called whenever the server configuration should be saved.</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><A HREF="../../../../../../org/eclipse/wst/server/core/model/ServerDelegate.html#setDefaults(IProgressMonitor)">setDefaults</A></B>(IProgressMonitor&nbsp;monitor)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Initializes this server with default values.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="ServerDelegate()"><!-- --></A><H3>
ServerDelegate</H3>
<PRE>
public <B>ServerDelegate</B>()</PRE>
<DL>
<DD>Delegates must have a public 0-arg constructor.
<P>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="getServer()"><!-- --></A><H3>
getServer</H3>
<PRE>
public final <A HREF="../../../../../../org/eclipse/wst/server/core/IServer.html" title="interface in org.eclipse.wst.server.core">IServer</A> <B>getServer</B>()</PRE>
<DL>
<DD>Returns the server that this server delegate corresponds to.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>the server</DL>
</DD>
</DL>
<HR>
<A NAME="getServerWorkingCopy()"><!-- --></A><H3>
getServerWorkingCopy</H3>
<PRE>
public final <A HREF="../../../../../../org/eclipse/wst/server/core/IServerWorkingCopy.html" title="interface in org.eclipse.wst.server.core">IServerWorkingCopy</A> <B>getServerWorkingCopy</B>()</PRE>
<DL>
<DD>Returns the server working copy that this server delegate corresponds to.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>the server</DL>
</DD>
</DL>
<HR>
<A NAME="dispose()"><!-- --></A><H3>
dispose</H3>
<PRE>
public void <B>dispose</B>()</PRE>
<DL>
<DD>Disposes of this server delegate.
<p>
This method is called by the web server core framework.
Clients should never call this method.
</p>
<p>
Implementations are expected to let go of the delegate's reference
to the server, deregister listeners, etc.
</p>
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="canModifyModules(org.eclipse.wst.server.core.IModule[], org.eclipse.wst.server.core.IModule[])"><!-- --></A><H3>
canModifyModules</H3>
<PRE>
public abstract IStatus <B>canModifyModules</B>(<A HREF="../../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&nbsp;add,
<A HREF="../../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&nbsp;remove)</PRE>
<DL>
<DD>Returns whether the specified module modifications could be made to this
server at this time. See the specification of
<A HREF="../../../../../../org/eclipse/wst/server/core/IServerAttributes.html#canModifyModules(org.eclipse.wst.server.core.IModule[], org.eclipse.wst.server.core.IModule[], IProgressMonitor)"><CODE>IServerAttributes.canModifyModules(IModule[], IModule[], IProgressMonitor)</CODE></A>
for further details.
<p>
This method is called by the web server core framework in response to
a call to <code>IServer.canModifyModules</code>. It should return quickly
without connection to the server. Clients should never call this method.
</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>add</CODE> - a possibly-empty list of modules to add<DD><CODE>remove</CODE> - a possibly-empty list of modules to remove
<DT><B>Returns:</B><DD>a status object with code <code>IStatus.OK</code> if the modules
can be modified, otherwise a status object indicating why they can't<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/server/core/IServerAttributes.html#canModifyModules(org.eclipse.wst.server.core.IModule[], org.eclipse.wst.server.core.IModule[], IProgressMonitor)"><CODE>IServerAttributes.canModifyModules(IModule[], IModule[], IProgressMonitor)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getChildModules(org.eclipse.wst.server.core.IModule[])"><!-- --></A><H3>
getChildModules</H3>
<PRE>
public abstract <A HREF="../../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[] <B>getChildModules</B>(<A HREF="../../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&nbsp;module)</PRE>
<DL>
<DD>Returns the child module(s) of this module. If this module contains other
modules, it should list those modules. If not, it should return an empty
list.
<p>This method should only return the direct children. To obtain the full
tree of modules if they are multiple levels deep, this method may be
recursively called on the children.</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>module</CODE> - a module
<DT><B>Returns:</B><DD>the child modules<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/server/core/IServerAttributes.html#getChildModules(org.eclipse.wst.server.core.IModule[], IProgressMonitor)"><CODE>IServerAttributes.getChildModules(IModule[], IProgressMonitor)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getRootModules(org.eclipse.wst.server.core.IModule)"><!-- --></A><H3>
getRootModules</H3>
<PRE>
public abstract <A HREF="../../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[] <B>getRootModules</B>(<A HREF="../../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>&nbsp;module)
throws CoreException</PRE>
<DL>
<DD>Returns the parent module(s) of this module. When determining if a given
project can run on a server, this method will be used to find the actual
module(s) that may be run on the server. For instance, a Web module may
return a list of EAR modules that it is contained in if the server only
supports configuring EAR modules. If the server supports running a module
directly, the returned array should contain the module.
<p>If the module type is not supported, this method will return null or
an empty array. If the type is normally supported but there is a
configuration problem or missing parent, etc., this method will fire a
CoreException that may then be presented to the user.</p>
<p>If it does return valid parent(s), this method will always return
the topmost parent module(s), even if there are a few levels
(a heirarchy) of modules.</p>
[issue: should the parameter be IModule[]?]
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>module</CODE> - a module
<DT><B>Returns:</B><DD>an array of possible root modules
<DT><B>Throws:</B>
<DD><CODE>CoreException</CODE> - if anything went wrong<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/server/core/IServerAttributes.html#getRootModules(org.eclipse.wst.server.core.IModule, IProgressMonitor)"><CODE>IServerAttributes.getRootModules(IModule, IProgressMonitor)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getServerPorts()"><!-- --></A><H3>
getServerPorts</H3>
<PRE>
public <A HREF="../../../../../../org/eclipse/wst/server/core/ServerPort.html" title="class in org.eclipse.wst.server.core">ServerPort</A>[] <B>getServerPorts</B>()</PRE>
<DL>
<DD>Returns an array of ServerPorts that this server has.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>the server's ports</DL>
</DD>
</DL>
<HR>
<A NAME="setDefaults(IProgressMonitor)"><!-- --></A><H3>
setDefaults</H3>
<PRE>
public void <B>setDefaults</B>(IProgressMonitor&nbsp;monitor)</PRE>
<DL>
<DD>Initializes this server with default values. This method is called when
a new server is created so that the server can be initialized with
meaningful values.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>monitor</CODE> - a progress monitor, or <code>null</code> if progress
reporting and cancellation are not desired</DL>
</DD>
</DL>
<HR>
<A NAME="modifyModules(org.eclipse.wst.server.core.IModule[], org.eclipse.wst.server.core.IModule[], IProgressMonitor)"><!-- --></A><H3>
modifyModules</H3>
<PRE>
public abstract void <B>modifyModules</B>(<A HREF="../../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&nbsp;add,
<A HREF="../../../../../../org/eclipse/wst/server/core/IModule.html" title="interface in org.eclipse.wst.server.core">IModule</A>[]&nbsp;remove,
IProgressMonitor&nbsp;monitor)
throws CoreException</PRE>
<DL>
<DD>Modifies the list of modules associated with the server.
See the specification of
<A HREF="../../../../../../org/eclipse/wst/server/core/IServerWorkingCopy.html#modifyModules(org.eclipse.wst.server.core.IModule[], org.eclipse.wst.server.core.IModule[], IProgressMonitor)"><CODE>IServerWorkingCopy.modifyModules(IModule[], IModule[], IProgressMonitor)</CODE></A>
for further details.
<p>
This method is called by the web server core framework,
in response to a call to <code>IServerWorkingCopy.modifyModules</code>.
Clients should never call this method.
</p>
<p>
This method is called to update the server configuration (if any)
or update the delegates internal state. Note that the actual list
of modules is stored on the server and can be accessed at any time
using server.getModules(). getModules() will not be updated until
after this method successfully returns.
</p>
<p>
This method will not communicate with the server. After saving,
publish() can be used to sync up with the server.
</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>add</CODE> - a possibly-empty list of modules to add<DD><CODE>remove</CODE> - a possibly-empty list of modules to remove<DD><CODE>monitor</CODE> - a progress monitor, or <code>null</code> if progress
reporting and cancellation are not desired
<DT><B>Throws:</B>
<DD><CODE>CoreException</CODE> - if the changes are not allowed or could not
be processed</DL>
</DD>
</DL>
<HR>
<A NAME="importConfiguration(org.eclipse.wst.server.core.IRuntime, IProgressMonitor)"><!-- --></A><H3>
importConfiguration</H3>
<PRE>
public void <B>importConfiguration</B>(<A HREF="../../../../../../org/eclipse/wst/server/core/IRuntime.html" title="interface in org.eclipse.wst.server.core">IRuntime</A>&nbsp;runtime,
IProgressMonitor&nbsp;monitor)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<I>should use importRuntimeConfiguration (which can throw a
CoreException) instead</I>
<P>
<DD>This method is called to import the server configuration from the given
runtime.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>runtime</CODE> - a server runtime<DD><CODE>monitor</CODE> - a progress monitor, or <code>null</code> if progress
reporting and cancellation are not desired</DL>
</DD>
</DL>
<HR>
<A NAME="importRuntimeConfiguration(org.eclipse.wst.server.core.IRuntime, IProgressMonitor)"><!-- --></A><H3>
importRuntimeConfiguration</H3>
<PRE>
public void <B>importRuntimeConfiguration</B>(<A HREF="../../../../../../org/eclipse/wst/server/core/IRuntime.html" title="interface in org.eclipse.wst.server.core">IRuntime</A>&nbsp;runtime,
IProgressMonitor&nbsp;monitor)
throws CoreException</PRE>
<DL>
<DD>This method is called to import the server configuration from the given
runtime.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>runtime</CODE> - a server runtime<DD><CODE>monitor</CODE> - a progress monitor, or <code>null</code> if progress
reporting and cancellation are not desired
<DT><B>Throws:</B>
<DD><CODE>CoreException</CODE> - if there is any problem importing the configuration
from the runtime</DL>
</DD>
</DL>
<HR>
<A NAME="saveConfiguration(IProgressMonitor)"><!-- --></A><H3>
saveConfiguration</H3>
<PRE>
public void <B>saveConfiguration</B>(IProgressMonitor&nbsp;monitor)
throws CoreException</PRE>
<DL>
<DD>This method is called whenever the server configuration should be saved.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>monitor</CODE> - a progress monitor, or <code>null</code> if progress
reporting and cancellation are not desired
<DT><B>Throws:</B>
<DD><CODE>CoreException</CODE> - if there was a problem saving</DL>
</DD>
</DL>
<HR>
<A NAME="configurationChanged()"><!-- --></A><H3>
configurationChanged</H3>
<PRE>
public void <B>configurationChanged</B>()</PRE>
<DL>
<DD>This method is called whenever the server configuration folder has changed.
It gives the server a chance to throw out any old data and be ready to
reload the server configuration when it is needed next.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<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="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/ServerDelegate.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-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="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><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;<A HREF="../../../../../../org/eclipse/wst/server/core/model/ServerBehaviourDelegate.html" title="class in org.eclipse.wst.server.core.model"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../../index.html?org/eclipse/wst/server/core/model/ServerDelegate.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="ServerDelegate.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>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
</BODY>
</HTML>