<!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.5.0) on Tue May 13 15:32:22 EDT 2008 -->
<TITLE>
S-Index
</TITLE>


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

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

</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=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<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;<A HREF="index-12.html"><B>PREV LETTER</B></A>&nbsp;
&nbsp;<A HREF="index-14.html"><B>NEXT LETTER</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../index.html?index-filesindex-13.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-13.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">I</A> <A HREF="index-8.html">L</A> <A HREF="index-9.html">O</A> <A HREF="index-10.html">P</A> <A HREF="index-11.html">Q</A> <A HREF="index-12.html">R</A> <A HREF="index-13.html">S</A> <A HREF="index-14.html">T</A> <A HREF="index-15.html">V</A> <HR>
<A NAME="_S_"><!-- --></A><H2>
<B>S</B></H2>
<DL>
<DT><A HREF="../org/eclipse/wst/ws/service/policy/ServicePolicyActivator.html" title="class in org.eclipse.wst.ws.service.policy"><B>ServicePolicyActivator</B></A> - Class in <A HREF="../org/eclipse/wst/ws/service/policy/package-summary.html">org.eclipse.wst.ws.service.policy</A><DD>The activator class controls the plug-in life cycle<DT><A HREF="../org/eclipse/wst/ws/service/policy/ServicePolicyActivator.html#ServicePolicyActivator()"><B>ServicePolicyActivator()</B></A> - 
Constructor for class org.eclipse.wst.ws.service.policy.<A HREF="../org/eclipse/wst/ws/service/policy/ServicePolicyActivator.html" title="class in org.eclipse.wst.ws.service.policy">ServicePolicyActivator</A>
<DD>The constructor
<DT><A HREF="../org/eclipse/wst/ws/service/policy/ui/ServicePolicyActivatorUI.html" title="class in org.eclipse.wst.ws.service.policy.ui"><B>ServicePolicyActivatorUI</B></A> - Class in <A HREF="../org/eclipse/wst/ws/service/policy/ui/package-summary.html">org.eclipse.wst.ws.service.policy.ui</A><DD>The activator class controls the plug-in life cycle<DT><A HREF="../org/eclipse/wst/ws/service/policy/ui/ServicePolicyActivatorUI.html#ServicePolicyActivatorUI()"><B>ServicePolicyActivatorUI()</B></A> - 
Constructor for class org.eclipse.wst.ws.service.policy.ui.<A HREF="../org/eclipse/wst/ws/service/policy/ui/ServicePolicyActivatorUI.html" title="class in org.eclipse.wst.ws.service.policy.ui">ServicePolicyActivatorUI</A>
<DD>The constructor
<DT><A HREF="../org/eclipse/wst/ws/service/policy/ServicePolicyPlatform.html" title="class in org.eclipse.wst.ws.service.policy"><B>ServicePolicyPlatform</B></A> - Class in <A HREF="../org/eclipse/wst/ws/service/policy/package-summary.html">org.eclipse.wst.ws.service.policy</A><DD>This class is used to access and add service policies to the platform.<DT><A HREF="../org/eclipse/wst/ws/service/policy/ui/ServicePolicyPlatformUI.html" title="class in org.eclipse.wst.ws.service.policy.ui"><B>ServicePolicyPlatformUI</B></A> - Class in <A HREF="../org/eclipse/wst/ws/service/policy/ui/package-summary.html">org.eclipse.wst.ws.service.policy.ui</A><DD>This class is used to get Service policy UI information.<DT><A HREF="../org/eclipse/wst/ws/service/policy/ui/utils/ServiceUtils.html" title="class in org.eclipse.wst.ws.service.policy.ui.utils"><B>ServiceUtils</B></A> - Class in <A HREF="../org/eclipse/wst/ws/service/policy/ui/utils/package-summary.html">org.eclipse.wst.ws.service.policy.ui.utils</A><DD>&nbsp;<DT><A HREF="../org/eclipse/wst/ws/service/policy/ui/utils/ServiceUtils.html#ServiceUtils()"><B>ServiceUtils()</B></A> - 
Constructor for class org.eclipse.wst.ws.service.policy.ui.utils.<A HREF="../org/eclipse/wst/ws/service/policy/ui/utils/ServiceUtils.html" title="class in org.eclipse.wst.ws.service.policy.ui.utils">ServiceUtils</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/ws/service/policy/IDescriptor.html#setContextHelpId(java.lang.String)"><B>setContextHelpId(String)</B></A> - 
Method in interface org.eclipse.wst.ws.service.policy.<A HREF="../org/eclipse/wst/ws/service/policy/IDescriptor.html" title="interface in org.eclipse.wst.ws.service.policy">IDescriptor</A>
<DD>Sets the context help id for this descriptor.
<DT><A HREF="../org/eclipse/wst/ws/service/policy/IPolicyStateEnum.html#setCurrentItem(java.lang.String)"><B>setCurrentItem(String)</B></A> - 
Method in interface org.eclipse.wst.ws.service.policy.<A HREF="../org/eclipse/wst/ws/service/policy/IPolicyStateEnum.html" title="interface in org.eclipse.wst.ws.service.policy">IPolicyStateEnum</A>
<DD>Sets the current enum item.
<DT><A HREF="../org/eclipse/wst/ws/service/policy/IDescriptor.html#setDescription(java.lang.String)"><B>setDescription(String)</B></A> - 
Method in interface org.eclipse.wst.ws.service.policy.<A HREF="../org/eclipse/wst/ws/service/policy/IDescriptor.html" title="interface in org.eclipse.wst.ws.service.policy">IDescriptor</A>
<DD>Sets the description for this descriptor.
<DT><A HREF="../org/eclipse/wst/ws/service/policy/IDescriptor.html#setIconBundleId(java.lang.String)"><B>setIconBundleId(String)</B></A> - 
Method in interface org.eclipse.wst.ws.service.policy.<A HREF="../org/eclipse/wst/ws/service/policy/IDescriptor.html" title="interface in org.eclipse.wst.ws.service.policy">IDescriptor</A>
<DD>Sets the icon bundle id for this descriptor.
<DT><A HREF="../org/eclipse/wst/ws/service/policy/IDescriptor.html#setIconPath(java.lang.String)"><B>setIconPath(String)</B></A> - 
Method in interface org.eclipse.wst.ws.service.policy.<A HREF="../org/eclipse/wst/ws/service/policy/IDescriptor.html" title="interface in org.eclipse.wst.ws.service.policy">IDescriptor</A>
<DD>Sets the icon patch for this descriptor.
<DT><A HREF="../org/eclipse/wst/ws/service/policy/IDescriptor.html#setLongName(java.lang.String)"><B>setLongName(String)</B></A> - 
Method in interface org.eclipse.wst.ws.service.policy.<A HREF="../org/eclipse/wst/ws/service/policy/IDescriptor.html" title="interface in org.eclipse.wst.ws.service.policy">IDescriptor</A>
<DD>Sets the long name for the descriptor.
<DT><A HREF="../org/eclipse/wst/ws/service/policy/IPolicyState.html#setMutable(boolean)"><B>setMutable(boolean)</B></A> - 
Method in interface org.eclipse.wst.ws.service.policy.<A HREF="../org/eclipse/wst/ws/service/policy/IPolicyState.html" title="interface in org.eclipse.wst.ws.service.policy">IPolicyState</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/ws/service/policy/ServicePolicyPlatform.html#setProjectPreferencesEnabled(org.eclipse.core.resources.IProject, boolean)"><B>setProjectPreferencesEnabled(IProject, boolean)</B></A> - 
Method in class org.eclipse.wst.ws.service.policy.<A HREF="../org/eclipse/wst/ws/service/policy/ServicePolicyPlatform.html" title="class in org.eclipse.wst.ws.service.policy">ServicePolicyPlatform</A>
<DD>Sets whether project specific service policy preferences is enabled or not.
<DT><A HREF="../org/eclipse/wst/ws/service/policy/IServicePolicy.html#setRelationships(java.util.List)"><B>setRelationships(List&lt;IPolicyRelationship&gt;)</B></A> - 
Method in interface org.eclipse.wst.ws.service.policy.<A HREF="../org/eclipse/wst/ws/service/policy/IServicePolicy.html" title="interface in org.eclipse.wst.ws.service.policy">IServicePolicy</A>
<DD>Sets the relationships for this service policy.
<DT><A HREF="../org/eclipse/wst/ws/service/policy/IDescriptor.html#setShortName(java.lang.String)"><B>setShortName(String)</B></A> - 
Method in interface org.eclipse.wst.ws.service.policy.<A HREF="../org/eclipse/wst/ws/service/policy/IDescriptor.html" title="interface in org.eclipse.wst.ws.service.policy">IDescriptor</A>
<DD>Sets the short name for the descriptor.
<DT><A HREF="../org/eclipse/wst/ws/service/policy/ui/IPolicyOperation.html#setStateItem(org.eclipse.core.resources.IProject, java.lang.String)"><B>setStateItem(IProject, String)</B></A> - 
Method in interface org.eclipse.wst.ws.service.policy.ui.<A HREF="../org/eclipse/wst/ws/service/policy/ui/IPolicyOperation.html" title="interface in org.eclipse.wst.ws.service.policy.ui">IPolicyOperation</A>
<DD>Sets the current enumeration item for this operation.
<DT><A HREF="../org/eclipse/wst/ws/service/policy/IServicePolicy.html#setStatus(org.eclipse.core.runtime.IStatus)"><B>setStatus(IStatus)</B></A> - 
Method in interface org.eclipse.wst.ws.service.policy.<A HREF="../org/eclipse/wst/ws/service/policy/IServicePolicy.html" title="interface in org.eclipse.wst.ws.service.policy">IServicePolicy</A>
<DD>Sets the status for this service policy.
<DT><A HREF="../org/eclipse/wst/ws/service/policy/ui/utils/ServiceUtils.html#sortList(java.util.List)"><B>sortList(List&lt;IServicePolicy&gt;)</B></A> - 
Static method in class org.eclipse.wst.ws.service.policy.ui.utils.<A HREF="../org/eclipse/wst/ws/service/policy/ui/utils/ServiceUtils.html" title="class in org.eclipse.wst.ws.service.policy.ui.utils">ServiceUtils</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/ws/service/policy/ServicePolicyActivator.html#start(org.osgi.framework.BundleContext)"><B>start(BundleContext)</B></A> - 
Method in class org.eclipse.wst.ws.service.policy.<A HREF="../org/eclipse/wst/ws/service/policy/ServicePolicyActivator.html" title="class in org.eclipse.wst.ws.service.policy">ServicePolicyActivator</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/ws/service/policy/ui/ServicePolicyActivatorUI.html#start(org.osgi.framework.BundleContext)"><B>start(BundleContext)</B></A> - 
Method in class org.eclipse.wst.ws.service.policy.ui.<A HREF="../org/eclipse/wst/ws/service/policy/ui/ServicePolicyActivatorUI.html" title="class in org.eclipse.wst.ws.service.policy.ui">ServicePolicyActivatorUI</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/ws/service/policy/ServicePolicyActivator.html#stop(org.osgi.framework.BundleContext)"><B>stop(BundleContext)</B></A> - 
Method in class org.eclipse.wst.ws.service.policy.<A HREF="../org/eclipse/wst/ws/service/policy/ServicePolicyActivator.html" title="class in org.eclipse.wst.ws.service.policy">ServicePolicyActivator</A>
<DD>&nbsp;
<DT><A HREF="../org/eclipse/wst/ws/service/policy/ui/ServicePolicyActivatorUI.html#stop(org.osgi.framework.BundleContext)"><B>stop(BundleContext)</B></A> - 
Method in class org.eclipse.wst.ws.service.policy.ui.<A HREF="../org/eclipse/wst/ws/service/policy/ui/ServicePolicyActivatorUI.html" title="class in org.eclipse.wst.ws.service.policy.ui">ServicePolicyActivatorUI</A>
<DD>&nbsp;
</DL>
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<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;<A HREF="index-12.html"><B>PREV LETTER</B></A>&nbsp;
&nbsp;<A HREF="index-14.html"><B>NEXT LETTER</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../index.html?index-filesindex-13.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-13.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">L</A> <A HREF="index-9.html">O</A> <A HREF="index-10.html">P</A> <A HREF="index-11.html">Q</A> <A HREF="index-12.html">R</A> <A HREF="index-13.html">S</A> <A HREF="index-14.html">T</A> <A HREF="index-15.html">V</A> <HR>

</BODY>
</HTML>
