org.eclipse.jst.jsf.designtime.symbols
Class JSFSymbolFactory
java.lang.Object
org.eclipse.jst.jsf.context.symbol.InitializedSymbolFactory
org.eclipse.jst.jsf.designtime.symbols.JSFSymbolFactory
-
public final class JSFSymbolFactory
- extends
InitializedSymbolFactory
Factory for creating symbols for variables/message bundles that are
contributed by components/tags. This Factory can be used by descendants of
AbstractContextSymbolFactory
in order to create the symbols they want
to contribute.
It provides also methods for getting the resulting ValueType
from an
EL expression and the "row" type signature from an DataModel/Array/List
ValueType
.
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
InitializedSymbolFactory
This reflects the split between things deemed to be generic EL (put in common
plugin) and things deemed to be JSF-specific (put here).
Method Summary
|
ISymbol
|
createArraySymbol
(java.lang.String symbolName,
java.lang.String signature,
ERuntimeSource source,
IJavaProject javaProject)
|
ISymbol
|
createDefaultSymbol
(java.lang.String symbolName,
ERuntimeSource source,
java.lang.String description)
|
ISymbol
|
createFromList
(java.lang.String symbolName,
org.eclipse.jst.jsf.common.internal.types.ValueType valueType,
ERuntimeSource source,
java.lang.String description,
IJavaProject javaProject)
|
IBeanInstanceSymbol
|
createManagedBeanSymbol
(java.lang.String symbolName,
java.lang.String fullyQualifiedName,
ERuntimeSource source,
java.lang.String description,
IJavaProject javaProject)
FUTURE use: added to support future API feature. |
IInstanceSymbol
|
createMessageBundleSymbol
(java.lang.String symbolName,
java.lang.String bundleName,
IJavaProject project)
FUTURE use: added to support future API feature. |
ISymbol
|
createScalarSymbol
(java.lang.String symbolName,
java.lang.String signature,
ERuntimeSource source,
IJavaProject javaProject)
|
java.lang.String
|
getRowSignatureFromDataModel
(org.eclipse.jst.jsf.common.internal.types.ValueType type)
Tries to guess the row type of a javax.faces.DataModel
instance. |
java.lang.String
|
getRowSignatureFromValueType
(org.eclipse.jst.jsf.common.internal.types.ValueType type)
|
org.eclipse.jst.jsf.common.internal.types.ValueType
|
getValueTypeFromEL
(java.lang.String elText,
IStructuredDocumentContext elContext,
IFile file)
Convenience for
getValueTypeFromEL(String, IStructuredDocumentContext, IFile, IStructuredDocumentSymbolResolverFactory)
using StructuredDocumentSymbolResolverFactory.getInstance(). |
org.eclipse.jst.jsf.common.internal.types.ValueType
|
getValueTypeFromEL
(java.lang.String elText,
IStructuredDocumentContext elContext,
IFile file,
IStructuredDocumentSymbolResolverFactory symbolResolverFactory)
|
boolean
|
isContainerType
(org.eclipse.jst.jsf.common.internal.types.ValueType type)
|
Methods inherited from class java.lang.Object
|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
|
JSFSymbolFactory
public JSFSymbolFactory()
getValueTypeFromEL
public org.eclipse.jst.jsf.common.internal.types.ValueType getValueTypeFromEL(java.lang.String elText,
IStructuredDocumentContext elContext,
IFile file,
IStructuredDocumentSymbolResolverFactory symbolResolverFactory)
-
-
Parameters:
-
elText
- The EL expression text. Must not be null -
elContext
- The document context pointing to elText in the source document. Must not be null -
file
- The workspace resource that contains elText. Must not be null. -
symbolResolverFactory
-
-
Returns:
- 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)
getValueTypeFromEL
public org.eclipse.jst.jsf.common.internal.types.ValueType getValueTypeFromEL(java.lang.String elText,
IStructuredDocumentContext elContext,
IFile file)
- Convenience for
getValueTypeFromEL(String, IStructuredDocumentContext, IFile, IStructuredDocumentSymbolResolverFactory)
using StructuredDocumentSymbolResolverFactory.getInstance().
-
-
Parameters:
-
elText
- -
elContext
- -
file
-
-
Returns:
- a ValueType or null
getRowSignatureFromDataModel
public java.lang.String getRowSignatureFromDataModel(org.eclipse.jst.jsf.common.internal.types.ValueType type)
- Tries to guess the row type of a
javax.faces.DataModel
instance. This will only work if type
is a descendant that
narrows down the return type of "getRowData()".
-
-
Parameters:
-
type
-
-
Returns:
- the row type of the given DataModel. Will return
null
if type
is no DataModel or if
nothing more specific than Object
can be
determined
isContainerType
public boolean isContainerType(org.eclipse.jst.jsf.common.internal.types.ValueType type)
-
-
Parameters:
-
type
-
-
Returns:
-
true
, if type
is a collection or
array
getRowSignatureFromValueType
public java.lang.String getRowSignatureFromValueType(org.eclipse.jst.jsf.common.internal.types.ValueType type)
-
-
Parameters:
-
type
- -
the type of the value
property
-
Returns:
- the type signature of the row variable for every type that
UIData
takes as value
property.
Will return null
if no type or nothing more
specific than Object
can be determined
createArraySymbol
public final
ISymbol createArraySymbol(java.lang.String symbolName,
java.lang.String signature,
ERuntimeSource source,
IJavaProject javaProject)
-
-
Parameters:
-
symbolName
- The name of the symbol to be created. Must not be null -
signature
- The type signature of the array type. Must not be null -
source
- the runtime source -
javaProject
- must not be null
-
Returns:
- a symbol based approximating an implicit DataModel wrapper for an array
createScalarSymbol
public final
ISymbol createScalarSymbol(java.lang.String symbolName,
java.lang.String signature,
ERuntimeSource source,
IJavaProject javaProject)
-
-
Parameters:
-
symbolName
- The name of the symbol to create. Must not be null. -
signature
- The fully resolved type signature of the scalar. Must not be null. -
source
- -
javaProject
- The JavaProject whose classpath is to be used to resolve type information for signture. Must not be null.
-
Returns:
- a symbol approximating a scalar object DataModel wrapper. The row variable for the
data model becomes of type signature
createFromList
public final
ISymbol createFromList(java.lang.String symbolName,
org.eclipse.jst.jsf.common.internal.types.ValueType valueType,
ERuntimeSource source,
java.lang.String description,
IJavaProject javaProject)
-
-
Parameters:
-
symbolName
- The name of the symbol to create. Must not be null. -
valueType
- The value expression representing the implicit list. The signature
on the valueType must be a list. Must not be null. -
source
- -
description
- -
javaProject
- The JavaProject whose classpath will be used to resolve types. Must not be null.
-
Returns:
- 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
createDefaultSymbol
public final
ISymbol createDefaultSymbol(java.lang.String symbolName,
ERuntimeSource source,
java.lang.String description)
-
-
Parameters:
-
symbolName
- The name of the symbol to create. Must not be null -
source
- -
description
-
-
Returns:
- 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.
createMessageBundleSymbol
public
IInstanceSymbol createMessageBundleSymbol(java.lang.String symbolName,
java.lang.String bundleName,
IJavaProject project)
- FUTURE use: added to support future API feature. Should not be used.
-
-
Parameters:
-
symbolName
- -
bundleName
- -
project
-
-
Returns:
- an instance symbol for the message bundle
createManagedBeanSymbol
public
IBeanInstanceSymbol createManagedBeanSymbol(java.lang.String symbolName,
java.lang.String fullyQualifiedName,
ERuntimeSource source,
java.lang.String description,
IJavaProject javaProject)
- FUTURE use: added to support future API feature. Should not be used.
-
-
Parameters:
-
symbolName
- -
fullyQualifiedName
- -
source
- -
description
- -
javaProject
-
-
Returns:
- an instance symbol for the message bundle