public interface DeclarationProvider
Declaration instances. A DeclarationProvider can be registered through the extension manifest, or using DependencyManager.addDeclarationProvider(oracle.ide.dependency.DeclarationProvider).| 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.
|
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.
|
boolean canGetDeclaration(Context context)
context - the contextDeclaration getDeclaration(Context context)
canGetDeclaration(oracle.ide.Context) returned true for this context.context - the contextboolean canGetDeclarations(Context context, Node node)
context - the contextnode - the Nodejava.util.Collection<? extends Declaration> getDeclarations(Context context, Node node)
context - the contextnode - the Nodejava.util.Collection<? extends Declaration> getTopLevelDeclarations(Context context, Node node)
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 getDeclarations(Context,Node).
context - the contextnode - the Node