public abstract class IndexDeclarationProvider extends java.lang.Object implements DeclarationProvider
Constructor and Description |
---|
IndexDeclarationProvider() |
Modifier and Type | Method and Description |
---|---|
boolean |
canGetDeclaration(Context context)
Determine whether there could be a declaration in the context.
|
boolean |
canGetDeclarations(Context context,
Node node)
Determine whether this provider can get declarations for a Node.
|
Declaration |
getDeclaration(Context context)
Get the declaration for the given context.
|
protected abstract java.util.Collection<QueryCriteria> |
getDeclarationCriteria(Context context,
Reference reference)
Get the index query criteria to use to search for the declaration
corresponding to a reference.
|
java.util.Collection<? extends Declaration> |
getDeclarations(Context context,
Node node)
Get all declarations for a Node.
|
java.util.Collection<? extends Declaration> |
getTopLevelDeclarations(Context context,
Node node)
Get all top-level declarations for a Node.
|
protected abstract java.util.Collection<QueryCriteria> getDeclarationCriteria(Context context, Reference reference)
context
- the contextreference
- the referencepublic boolean canGetDeclaration(Context context)
DeclarationProvider
canGetDeclaration
in interface DeclarationProvider
context
- the contextpublic Declaration getDeclaration(Context context)
DeclarationProvider
DeclarationProvider.canGetDeclaration(oracle.ide.Context)
returned true for this context.getDeclaration
in interface DeclarationProvider
context
- the contextpublic boolean canGetDeclarations(Context context, Node node)
DeclarationProvider
canGetDeclarations
in interface DeclarationProvider
context
- the contextnode
- the Nodepublic java.util.Collection<? extends Declaration> getDeclarations(Context context, Node node)
DeclarationProvider
getDeclarations
in interface DeclarationProvider
context
- the contextnode
- the Nodepublic java.util.Collection<? extends Declaration> getTopLevelDeclarations(Context context, Node node)
DeclarationProvider
Some languages have a hierarchy of declarations. Objects further down in
the hierarchy can only be accessed through these top-level declarations.
For example, methods in a Java class can only be referenced directly
through a reference to the Java class. Or columns in a database table
might only be referenced through a reference to the table. In those
cases, it is possible to search for all references to a Node by
searching only for the top-level declarations. This improves performance
compared to searching for every declaration in the Node.
Implementations that do not have such a declaration hierarchy can simply
call DeclarationProvider.getDeclarations(Context,Node)
.
getTopLevelDeclarations
in interface DeclarationProvider
context
- the contextnode
- the Node