<!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:11 EDT 2008 -->
<TITLE>
IRuntimeType
</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="IRuntimeType";
    }
}
</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/IRuntimeType.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/IRuntimeTargetHandler.html" title="interface in org.eclipse.wst.server.core"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/eclipse/wst/server/core/IRuntimeWorkingCopy.html" title="interface in org.eclipse.wst.server.core"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?org/eclipse/wst/server/core/IRuntimeType.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="IRuntimeType.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;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&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</FONT>
<BR>
Interface IRuntimeType</H2>
<HR>
<DL>
<DT><PRE>public interface <B>IRuntimeType</B></DL>
</PRE>

<P>
Represents a (server) runtime type from which runtime instances can be
 created.
 <p>
 The server core framework supports
 an open-ended set of runtime types, which are contributed via
 the <code>runtimeTypes</code> extension point in the server core
 plug-in. Runtime type objects carry no state (all information is
 read-only and is supplied by the server runtime type declaration).
 The global list of known runtime types is available via
 <A HREF="../../../../../org/eclipse/wst/server/core/ServerCore.html#getRuntimeTypes()"><CODE>ServerCore.getRuntimeTypes()</CODE></A>.
 </p>
 <p>
 This interface is not intended to be implemented by clients.
 </p>
 <p>
 [issue: What value do runtimes add?
 It's main role is for setting up the Java build classpath
 for projects holding modules that must be Java compiled.
 If the notion of module is to transcend the vagaries of particular
 types of server, and, indeed, be published to multiple servers
 simultaneously, then matters of build classpath had better not
 be tied to the particular servers involved.]
 </p>
 <p>
 Two runtime types are identical if and only if they have the same id.
 </p>
<P>

<P>
<DL>
<DT><B>Since:</B></DT>
  <DD>1.0</DD>
</DL>
<HR>

<P>

<!-- ========== 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>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IRuntimeType.html#canCreate()">canCreate</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether this runtime type can be instantiated.</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/IRuntimeWorkingCopy.html" title="interface in org.eclipse.wst.server.core">IRuntimeWorkingCopy</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IRuntimeType.html#createRuntime(java.lang.String, IProgressMonitor)">createRuntime</A></B>(java.lang.String&nbsp;id,
              IProgressMonitor&nbsp;monitor)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a working copy instance of this runtime type.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IRuntimeType.html#getDescription()">getDescription</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the displayable description for this runtime type.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IRuntimeType.html#getId()">getId</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the id of this runtime type.</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/IModuleType.html" title="interface in org.eclipse.wst.server.core">IModuleType</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IRuntimeType.html#getModuleTypes()">getModuleTypes</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array of module types that this runtime type can support.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IRuntimeType.html#getName()">getName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the displayable name for this runtime type.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IRuntimeType.html#getVendor()">getVendor</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the displayable vendor name for this runtime type.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/wst/server/core/IRuntimeType.html#getVersion()">getVersion</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the displayable version name for this runtime type.</TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ 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="getId()"><!-- --></A><H3>
getId</H3>
<PRE>
java.lang.String <B>getId</B>()</PRE>
<DL>
<DD>Returns the id of this runtime type.
 Each known server runtime type has a distinct id. 
 Ids are intended to be used internally as keys; they are not
 intended to be shown to end users.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the runtime type id</DL>
</DD>
</DL>
<HR>

<A NAME="getName()"><!-- --></A><H3>
getName</H3>
<PRE>
java.lang.String <B>getName</B>()</PRE>
<DL>
<DD>Returns the displayable name for this runtime type.
 <p>
 Note that this name is appropriate for the current locale.
 </p>
<P>
<DD><DL>

<DT><B>Returns:</B><DD>a displayable name for this runtime type</DL>
</DD>
</DL>
<HR>

<A NAME="getDescription()"><!-- --></A><H3>
getDescription</H3>
<PRE>
java.lang.String <B>getDescription</B>()</PRE>
<DL>
<DD>Returns the displayable description for this runtime type.
 <p>
 Note that this description is appropriate for the current locale.
 </p>
<P>
<DD><DL>

<DT><B>Returns:</B><DD>a displayable description for this runtime type</DL>
</DD>
</DL>
<HR>

<A NAME="getVendor()"><!-- --></A><H3>
getVendor</H3>
<PRE>
java.lang.String <B>getVendor</B>()</PRE>
<DL>
<DD>Returns the displayable vendor name for this runtime type. If the
 runtime type did not specific a vendor, an empty string is returned.
 <p>
 Note that this description is appropriate for the current locale.
 </p>
<P>
<DD><DL>

<DT><B>Returns:</B><DD>a displayable vendor name for this runtime type</DL>
</DD>
</DL>
<HR>

<A NAME="getVersion()"><!-- --></A><H3>
getVersion</H3>
<PRE>
java.lang.String <B>getVersion</B>()</PRE>
<DL>
<DD>Returns the displayable version name for this runtime type. If the
 runtime type did not specific a vendor, an empty string is returned.
 <p>
 Note that this description is appropriate for the current locale.
 </p>
<P>
<DD><DL>

<DT><B>Returns:</B><DD>a displayable version name for this runtime type</DL>
</DD>
</DL>
<HR>

<A NAME="getModuleTypes()"><!-- --></A><H3>
getModuleTypes</H3>
<PRE>
<A HREF="../../../../../org/eclipse/wst/server/core/IModuleType.html" title="interface in org.eclipse.wst.server.core">IModuleType</A>[] <B>getModuleTypes</B>()</PRE>
<DL>
<DD>Returns an array of module types that this runtime type can support.
 <p>
 A new array is returned on each call, so clients may store or modify the result.
 </p>
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the array of module types <A HREF="../../../../../org/eclipse/wst/server/core/IModuleType.html" title="interface in org.eclipse.wst.server.core"><CODE>IModuleType</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="canCreate()"><!-- --></A><H3>
canCreate</H3>
<PRE>
boolean <B>canCreate</B>()</PRE>
<DL>
<DD>Returns whether this runtime type can be instantiated.
 <p>
 [issue: It's unclear what this method is for.
 The implementation checks whether the "class"
 and "workingCopyClass" attributes (both optional) were specified.
 What would be the point of a runtime type that didn't
 have both of these attributes and could not be "created"?]
 </p>
<P>
<DD><DL>

<DT><B>Returns:</B><DD><code>true</code> if this type of runtime can be
    instantiated, and <code>false</code> if it cannot<DT><B>See Also:</B><DD><A HREF="../../../../../org/eclipse/wst/server/core/IRuntimeType.html#createRuntime(java.lang.String, IProgressMonitor)"><CODE>createRuntime(String, IProgressMonitor)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="createRuntime(java.lang.String, IProgressMonitor)"><!-- --></A><H3>
createRuntime</H3>
<PRE>
<A HREF="../../../../../org/eclipse/wst/server/core/IRuntimeWorkingCopy.html" title="interface in org.eclipse.wst.server.core">IRuntimeWorkingCopy</A> <B>createRuntime</B>(java.lang.String&nbsp;id,
                                  IProgressMonitor&nbsp;monitor)
                                  throws CoreException</PRE>
<DL>
<DD>Creates a working copy instance of this runtime type.
 After setting various properties of the working copy,
 the client should call <A HREF="../../../../../org/eclipse/wst/server/core/IRuntimeWorkingCopy.html#save(boolean, IProgressMonitor)"><CODE>IRuntimeWorkingCopy.save(boolean, IProgressMonitor)</CODE></A>
 to bring the runtime instance into existence.
 <p>
 Default values are set by calling the instance's delegate.
 Clients should assume that the location and other properties are
 not set and must be explicitly set by the client.
 </p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - the id to assign to the runtime instance; the default name is
    used if id is <code>null</code> or an empty string<DD><CODE>monitor</CODE> - a progress monitor, or <code>null</code> if progress
    reporting and cancellation are not desired
<DT><B>Returns:</B><DD>a new runtime working copy with the given id
<DT><B>Throws:</B>
<DD><CODE>CoreException</CODE> - if an exception occurs while creating this runtime
    or setting it's default values</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/IRuntimeType.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/IRuntimeTargetHandler.html" title="interface in org.eclipse.wst.server.core"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/eclipse/wst/server/core/IRuntimeWorkingCopy.html" title="interface in org.eclipse.wst.server.core"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?org/eclipse/wst/server/core/IRuntimeType.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="IRuntimeType.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;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&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>
