## org.eclipse.jst.jsf.designtime.resolver
Interface ISymbolContextResolver

All Superinterfaces:
  IContextResolver, IDocumentContextResolver

All Known Implementing Classes:
  AbstractSymbolContextResolver, CachingSymbolContextResolver

    public interface ISymbolContextResolver

extends IDocumentContextResolver

Resolves symbols and possible symbols in a given context May NOT be sub-classed or implemented by clients. Sub-class AbstractSymbolContextResolver to implement.

Method Summary
`ISymbol[]` `getAllVariables()`
`IMethodSymbol` `getMethod(IObjectSymbol base, java.lang.Object methodName)`
`ISymbol[]` `getMethods(IObjectSymbol base)`
`ISymbol[]` `getProperties(ISymbol symbol)`
`ISymbol` `getProperty(ISymbol symbol, java.lang.Object propertyName)`
`ISymbol` `getVariable(java.lang.String name)` Gets the most appropriate symbol in the current context based on name.
`boolean` `hasSameResolution(IModelContext modelContext)` This is meant to be used things like caching to determine if caches need to be flushed for different contexts.

Methods inherited from interface org.eclipse.jst.jsf.context.resolver.IContextResolver
`canResolveContext`

Method Detail

### getVariable

    ISymbol getVariable(java.lang.String name)

  Gets the most appropriate symbol in the current context based on name. Most "appropriate" may take into account scoping and other rules.

  Parameters:
    `name` -
  Returns:
    a symbol

### getAllVariables

    ISymbol[] getAllVariables()

  Returns:
    all valid symbols in the current context

### getProperty

    ISymbol getProperty(ISymbol symbol,
                        java.lang.Object propertyName)

  Parameters:
    `symbol` -
    `propertyName` -
  Returns:
    the property symbol called propertyName or null if not found

### getProperties

    ISymbol[] getProperties(ISymbol symbol)

  Parameters:
    `symbol` -
  Returns:
    all properties of symbol

### getMethod

    IMethodSymbol getMethod(IObjectSymbol base,
                            java.lang.Object methodName)

  Parameters:
    `base` -
    `methodName` -
  Returns:
    the method of base matching methodName or null if not found

### getMethods

    ISymbol[] getMethods(IObjectSymbol base)

  Parameters:
    `base` -
  Returns:
    all methods belonging to base

### hasSameResolution

    boolean hasSameResolution(IModelContext modelContext)

  This is meant to be used things like caching to determine if caches need to be flushed for different contexts. If you are in doubt, always return false. NOTE: this method should not be used to determine if symbols previously returned by this resolver have changed to do changes in the underlying application such as change to a managed bean. This method only needs to check if what variable, properties and methods may have resolved different, because of the context itself.

  Parameters:
    `modelContext` -
  Returns:
    true if the instance of this resolver would resolve everything exactly the same with this modelContext. False otherwise.
  Since:
    3.0