blob: f630254f0f42ea809dfcaf7a96367c626880e417 [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.5.0_10) on Wed Apr 30 14:47:12 PDT 2008 -->
<TITLE>
IDelegatingFactory
</TITLE>
<META NAME="keywords" CONTENT="org.eclipse.jst.jsf.context.IDelegatingFactory interface">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
parent.document.title="IDelegatingFactory";
}
</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"> <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/IDelegatingFactory.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="../../../../../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/jst/jsf/context/AbstractDocumentContext.html" title="class in org.eclipse.jst.jsf.context"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/eclipse/jst/jsf/context/IDocumentContext.html" title="interface in org.eclipse.jst.jsf.context"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../index.html?org/eclipse/jst/jsf/context/IDelegatingFactory.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="IDelegatingFactory.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.jst.jsf.context</FONT>
<BR>
Interface IDelegatingFactory</H2>
<DL>
<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../../org/eclipse/jst/jsf/context/AbstractDelegatingFactory.html" title="class in org.eclipse.jst.jsf.context">AbstractDelegatingFactory</A>, <A HREF="../../../../../org/eclipse/jst/jsf/context/structureddocument/AbstractStructuredDocumentContextFactory.html" title="class in org.eclipse.jst.jsf.context.structureddocument">AbstractStructuredDocumentContextFactory</A>, <A HREF="../../../../../org/eclipse/jst/jsf/designtime/resolver/StructuredDocumentSymbolResolverFactory.html" title="class in org.eclipse.jst.jsf.designtime.resolver">StructuredDocumentSymbolResolverFactory</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public interface <B>IDelegatingFactory</B></DL>
</PRE>
<P>
Defines a type of factory that can have delegate factories to help it
create an appropriate instance type. The general contract for implementors
is:
1) You must follow the isValidDelegate contract.
2) You should try to create an instance yourself and only delegate
if cannot do it yourself. Deviations from this rule must be
clearly documented to ensure clients understand how the factory works.
Clients may NOT implement this interface.
Extend AbstractDelegatingFactory instead.
<P>
<P>
<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;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/jst/jsf/context/IDelegatingFactory.html#addFactoryDelegate(IAdaptable)">addFactoryDelegate</A></B>(IAdaptable&nbsp;delegate)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds delgate to the end of the list of factory delegates if the list
does not already contain it.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.List&lt;java.lang.Class&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/eclipse/jst/jsf/context/IDelegatingFactory.html#getValidDelegateTypes()">getValidDelegateTypes</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</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/jst/jsf/context/IDelegatingFactory.html#isValidDelegate(IAdaptable)">isValidDelegate</A></B>(IAdaptable&nbsp;delegate)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The return value of this method should conform to the following contract:
Let v = getValidDelegates.</TD>
</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/jst/jsf/context/IDelegatingFactory.html#removeFactoryDelegate(IAdaptable)">removeFactoryDelegate</A></B>(IAdaptable&nbsp;delegate)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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="addFactoryDelegate(IAdaptable)"><!-- --></A><H3>
addFactoryDelegate</H3>
<PRE>
void <B>addFactoryDelegate</B>(IAdaptable&nbsp;delegate)</PRE>
<DL>
<DD>Adds delgate to the end of the list of factory delegates if the list
does not already contain it.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>delegate</CODE> -
<DT><B>Throws:</B>
<DD><CODE>java.lang.ClassCastException</CODE> - if delegate does not implement an expected
interface. Each implementor can define what delegates are valid
based on the isValidDelegate() and getValidDelegates contracts</DL>
</DD>
</DL>
<HR>
<A NAME="removeFactoryDelegate(IAdaptable)"><!-- --></A><H3>
removeFactoryDelegate</H3>
<PRE>
boolean <B>removeFactoryDelegate</B>(IAdaptable&nbsp;delegate)</PRE>
<DL>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>delegate</CODE> -
<DT><B>Returns:</B><DD>true if delegate was removed, false if delegate wasn't in
the list of delegates</DL>
</DD>
</DL>
<HR>
<A NAME="getValidDelegateTypes()"><!-- --></A><H3>
getValidDelegateTypes</H3>
<PRE>
java.util.List&lt;java.lang.Class&gt; <B>getValidDelegateTypes</B>()</PRE>
<DL>
<DD><DL>
<DT><B>Returns:</B><DD>a list of Class objects that represent the interfaces
that may be passed to addFactoryDelegate. Implementor should
return at least one supported class.</DL>
</DD>
</DL>
<HR>
<A NAME="isValidDelegate(IAdaptable)"><!-- --></A><H3>
isValidDelegate</H3>
<PRE>
boolean <B>isValidDelegate</B>(IAdaptable&nbsp;delegate)</PRE>
<DL>
<DD>The return value of this method should conform to the following contract:
Let v = getValidDelegates. Then isValidDelegate should return true
only if the set of v contains a Class for which delegate.getAdapter(Class)
returns a non-null value.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>delegate</CODE> -
<DT><B>Returns:</B><DD>true if delegate is supported, false otherwise.</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/IDelegatingFactory.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="../../../../../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/jst/jsf/context/AbstractDocumentContext.html" title="class in org.eclipse.jst.jsf.context"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/eclipse/jst/jsf/context/IDocumentContext.html" title="interface in org.eclipse.jst.jsf.context"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../index.html?org/eclipse/jst/jsf/context/IDelegatingFactory.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="IDelegatingFactory.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>