{
final IFile fileContext = FileContextUtil.deriveIFileFromContext(context);
if (isProvider(fileContext) && fileContext.isAccessible())
{
JSPModelProcessor modelProcessor = null;
try
{
modelProcessor = JSPModelProcessor.get(fileContext);
// ensure internal model is sync'ed with document
// but don't force refresh
modelProcessor.refresh(!JSPModelProcessor.FORCE_REFRESH, JSPModelProcessor.RUN_ON_CURRENT_THREAD);
final List<ISymbol> symbols = new ArrayList();
if ((symbolScopeMask & ISymbolConstants.SYMBOL_SCOPE_REQUEST) != 0)
{
symbols.addAll(modelProcessor.getMapForScope(ISymbolConstants.SYMBOL_SCOPE_REQUEST_STRING).values());
}
if ((symbolScopeMask & ISymbolConstants.SYMBOL_SCOPE_SESSION) != 0)
{
symbols.addAll(modelProcessor.getMapForScope(ISymbolConstants.SYMBOL_SCOPE_SESSION_STRING).values());
}
if ((symbolScopeMask & ISymbolConstants.SYMBOL_SCOPE_APPLICATION) != 0)
{
symbols.addAll(modelProcessor.getMapForScope(ISymbolConstants.SYMBOL_SCOPE_APPLICATION_STRING).values());
}
if ((symbolScopeMask & ISymbolConstants.SYMBOL_SCOPE_NONE) != 0)
{
symbols.addAll(modelProcessor.getMapForScope(ISymbolConstants.SYMBOL_SCOPE_NONE_STRING).values());
}
if ((symbolScopeMask & ISymbolConstants.SYMBOL_SCOPE_VIEW) != 0)
{
symbols.addAll(modelProcessor.getMapForScope(ISymbolConstants.SYMBOL_SCOPE_VIEW_STRING).values());
}
if ((symbolScopeMask & ISymbolConstants.SYMBOL_SCOPE_FLASH) != 0)
{
symbols.addAll(modelProcessor.getMapForScope(ISymbolConstants.SYMBOL_SCOPE_FLASH_STRING).values());
}
return symbols.toArray(ISymbol.EMPTY_SYMBOL_ARRAY);
}
catch (Exception e)
{