public final class JavaBrowseHelper extends oracle.jdevimpl.java.Context2ParserHelper implements JavaConstants
JavaBrowseSupport
class provides the routines for
supporting the "Browse Symbol at Cursor" and "Browse JavaDoc"
command that appears in the context-sensitive This class does the
work of checking whether a "Browse Symbol" operation can be
performed, as well as to find the appropriate source file to bring
up in an editor. It is a singleton class as it does not store any editor references internally.
FUTURE ENHANCEMENTS Skip the parse (nice-to-have, straightforward). BrowseSymbol currently always parses the file and uses a simple heuristic for determining which symbol the cursor is under. If the user has already made a selection, BrowseSymbol should try to browse that selection FIRST, and failing that, then do the parse and proceed with the browsing.
Note: File extracted from jdev-browse
JavaPreferences.MemberOrder
ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEFAULT, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_none, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICTFP, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_VARARGS, ACC_VOLATILE, ACCX_DEPRECATED, ACCX_HIDDEN, ARRAY_implements, BOUND_EXTENDS, BOUND_NARROW, BOUND_NONE, BOUND_SUPER, ELEM_ANNOTATION, ELEM_base, ELEM_CLASS, ELEM_COMPONENT, ELEM_EXPRESSION, ELEM_FIELD, ELEM_FILE, ELEM_IMPORT, ELEM_INTERSECTION_TYPE, ELEM_invalid, ELEM_LOCAL_VARIABLE, ELEM_max, ELEM_METHOD, ELEM_NOTHING, ELEM_PACKAGE, ELEM_SELF_VARIABLE, ELEM_STATEMENT_LABEL, ELEM_TMP_VARIABLE, ELEM_TYPE_VARIABLE, ELEM_WILDCARD_TYPE, ELEM_words, EMPTY_OBJECT_ARRAY, EMPTY_STRING_ARRAY, FOR_ENHANCED, FOR_EXPRESSION, FOR_VARIABLE_D, kEmptyCollection, opt2srcTable, PACKAGE_INFO, PRIMITIVE_autoboxes, PRIMITIVE_binary, PRIMITIVE_BOOLEAN, PRIMITIVE_BYTE, PRIMITIVE_CHAR, PRIMITIVE_descriptors, PRIMITIVE_DOUBLE, PRIMITIVE_FLOAT, PRIMITIVE_INT, PRIMITIVE_invalid, PRIMITIVE_LONG, PRIMITIVE_max, PRIMITIVE_min, PRIMITIVE_NULL, PRIMITIVE_SHORT, PRIMITIVE_tokens, PRIMITIVE_unary, PRIMITIVE_VOID, SRC_ANNOTATION, SRC_base, SRC_BLOCK, SRC_CATCH_PARAMETER, SRC_CLASS, SRC_CLASS_BODY, SRC_CLASS_INITIALIZER, SRC_CONSTRUCTOR_D, SRC_DOC_base, SRC_DOC_BLOCK_TAG, SRC_DOC_COMMENT, SRC_DOC_DESCRIPTION, SRC_DOC_INLINE_TAG, SRC_DOC_max, SRC_DOC_REFERENCE, SRC_DOC_TAG_NAME, SRC_DOC_TEXT, SRC_ENUM_CONSTANT_D, SRC_ERROR, SRC_EXPR_ANNOTATION, SRC_EXPR_ARRAY_ACCESS, SRC_EXPR_ASSIGNMENT, SRC_EXPR_base, SRC_EXPR_DOT, SRC_EXPR_INFIX, SRC_EXPR_INTERSECTION_TYPE, SRC_EXPR_LAMBDA, SRC_EXPR_LIST, SRC_EXPR_LITERAL, SRC_EXPR_max, SRC_EXPR_METHOD_CALL, SRC_EXPR_METHOD_REFERENCE, SRC_EXPR_NEW_ARRAY, SRC_EXPR_NEW_CLASS, SRC_EXPR_QUESTION, SRC_EXPR_SIMPLE_NAME, SRC_EXPR_TYPE, SRC_EXPR_TYPECAST, SRC_EXPR_UNARY, SRC_EXPR_WRAPPER, SRC_FIELD_D, SRC_FIELD_VARIABLE, SRC_FILE, SRC_FORMAL_PARAMETER, SRC_FORMAL_PARAMETER_LIST, SRC_IMPORT_D, SRC_INTERFACES_CLAUSE, SRC_invalid, SRC_LABEL, SRC_LAMBDA_PARAMETER, SRC_LEX_base, SRC_LEX_BLANKLINE, SRC_LEX_COMMENT, SRC_LEX_max, SRC_LEX_SQLJ, SRC_LOCAL_VARIABLE, SRC_LOCAL_VARIABLE_D, SRC_max, SRC_METHOD_D, SRC_NAME, SRC_PACKAGE_D, SRC_STMT_ASSERT, SRC_STMT_base, SRC_STMT_BLOCK, SRC_STMT_BREAK, SRC_STMT_CATCH, SRC_STMT_CONTINUE, SRC_STMT_DO, SRC_STMT_ELSE, SRC_STMT_EMPTY, SRC_STMT_EXPRESSION, SRC_STMT_FINALLY, SRC_STMT_FOR, SRC_STMT_IF, SRC_STMT_max, SRC_STMT_RETURN, SRC_STMT_SWITCH, SRC_STMT_SYNCH, SRC_STMT_THROW, SRC_STMT_TRY, SRC_STMT_WHILE, SRC_SUPERCLASS_CLAUSE, SRC_SWITCH_LABEL, SRC_THROWS_CLAUSE, SRC_TRY_RESOURCES_LIST, SRC_TYPE_ARGUMENT, SRC_TYPE_ARGUMENT_LIST, SRC_TYPE_PARAMETER, SRC_TYPE_REF, SRC_words, TY_ANNOTATE, TY_CLASS, TY_ENUM, TY_INTERFACE, TY_invalid, TY_max, TY_words
ERROR_ABSTRACT_CLASS, ERROR_ABSTRACT_METHOD_CALL, ERROR_AMBIGUOUS_IMPORT, ERROR_AMBIGUOUS_REF, ERROR_ANNOTATION_ELEMENT_NAME_NOT_FOUND, ERROR_ANONYMOUS_CLASS_CONSTRUCTOR, ERROR_ASSERT_IDENTIFIER, ERROR_base, ERROR_BREAK_OUTSIDE_SWITCH_OR_LOOP, ERROR_CANCELLED, ERROR_CANNOT_ASSIGN_FINAL, ERROR_CANNOT_INSTANTIATE_ENUMS, ERROR_CANT_ASSIGN, ERROR_CANT_EXTEND_ENUM, ERROR_CANT_EXTEND_FINAL, ERROR_CANT_EXTEND_INTERFACE, ERROR_CANT_IMPLEMENT_CLASS, ERROR_CANT_TYPECAST, ERROR_CATEGORY_ALL, ERROR_CATEGORY_COMPILE, ERROR_CATEGORY_PARSE, ERROR_CATEGORY_SCAN, ERROR_CATEGORY_unclassified, ERROR_CHECK_EXCEPTION, ERROR_CLASS_CIRCULARITY, ERROR_COMPILE_base, ERROR_COMPILE_GENERIC, ERROR_COMPILE_max, ERROR_CONSTRUCTOR_NAME, ERROR_CONTINUE_OUTSIDE_OF_LOOP, ERROR_CYCLIC_ANNOTATION_TYPE_REFERENCE, ERROR_DUPLICATE, ERROR_EMPTY_CHAR_LITERAL, ERROR_EMPTY_EXPRESSION, ERROR_EXCEPTION_NEVER_THROWN, ERROR_EXPECTING_ONE, ERROR_EXPECTING_TWO, ERROR_EXPECTING_TYPE, ERROR_EXTENDS_NOT_ALLOWED, ERROR_EXTENDS_TOO_MANY, ERROR_FINAL_ALREADY_ASSIGNED, ERROR_FORWARD_REFERENCE, ERROR_GENERIC_COMPILER_ERROR, ERROR_GENERIC_TYPE, ERROR_ILLEGAL_ANNOTATION, ERROR_ILLEGAL_ARRAY_INITIALIZER, ERROR_ILLEGAL_DEFAULT, ERROR_ILLEGAL_DIAMOND, ERROR_ILLEGAL_LABEL, ERROR_ILLEGAL_METHOD_ARGUMENT_EXPRESSION, ERROR_ILLEGAL_METHOD_RETURN_TYPE_OVERRIDE, ERROR_ILLEGAL_METHOD_THROW_TYPE_OVERRIDE, ERROR_ILLEGAL_METHOD_VISIBILITY_OVERRIDE, ERROR_ILLEGAL_OVERRIDE_ANNOTATION, ERROR_ILLEGAL_START_OF_EXPR, ERROR_ILLEGAL_TYPE_PARAMETERS, ERROR_ILLEGAL_VARARGS, ERROR_IMPLEMENTS_NOT_ALLOWED, ERROR_IMPORT_NOT_FOUND, ERROR_INCOMPATIBLE_TYPES, ERROR_INCOMPATIBLE_WITH_FUNCTIONAL_INTERFACE_TARGET, ERROR_INTERNAL, ERROR_INVALID_ANNOTATION_MEMBER_TYPE, ERROR_INVALID_CHAR_LITERAL, ERROR_INVALID_ESCAPE_SEQUENCE, ERROR_INVALID_EXPR_STMT, ERROR_INVALID_NAME, ERROR_INVALID_OPERATION, ERROR_INVALID_STRING_LITERAL, ERROR_INVALID_SUPERTYPE, ERROR_keys, ERROR_LONE_CATCH, ERROR_LONE_ELSE, ERROR_LONE_FINALLY, ERROR_LONE_TRY, ERROR_max, ERROR_MEMBER_NOT_FOUND, ERROR_METHOD_NOT_FOUND, ERROR_MISSING_ANNOTATION_ARGUMENT, ERROR_MISSING_ANNOTATION_ELEMENT_NAME, ERROR_MISSING_CASE_OR_DEFAULT_LABEL, ERROR_MISSING_CONDITION, ERROR_MISSING_METHOD_BODY, ERROR_MISSING_RETURN, ERROR_MODIFIER_NOT_ALLOWED, ERROR_MODIFIER_REPEATED, ERROR_MULTIPLE_COMPONENTS, ERROR_NAME_NOT_FOUND, ERROR_none, ERROR_NOT_A_CONSTANT_EXPRESSION, ERROR_NOT_ACCESSIBLE, ERROR_NOT_ANNOTATION_TYPE, ERROR_NOT_ASSIGNABLE, ERROR_NOT_GENERIC_TYPE, ERROR_NOT_IMPLEMENTED_YET, ERROR_NOT_THROWABLE, ERROR_NUMBER_FORMAT, ERROR_NUMERIC_OVERFLOW, ERROR_NUMERIC_UNDERFLOW, ERROR_ONLY_STATIC_ACCESS, ERROR_PARSE_base, ERROR_PARSE_GENERIC, ERROR_PARSE_max, ERROR_REQUIRE_ARRAY, ERROR_REQUIRE_BLOCK, ERROR_REQUIRE_FINAL, ERROR_REQUIRE_FINAL_OR_EFFECTIVELY_FINAL, ERROR_REQUIRE_OBJECT, ERROR_REQUIRE_OUTER_CLASS, ERROR_REQUIRE_VARIABLE, ERROR_SCAN_base, ERROR_SCAN_GENERIC, ERROR_SCAN_max, ERROR_SUPER_NOT_FIRST, ERROR_TARGET_NOT_FUNCTIONAL_INTERFACE, ERROR_THIS_NOT_FIRST, ERROR_TYPE_ARGUMENT_MISMATCH, ERROR_TYPE_IS_NOT_AUTOCLOSEABLE, ERROR_TYPE_IS_NOT_DISJUNCTIVE, ERROR_TYPE_IS_NOT_ITERABLE, ERROR_TYPE_NOT_ALLOWED, ERROR_TYPE_NOT_FOUND, ERROR_UNEXPECTED, ERROR_UNREACHABLE_STATEMENT, ERROR_VARIABLE_NOT_ASSIGNED, ERROR_VOID_RETURN, ERROR_warnings, ERROR_words, ERROR_WRONG_RECEIVER_TYPE, ERROR_WRONG_TARGET_META_ANNOTATION, NOTE_GENERIC_COMPILER_NOTE, SEVERITY_ERROR, SEVERITY_FATAL, SEVERITY_LINT, SEVERITY_NOTE, SEVERITY_WARNING, SEVERITY_ZERO, WARNING_AMBIGUOUS_DOC_REFERENCE, WARNING_ASSERT_IDENTIFIER, WARNING_DOC_REFERENCE_NOT_FOUND, WARNING_FINALLY_CANNOT_COMPLETE, WARNING_GENERIC_COMPILER_WARNING, WARNING_IMPORT_UNUSED, WARNING_INVALID_NAME, WARNING_METHOD_NAME, WARNING_SWITCH_CASE_FALL_THROUGH, WARNING_UNCHECKED_CONVERSION
OPT_ADD, OPT_ADDASG, OPT_AND, OPT_ANNOTATION, OPT_ARRAYCONST, OPT_ASG, OPT_base, OPT_BITAND, OPT_BITANDASG, OPT_BITNOT, OPT_BITOR, OPT_BITORASG, OPT_BITXOR, OPT_BITXORASG, OPT_CLASS_LITERAL, OPT_COND, OPT_DEREF, OPT_DIV, OPT_DIVASG, OPT_DOT, OPT_EQ, OPT_GE, OPT_GT, OPT_INSTANCEOF, OPT_INTERSECTION_TYPE, OPT_invalid, OPT_INVOKE, OPT_LAMBDA, OPT_LE, OPT_LIST, OPT_LITERAL, OPT_LSH, OPT_LSHASG, OPT_LT, OPT_max, OPT_METHOD_REFERENCE, OPT_MINUS, OPT_MINUSASG, OPT_MOD, OPT_MODASG, OPT_MUL, OPT_MULASG, OPT_NEGATIVE, OPT_NESTEXP, OPT_NEWARRAY, OPT_NEWOBJECT, OPT_NOT, OPT_NOTEQ, OPT_OR, OPT_POSITIVE, OPT_POSTDEC, OPT_POSTINC, OPT_precedence, OPT_PREDEC, OPT_PREINC, OPT_QUALIFIED_SUPER, OPT_QUALIFIED_THIS, OPT_RSH, OPT_RSHASG, OPT_SIMPLE_NAME, OPT_tokens, OPT_TYPE, OPT_TYPECAST, OPT_URSH, OPT_URSHASG, OPT_words
DW_values, DW_words, J2SE_13, J2SE_14, J2SE_15, J2SE_16, J2SE_17, J2SE_18, J2SE_MAX, J2SE_MIN, KW_ABSTRACT, KW_ASSERT, KW_base, KW_BOOLEAN, KW_BREAK, KW_BYTE, KW_CASE, KW_CATCH, KW_CHAR, KW_CLASS, KW_CONST, KW_CONTINUE, KW_DEFAULT, KW_DO, KW_DOUBLE, KW_ELSE, KW_ENUM, KW_EXTENDS, KW_FINAL, KW_FINALLY, KW_FLOAT, KW_FOR, KW_GOTO, KW_IF, KW_IMPLEMENTS, KW_IMPORT, KW_INSTANCEOF, KW_INT, KW_INTERFACE, KW_j2se13_max, KW_j2se14_max, KW_j2se15_max, KW_j2se16_max, KW_j2se17_max, KW_j2se18_max, KW_LONG, KW_max, KW_NATIVE, KW_NEW, KW_PACKAGE, KW_PRIVATE, KW_PROTECTED, KW_PUBLIC, KW_RETURN, KW_SHORT, KW_STATIC, KW_STRICTFP, KW_SUPER, KW_SWITCH, KW_SYNCHRONIZED, KW_THIS, KW_THROW, KW_THROWS, KW_TRANSIENT, KW_TRY, KW_VOID, KW_VOLATILE, KW_WHILE, KW_words, OP_AND_ASG, OP_ASG, OP_AT, OP_base, OP_BINAND, OP_binary, OP_BINNOT, OP_BINOR, OP_BINXOR, OP_COLON, OP_COLONCOLON, OP_COMMA, OP_DEC, OP_DIV, OP_DIV_ASG, OP_DOT, OP_ELLIPSIS, OP_EQ, OP_GE, OP_GT, OP_HASH, OP_INC, OP_LBRACE, OP_LBRACKET, OP_LE, OP_LOGAND, OP_LOGNOT, OP_LOGOR, OP_LPAREN, OP_LSH, OP_LSH_ASG, OP_LT, OP_max, OP_MINUS, OP_MINUS_ASG, OP_MOD, OP_MOD_ASG, OP_MUL, OP_MUL_ASG, OP_NE, OP_OR_ASG, OP_PLUS, OP_PLUS_ASG, OP_prefix, OP_QUES, OP_RBRACE, OP_RBRACKET, OP_RIGHT_ARROW, OP_RPAREN, OP_RSH, OP_RSH_ASG, OP_SEMI, OP_URSH, OP_URSH_ASG, OP_words, OP_XOR_ASG, TK_base, TK_BOOLEAN_LITERAL, TK_CHAR_LITERAL, TK_DOC_COMMENT, TK_DOUBLE_LITERAL, TK_EOF, TK_FLOAT_LITERAL, TK_IDENTIFIER, TK_INT_LITERAL, TK_LITERAL_base, TK_LITERAL_max, TK_LONG_LITERAL, TK_max, TK_MULTI_COMMENT, TK_NULL_LITERAL, TK_SINGLE_COMMENT, TK_SQLJ, TK_STRING_LITERAL, TK_WHITESPACE, TK_words
ALIGN_ANONYMOUS_CLASS, ALIGN_ARRAY_INITIALIZERS, ALIGN_VARIABLE_NAMES, BLANKLINES_AFTER_LAST_MEMBER, BLANKLINES_BEFORE_DOC_COMMENT, BLANKLINES_BEFORE_FIELD, BLANKLINES_BEFORE_FIRST_CLASS, BLANKLINES_BEFORE_FIRST_MEMBER, BLANKLINES_BEFORE_MEMBER_CLASS, BLANKLINES_BEFORE_METHOD, BLANKLINES_EMPTY_ANONYMOUS, BLANKLINES_EMPTY_BLOCK, BLANKLINES_EMPTY_CLASS, BLANKLINES_EMPTY_METHOD, BLANKLINES_IMPORTS_AFTER, BLANKLINES_PACKAGE_AFTER, BLANKLINES_PRESERVE_COUNT, CLONE_QUALIFIES_TYPES, CUDDLE_EMPTY_BRACES, FALSE, IGNORED_I, IGNORED_Z, IMPORT_GROUP_IMPORTS, IMPORT_GROUP_PACKAGE_DEPTH, IMPORT_INNER_CLASS_NAME, IMPORT_NARROW_MEMBERS_THRESHOLD, IMPORT_NARROW_THRESHOLD, INDENT_BLOCK_CHILDREN, INDENT_CLASS_MEMBERS, INDENT_CONTROL_BLOCKS, INDENT_NUM_SPACES, INDENT_REPLACE_WITH_TABS, INDENT_SWITCH_CASES, INDENT_TAB_SIZE, INDENT_TRAILING_COMMENTS, INTEGER_ALWAYS_WRAP, INTEGER_NEVER_WRAP, INTEGER_WRAP_IF_LONG, MEMBER_ORDER, NEWLINE_AFTER_SWITCH_CASE, NEWLINE_ANONYMOUS_CLASS_BRACES, NEWLINE_ARRAY_BRACES, NEWLINE_BLOCK_BRACES, NEWLINE_CASE_BRACES, NEWLINE_CATCH, NEWLINE_CATCH_BRACES, NEWLINE_CLASS_BRACES, NEWLINE_DO_BRACES, NEWLINE_ELSE, NEWLINE_ELSE_BRACES, NEWLINE_EXTENDS, NEWLINE_FINALLY, NEWLINE_FINALLY_BRACES, NEWLINE_FOR_BRACES, NEWLINE_IF_BRACES, NEWLINE_IMPLEMENTS, NEWLINE_METHOD_BRACES, NEWLINE_STATIC_INITIALIZER_BRACES, NEWLINE_SWITCH_BRACES, NEWLINE_SYNCHRONIZED_BRACES, NEWLINE_THROWS, NEWLINE_TRY_BRACES, NEWLINE_WHILE, NEWLINE_WHILE_BRACES, ONE, PREFERENCES_base, PREFERENCES_defaults, PREFERENCES_explanations, PREFERENCES_keys, PREFERENCES_max, PREFERENCES_sun, SPACE_ARGUMENTS_BEFORE, SPACE_ASSIGN_AROUND, SPACE_BINARYOP_AROUND, SPACE_BRACES_AROUND, SPACE_BRACKETS_WITHIN, SPACE_COLON_AFTER, SPACE_COLON_BEFORE, SPACE_COMMA_AFTER, SPACE_COMMA_BEFORE, SPACE_KEYWORD_AFTER, SPACE_LAMBDA_OPERATOR_AROUND, SPACE_OPENBRACE_BEFORE, SPACE_PARAMETERS_BEFORE, SPACE_PARENS_WITHIN, SPACE_QUESTION_AFTER, SPACE_QUESTION_BEFORE, SPACE_SEMICOLON_AFTER, SPACE_SEMICOLON_BEFORE, SPACE_TYPECAST_AFTER, TRI_ALWAYS_WRAP, TRI_NEVER_WRAP, TRI_WRAP_IF_LONG, TRUE, TWO, UNKNOWN_I, UNKNOWN_Z, WRAP_ALIGN, WRAP_ANNOTATIONS, WRAP_ANONYMOUS_CLASS_ASSIGNMENTS, WRAP_ARRAY_CONSTANT, WRAP_ASSERT_OPERATORS, WRAP_BEFORE_OPERATORS, WRAP_BEFORE_TERNARY_OPERATORS, WRAP_BINARY_OPERATOR, WRAP_CLASS_ANNOTATIONS, WRAP_DOT_CHAIN, WRAP_EXTENDS, WRAP_FIELD_ANNOTATIONS, WRAP_FOR_STATEMENT, WRAP_IMPLEMENTS, WRAP_INVOKE_ARGUMENTS, WRAP_LINE_WIDTH, WRAP_LOCAL_VARIABLE_ANNOTATIONS, WRAP_MARKER_ANNOTATIONS, WRAP_METHOD_ANNOTATIONS, WRAP_MODIFIERS, WRAP_PARAMETER_ANNOTATIONS, WRAP_PARAMETER_LIST, WRAP_QUES_OPERATOR, WRAP_STRING_EOL_CONCATENATIONS, WRAP_THROWS, WRAP_TYPE_ANNOTATIONS, ZERO
Constructor and Description |
---|
JavaBrowseHelper(JavaBrowseContext browseContext) |
Modifier and Type | Method and Description |
---|---|
void |
acquire() |
protected JavaHasType |
analyze(oracle.jdevimpl.java.util.FoundSymbol outSymbol,
boolean allowDecl,
boolean reportErrors)
Used by both Browse Symbol and Browse Doc.
|
protected static SourceMethod |
determineDeclaration(SourceElement elementAt) |
JavaBrowseContext |
getBrowseContext() |
Context |
getContext() |
JavaManager |
getProvider() |
java.net.URL |
getURL() |
boolean |
isBrowseable()
Checks if the cursor location in the buffer is browseable.
|
void |
release() |
public JavaBrowseHelper(JavaBrowseContext browseContext)
public JavaBrowseContext getBrowseContext()
public Context getContext()
getContext
in class oracle.jdevimpl.java.Context2ParserHelper
public java.net.URL getURL()
getURL
in class oracle.jdevimpl.java.Context2ParserHelper
public JavaManager getProvider()
public void acquire()
public void release()
public boolean isBrowseable()
protected JavaHasType analyze(oracle.jdevimpl.java.util.FoundSymbol outSymbol, boolean allowDecl, boolean reportErrors)
Three possible outcomes. 1) Target unfound, outSymbol.string set to null, error reported, and null is returned. 2) Target found, browse failed, outSymbol.string set to the browse target, error is reported, and null is returned. 3) Target found, browse succeeded, outSymbol.string set to the browse target and the BaseItem is returned.
outSymbol
- The browse target is written to the string
field. The offset fields are set to the browse target offsets or
both -1 if no browse target was found.protected static SourceMethod determineDeclaration(SourceElement elementAt)