org.eclipse.jst.jsf.designtime.resolver
Class CachingSymbolContextResolver
java.lang.Object
org.eclipse.jst.jsf.designtime.resolver.AbstractSymbolContextResolver
org.eclipse.jst.jsf.designtime.resolver.CachingSymbolContextResolver
- All Implemented Interfaces:
- IContextResolver, IDocumentContextResolver, ISymbolContextResolver
public final class CachingSymbolContextResolver
- extends AbstractSymbolContextResolver
A symbol resolver that delegates to the default SymbolContextResolver, but
caches the results and returns those on subsequent calls.
WARNING: this resolver is suitable *only* in situations where the state
of dependent symbol sources won't change between calls. This resolver makes
no attempt to ensure that cached data is in sync with changes to symbols
such addition, modification or removal of Java class underlying beans.
NOTE: this resolver is experimental and should NOT be considered API
Clients should not use this resolver directly. Access it through the factory instead
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
CachingSymbolContextResolver
public CachingSymbolContextResolver(IStructuredDocumentContext context)
- Parameters:
context
-
CachingSymbolContextResolver
public CachingSymbolContextResolver(ISymbolContextResolver delegate)
- Parameters:
delegate
-
canResolveContext
public boolean canResolveContext(IModelContext modelContext)
- Specified by:
canResolveContext
in interface IContextResolver
- Specified by:
canResolveContext
in class AbstractSymbolContextResolver
- Returns:
- true if this resolver can resolve context information
based on this context
getAllVariables
public ISymbol[] getAllVariables()
- Specified by:
getAllVariables
in interface ISymbolContextResolver
- Specified by:
getAllVariables
in class AbstractSymbolContextResolver
- Returns:
- all valid symbols in the current context
getMethod
public IMethodSymbol getMethod(IObjectSymbol base,
java.lang.Object methodName)
- Specified by:
getMethod
in interface ISymbolContextResolver
- Specified by:
getMethod
in class AbstractSymbolContextResolver
- Returns:
- the method of base matching methodName or null if not found
getMethods
public ISymbol[] getMethods(IObjectSymbol base)
- Specified by:
getMethods
in interface ISymbolContextResolver
- Specified by:
getMethods
in class AbstractSymbolContextResolver
- Returns:
- all methods belonging to base
getProperties
public ISymbol[] getProperties(ISymbol symbol)
- Specified by:
getProperties
in interface ISymbolContextResolver
- Specified by:
getProperties
in class AbstractSymbolContextResolver
- Returns:
- all properties of symbol
getProperty
public ISymbol getProperty(ISymbol symbol,
java.lang.Object propertyName)
- Specified by:
getProperty
in interface ISymbolContextResolver
- Specified by:
getProperty
in class AbstractSymbolContextResolver
- Returns:
- the property symbol called propertyName or null if not found
getVariable
public ISymbol getVariable(java.lang.String name)
- Description copied from interface:
ISymbolContextResolver
- Gets the most appropriate symbol in the current context
based on name. Most "appropriate" may take into account
scoping and other rules.
- Specified by:
getVariable
in interface ISymbolContextResolver
- Specified by:
getVariable
in class AbstractSymbolContextResolver
- Returns:
- a symbol
hasSameResolution
public boolean hasSameResolution(IModelContext modelContext)
- Description copied from class:
AbstractSymbolContextResolver
- Default implementation
We should avoid returning true unless we are positive that changing
to this context won't change the way symbols are resolved.
- Specified by:
hasSameResolution
in interface ISymbolContextResolver
- Overrides:
hasSameResolution
in class AbstractSymbolContextResolver
- Returns:
- true if the instance of this resolver would resolve everything
exactly the same with this modelContext. False otherwise.