<!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_06) on Fri Jun 05 14:31:20 PDT 2009 -->
<TITLE>
JSFSymbolFactory
</TITLE>

<META NAME="date" CONTENT="2009-06-05">

<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="JSFSymbolFactory";
    }
}
</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/JSFSymbolFactory.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/designtime/symbols/FileContextUtil.html" title="class in org.eclipse.jst.jsf.designtime.symbols"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/designtime/symbols/SymbolUtil.html" title="class in org.eclipse.jst.jsf.designtime.symbols"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../../index.html?org/eclipse/jst/jsf/designtime/symbols/JSFSymbolFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="JSFSymbolFactory.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.jst.jsf.designtime.symbols</FONT>
<BR>
Class JSFSymbolFactory</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/InitializedSymbolFactory.html" title="class in org.eclipse.jst.jsf.context.symbol">org.eclipse.jst.jsf.context.symbol.InitializedSymbolFactory</A>
      <IMG SRC="../../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.jst.jsf.designtime.symbols.JSFSymbolFactory</B>
</PRE>
<HR>
<DL>
<DT><PRE>public final class <B>JSFSymbolFactory</B><DT>extends <A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/InitializedSymbolFactory.html" title="class in org.eclipse.jst.jsf.context.symbol">InitializedSymbolFactory</A></DL>
</PRE>

<P>
Factory for creating symbols for variables/message bundles that are
 contributed by components/tags. This Factory can be used by descendants of
 <A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/source/AbstractContextSymbolFactory.html" title="class in org.eclipse.jst.jsf.context.symbol.source"><CODE>AbstractContextSymbolFactory</CODE></A> in order to create the symbols they want
 to contribute.
 
 It provides also methods for getting the resulting <CODE>ValueType</CODE> from an
 EL expression and the "row" type signature from an DataModel/Array/List
 <CODE>ValueType</CODE>.
 
 NOTE: C.B March 26, 2008 -- commented out portions are left for the future
 because the rely on enhancements to the symbol model that could not be made
 in the current release.  Other portions of the original ComponentSymbolFactory
 have been moved to <A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/InitializedSymbolFactory.html" title="class in org.eclipse.jst.jsf.context.symbol"><CODE>InitializedSymbolFactory</CODE></A>
 This reflects the split between things deemed to be generic EL (put in common
 plugin) and things deemed to be JSF-specific (put here).
<P>

<P>
<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/jst/jsf/designtime/symbols/JSFSymbolFactory.html#JSFSymbolFactory()">JSFSymbolFactory</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/ISymbol.html" title="interface in org.eclipse.jst.jsf.context.symbol">ISymbol</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/designtime/symbols/JSFSymbolFactory.html#createArraySymbol(java.lang.String, java.lang.String, org.eclipse.jst.jsf.context.symbol.ERuntimeSource, IJavaProject)">createArraySymbol</A></B>(java.lang.String&nbsp;symbolName,
                  java.lang.String&nbsp;signature,
                  <A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/ERuntimeSource.html" title="class in org.eclipse.jst.jsf.context.symbol">ERuntimeSource</A>&nbsp;source,
                  IJavaProject&nbsp;javaProject)</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;<A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/ISymbol.html" title="interface in org.eclipse.jst.jsf.context.symbol">ISymbol</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/designtime/symbols/JSFSymbolFactory.html#createDefaultSymbol(java.lang.String, org.eclipse.jst.jsf.context.symbol.ERuntimeSource, java.lang.String)">createDefaultSymbol</A></B>(java.lang.String&nbsp;symbolName,
                    <A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/ERuntimeSource.html" title="class in org.eclipse.jst.jsf.context.symbol">ERuntimeSource</A>&nbsp;source,
                    java.lang.String&nbsp;description)</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;<A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/ISymbol.html" title="interface in org.eclipse.jst.jsf.context.symbol">ISymbol</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/designtime/symbols/JSFSymbolFactory.html#createFromList(java.lang.String, org.eclipse.jst.jsf.common.internal.types.ValueType, org.eclipse.jst.jsf.context.symbol.ERuntimeSource, java.lang.String, IJavaProject)">createFromList</A></B>(java.lang.String&nbsp;symbolName,
               org.eclipse.jst.jsf.common.internal.types.ValueType&nbsp;valueType,
               <A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/ERuntimeSource.html" title="class in org.eclipse.jst.jsf.context.symbol">ERuntimeSource</A>&nbsp;source,
               java.lang.String&nbsp;description,
               IJavaProject&nbsp;javaProject)</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;<A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/IBeanInstanceSymbol.html" title="interface in org.eclipse.jst.jsf.context.symbol">IBeanInstanceSymbol</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/designtime/symbols/JSFSymbolFactory.html#createManagedBeanSymbol(java.lang.String, java.lang.String, org.eclipse.jst.jsf.context.symbol.ERuntimeSource, java.lang.String, IJavaProject)">createManagedBeanSymbol</A></B>(java.lang.String&nbsp;symbolName,
                        java.lang.String&nbsp;fullyQualifiedName,
                        <A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/ERuntimeSource.html" title="class in org.eclipse.jst.jsf.context.symbol">ERuntimeSource</A>&nbsp;source,
                        java.lang.String&nbsp;description,
                        IJavaProject&nbsp;javaProject)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FUTURE use: added to support future API feature.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/IInstanceSymbol.html" title="interface in org.eclipse.jst.jsf.context.symbol">IInstanceSymbol</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/designtime/symbols/JSFSymbolFactory.html#createMessageBundleSymbol(java.lang.String, java.lang.String, IJavaProject)">createMessageBundleSymbol</A></B>(java.lang.String&nbsp;symbolName,
                          java.lang.String&nbsp;bundleName,
                          IJavaProject&nbsp;project)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FUTURE use: added to support future API feature.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/ISymbol.html" title="interface in org.eclipse.jst.jsf.context.symbol">ISymbol</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/designtime/symbols/JSFSymbolFactory.html#createScalarSymbol(java.lang.String, java.lang.String, org.eclipse.jst.jsf.context.symbol.ERuntimeSource, IJavaProject)">createScalarSymbol</A></B>(java.lang.String&nbsp;symbolName,
                   java.lang.String&nbsp;signature,
                   <A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/ERuntimeSource.html" title="class in org.eclipse.jst.jsf.context.symbol">ERuntimeSource</A>&nbsp;source,
                   IJavaProject&nbsp;javaProject)</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;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/designtime/symbols/JSFSymbolFactory.html#getRowSignatureFromDataModel(org.eclipse.jst.jsf.common.internal.types.ValueType)">getRowSignatureFromDataModel</A></B>(org.eclipse.jst.jsf.common.internal.types.ValueType&nbsp;type)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tries to guess the row type of a <code>javax.faces.DataModel</code>
 instance.</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/jst/jsf/designtime/symbols/JSFSymbolFactory.html#getRowSignatureFromValueType(org.eclipse.jst.jsf.common.internal.types.ValueType)">getRowSignatureFromValueType</A></B>(org.eclipse.jst.jsf.common.internal.types.ValueType&nbsp;type)</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;org.eclipse.jst.jsf.common.internal.types.ValueType</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/designtime/symbols/JSFSymbolFactory.html#getValueTypeFromEL(java.lang.String, org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext, IFile)">getValueTypeFromEL</A></B>(java.lang.String&nbsp;elText,
                   <A HREF="../../../../../../org/eclipse/jst/jsf/context/structureddocument/IStructuredDocumentContext.html" title="interface in org.eclipse.jst.jsf.context.structureddocument">IStructuredDocumentContext</A>&nbsp;elContext,
                   IFile&nbsp;file)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convenience for <A HREF="../../../../../../org/eclipse/jst/jsf/designtime/symbols/JSFSymbolFactory.html#getValueTypeFromEL(java.lang.String, org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext, IFile, org.eclipse.jst.jsf.designtime.resolver.IStructuredDocumentSymbolResolverFactory)"><CODE>getValueTypeFromEL(String, IStructuredDocumentContext, IFile, IStructuredDocumentSymbolResolverFactory)</CODE></A>
 using StructuredDocumentSymbolResolverFactory.getInstance().</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;org.eclipse.jst.jsf.common.internal.types.ValueType</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/jst/jsf/designtime/symbols/JSFSymbolFactory.html#getValueTypeFromEL(java.lang.String, org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext, IFile, org.eclipse.jst.jsf.designtime.resolver.IStructuredDocumentSymbolResolverFactory)">getValueTypeFromEL</A></B>(java.lang.String&nbsp;elText,
                   <A HREF="../../../../../../org/eclipse/jst/jsf/context/structureddocument/IStructuredDocumentContext.html" title="interface in org.eclipse.jst.jsf.context.structureddocument">IStructuredDocumentContext</A>&nbsp;elContext,
                   IFile&nbsp;file,
                   <A HREF="../../../../../../org/eclipse/jst/jsf/designtime/resolver/IStructuredDocumentSymbolResolverFactory.html" title="interface in org.eclipse.jst.jsf.designtime.resolver">IStructuredDocumentSymbolResolverFactory</A>&nbsp;symbolResolverFactory)</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/designtime/symbols/JSFSymbolFactory.html#isContainerType(org.eclipse.jst.jsf.common.internal.types.ValueType)">isContainerType</A></B>(org.eclipse.jst.jsf.common.internal.types.ValueType&nbsp;type)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.jst.jsf.context.symbol.InitializedSymbolFactory"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.eclipse.jst.jsf.context.symbol.<A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/InitializedSymbolFactory.html" title="class in org.eclipse.jst.jsf.context.symbol">InitializedSymbolFactory</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/InitializedSymbolFactory.html#createBeanOrUnknownInstanceSymbol(IProject, java.lang.String, java.lang.String, org.eclipse.jst.jsf.context.symbol.ERuntimeSource)">createBeanOrUnknownInstanceSymbol</A>, <A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/InitializedSymbolFactory.html#createJavaComponentSymbol(java.lang.String, org.eclipse.jst.jsf.context.symbol.IJavaTypeDescriptor2, java.lang.String)">createJavaComponentSymbol</A>, <A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/InitializedSymbolFactory.html#createJavaComponentSymbol(java.lang.String, org.eclipse.jst.jsf.common.internal.types.ValueType, java.lang.String, IJavaProject)">createJavaComponentSymbol</A>, <A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/InitializedSymbolFactory.html#createTypeDescriptorFromSignature(java.lang.String, IJavaProject)">createTypeDescriptorFromSignature</A>, <A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/InitializedSymbolFactory.html#createUnknownComponentSymbol(java.lang.String, org.eclipse.jst.jsf.context.symbol.ERuntimeSource)">createUnknownComponentSymbol</A>, <A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/InitializedSymbolFactory.html#createUnknownInstanceSymbol(java.lang.String, org.eclipse.jst.jsf.context.symbol.ERuntimeSource)">createUnknownInstanceSymbol</A>, <A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/InitializedSymbolFactory.html#getElementSignatureFromContainerType(org.eclipse.jst.jsf.common.internal.types.ValueType)">getElementSignatureFromContainerType</A></CODE></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="JSFSymbolFactory()"><!-- --></A><H3>
JSFSymbolFactory</H3>
<PRE>
public <B>JSFSymbolFactory</B>()</PRE>
<DL>
</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="getValueTypeFromEL(java.lang.String, org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext, IFile, org.eclipse.jst.jsf.designtime.resolver.IStructuredDocumentSymbolResolverFactory)"><!-- --></A><H3>
getValueTypeFromEL</H3>
<PRE>
public org.eclipse.jst.jsf.common.internal.types.ValueType <B>getValueTypeFromEL</B>(java.lang.String&nbsp;elText,
                                                                              <A HREF="../../../../../../org/eclipse/jst/jsf/context/structureddocument/IStructuredDocumentContext.html" title="interface in org.eclipse.jst.jsf.context.structureddocument">IStructuredDocumentContext</A>&nbsp;elContext,
                                                                              IFile&nbsp;file,
                                                                              <A HREF="../../../../../../org/eclipse/jst/jsf/designtime/resolver/IStructuredDocumentSymbolResolverFactory.html" title="interface in org.eclipse.jst.jsf.designtime.resolver">IStructuredDocumentSymbolResolverFactory</A>&nbsp;symbolResolverFactory)</PRE>
<DL>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>elText</CODE> - The EL expression text. Must not be null<DD><CODE>elContext</CODE> - The document context pointing to elText in the source document. Must not be null<DD><CODE>file</CODE> - The workspace resource that contains elText. Must not be null.<DD><CODE>symbolResolverFactory</CODE> - 
<DT><B>Returns:</B><DD>the value expression resolved from elText or null if it cannot
 be resolved or elText doesn't resolve to value expression (i.e. is a method expression)</DL>
</DD>
</DL>
<HR>

<A NAME="getValueTypeFromEL(java.lang.String, org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext, IFile)"><!-- --></A><H3>
getValueTypeFromEL</H3>
<PRE>
public org.eclipse.jst.jsf.common.internal.types.ValueType <B>getValueTypeFromEL</B>(java.lang.String&nbsp;elText,
                                                                              <A HREF="../../../../../../org/eclipse/jst/jsf/context/structureddocument/IStructuredDocumentContext.html" title="interface in org.eclipse.jst.jsf.context.structureddocument">IStructuredDocumentContext</A>&nbsp;elContext,
                                                                              IFile&nbsp;file)</PRE>
<DL>
<DD>Convenience for <A HREF="../../../../../../org/eclipse/jst/jsf/designtime/symbols/JSFSymbolFactory.html#getValueTypeFromEL(java.lang.String, org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext, IFile, org.eclipse.jst.jsf.designtime.resolver.IStructuredDocumentSymbolResolverFactory)"><CODE>getValueTypeFromEL(String, IStructuredDocumentContext, IFile, IStructuredDocumentSymbolResolverFactory)</CODE></A>
 using StructuredDocumentSymbolResolverFactory.getInstance().
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>elText</CODE> - <DD><CODE>elContext</CODE> - <DD><CODE>file</CODE> - 
<DT><B>Returns:</B><DD>a ValueType or null</DL>
</DD>
</DL>
<HR>

<A NAME="getRowSignatureFromDataModel(org.eclipse.jst.jsf.common.internal.types.ValueType)"><!-- --></A><H3>
getRowSignatureFromDataModel</H3>
<PRE>
public java.lang.String <B>getRowSignatureFromDataModel</B>(org.eclipse.jst.jsf.common.internal.types.ValueType&nbsp;type)</PRE>
<DL>
<DD>Tries to guess the row type of a <code>javax.faces.DataModel</code>
 instance. This will only work if <code>type</code> is a descendant that
 narrows down the return type of "getRowData()".
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>type</CODE> - 
<DT><B>Returns:</B><DD>the row type of the given DataModel. Will return
         <code>null</code> if <code>type</code> is no DataModel or if
         nothing more specific than <code>Object</code> can be
         determined</DL>
</DD>
</DL>
<HR>

<A NAME="isContainerType(org.eclipse.jst.jsf.common.internal.types.ValueType)"><!-- --></A><H3>
isContainerType</H3>
<PRE>
public boolean <B>isContainerType</B>(org.eclipse.jst.jsf.common.internal.types.ValueType&nbsp;type)</PRE>
<DL>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>type</CODE> - 
<DT><B>Returns:</B><DD><code>true</code>, if <code>type</code> is a collection or
         array</DL>
</DD>
</DL>
<HR>

<A NAME="getRowSignatureFromValueType(org.eclipse.jst.jsf.common.internal.types.ValueType)"><!-- --></A><H3>
getRowSignatureFromValueType</H3>
<PRE>
public java.lang.String <B>getRowSignatureFromValueType</B>(org.eclipse.jst.jsf.common.internal.types.ValueType&nbsp;type)</PRE>
<DL>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>type</CODE> - -
            the type of the <code>value</code> property
<DT><B>Returns:</B><DD>the type signature of the row variable for every type that
         <code>UIData</code> takes as <code>value</code> property.
         Will return <code>null</code> if no type or nothing more
         specific than <code>Object</code> can be determined</DL>
</DD>
</DL>
<HR>

<A NAME="createArraySymbol(java.lang.String, java.lang.String, org.eclipse.jst.jsf.context.symbol.ERuntimeSource, IJavaProject)"><!-- --></A><H3>
createArraySymbol</H3>
<PRE>
public final <A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/ISymbol.html" title="interface in org.eclipse.jst.jsf.context.symbol">ISymbol</A> <B>createArraySymbol</B>(java.lang.String&nbsp;symbolName,
                                       java.lang.String&nbsp;signature,
                                       <A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/ERuntimeSource.html" title="class in org.eclipse.jst.jsf.context.symbol">ERuntimeSource</A>&nbsp;source,
                                       IJavaProject&nbsp;javaProject)</PRE>
<DL>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>symbolName</CODE> - The name of the symbol to be created. Must not be null<DD><CODE>signature</CODE> - The type signature of the array type. Must not be null<DD><CODE>source</CODE> - the runtime source<DD><CODE>javaProject</CODE> - must not be null
<DT><B>Returns:</B><DD>a symbol based approximating an implicit DataModel wrapper for an array</DL>
</DD>
</DL>
<HR>

<A NAME="createScalarSymbol(java.lang.String, java.lang.String, org.eclipse.jst.jsf.context.symbol.ERuntimeSource, IJavaProject)"><!-- --></A><H3>
createScalarSymbol</H3>
<PRE>
public final <A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/ISymbol.html" title="interface in org.eclipse.jst.jsf.context.symbol">ISymbol</A> <B>createScalarSymbol</B>(java.lang.String&nbsp;symbolName,
                                        java.lang.String&nbsp;signature,
                                        <A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/ERuntimeSource.html" title="class in org.eclipse.jst.jsf.context.symbol">ERuntimeSource</A>&nbsp;source,
                                        IJavaProject&nbsp;javaProject)</PRE>
<DL>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>symbolName</CODE> - The name of the symbol to create. Must not be null.<DD><CODE>signature</CODE> - The fully resolved type signature of the scalar.  Must not be null.<DD><CODE>source</CODE> - <DD><CODE>javaProject</CODE> - The JavaProject whose classpath is to be used to resolve type information for signture. Must not be null.
<DT><B>Returns:</B><DD>a symbol approximating a scalar object DataModel wrapper.  The row variable for the
 data model becomes of type signature</DL>
</DD>
</DL>
<HR>

<A NAME="createFromList(java.lang.String, org.eclipse.jst.jsf.common.internal.types.ValueType, org.eclipse.jst.jsf.context.symbol.ERuntimeSource, java.lang.String, IJavaProject)"><!-- --></A><H3>
createFromList</H3>
<PRE>
public final <A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/ISymbol.html" title="interface in org.eclipse.jst.jsf.context.symbol">ISymbol</A> <B>createFromList</B>(java.lang.String&nbsp;symbolName,
                                    org.eclipse.jst.jsf.common.internal.types.ValueType&nbsp;valueType,
                                    <A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/ERuntimeSource.html" title="class in org.eclipse.jst.jsf.context.symbol">ERuntimeSource</A>&nbsp;source,
                                    java.lang.String&nbsp;description,
                                    IJavaProject&nbsp;javaProject)</PRE>
<DL>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>symbolName</CODE> - The name of the symbol to create. Must not be null.<DD><CODE>valueType</CODE> - The value expression representing the implicit list.  The signature
 on the valueType must be a list. Must not be null.<DD><CODE>source</CODE> - <DD><CODE>description</CODE> - <DD><CODE>javaProject</CODE> - The JavaProject whose classpath will be used to resolve types.  Must not be null.
<DT><B>Returns:</B><DD>a symbol that approximates as best as possible an implicit DataModel for java.util.List value expressions.  If the List has
 resolvable Java 5 type arguments, then a scalar symbol will be created
 using this type information.  If it is a raw type, then 
 createDefaultSymbol() is called</DL>
</DD>
</DL>
<HR>

<A NAME="createDefaultSymbol(java.lang.String, org.eclipse.jst.jsf.context.symbol.ERuntimeSource, java.lang.String)"><!-- --></A><H3>
createDefaultSymbol</H3>
<PRE>
public final <A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/ISymbol.html" title="interface in org.eclipse.jst.jsf.context.symbol">ISymbol</A> <B>createDefaultSymbol</B>(java.lang.String&nbsp;symbolName,
                                         <A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/ERuntimeSource.html" title="class in org.eclipse.jst.jsf.context.symbol">ERuntimeSource</A>&nbsp;source,
                                         java.lang.String&nbsp;description)</PRE>
<DL>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>symbolName</CODE> - The name of the symbol to create.  Must not be null<DD><CODE>source</CODE> - <DD><CODE>description</CODE> - 
<DT><B>Returns:</B><DD>a default symbol that eliminates bogus warnings for this dataTable's
 row variable in cases where something better is resolvable.  Note that this is
 not ideal, since will result in any property being accepted on the variable with
 this name.</DL>
</DD>
</DL>
<HR>

<A NAME="createMessageBundleSymbol(java.lang.String, java.lang.String, IJavaProject)"><!-- --></A><H3>
createMessageBundleSymbol</H3>
<PRE>
public <A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/IInstanceSymbol.html" title="interface in org.eclipse.jst.jsf.context.symbol">IInstanceSymbol</A> <B>createMessageBundleSymbol</B>(java.lang.String&nbsp;symbolName,
                                                 java.lang.String&nbsp;bundleName,
                                                 IJavaProject&nbsp;project)</PRE>
<DL>
<DD>FUTURE use: added to support future API feature.  Should not be used.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>symbolName</CODE> - <DD><CODE>bundleName</CODE> - <DD><CODE>project</CODE> - 
<DT><B>Returns:</B><DD>an instance symbol for the message bundle</DL>
</DD>
</DL>
<HR>

<A NAME="createManagedBeanSymbol(java.lang.String, java.lang.String, org.eclipse.jst.jsf.context.symbol.ERuntimeSource, java.lang.String, IJavaProject)"><!-- --></A><H3>
createManagedBeanSymbol</H3>
<PRE>
public <A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/IBeanInstanceSymbol.html" title="interface in org.eclipse.jst.jsf.context.symbol">IBeanInstanceSymbol</A> <B>createManagedBeanSymbol</B>(java.lang.String&nbsp;symbolName,
                                                   java.lang.String&nbsp;fullyQualifiedName,
                                                   <A HREF="../../../../../../org/eclipse/jst/jsf/context/symbol/ERuntimeSource.html" title="class in org.eclipse.jst.jsf.context.symbol">ERuntimeSource</A>&nbsp;source,
                                                   java.lang.String&nbsp;description,
                                                   IJavaProject&nbsp;javaProject)</PRE>
<DL>
<DD>FUTURE use: added to support future API feature.  Should not be used.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>symbolName</CODE> - <DD><CODE>fullyQualifiedName</CODE> - <DD><CODE>source</CODE> - <DD><CODE>description</CODE> - <DD><CODE>javaProject</CODE> - 
<DT><B>Returns:</B><DD>an instance symbol for the message bundle</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/JSFSymbolFactory.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/designtime/symbols/FileContextUtil.html" title="class in org.eclipse.jst.jsf.designtime.symbols"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../../org/eclipse/jst/jsf/designtime/symbols/SymbolUtil.html" title="class in org.eclipse.jst.jsf.designtime.symbols"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../../index.html?org/eclipse/jst/jsf/designtime/symbols/JSFSymbolFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="JSFSymbolFactory.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>
