Interface SymbolOccurrence
- All Superinterfaces:
Comparable<SymbolOccurrence>
- All Known Implementing Classes:
IntBasedSymbolOccurrence, ShortBasedSymbolOccurrence
Поля расположения (uri и координаты диапазона) хранятся прямо в записи, а не
в отдельном объекте Location: на больших проектах это убирает второй заголовок
объекта и лишний прыжок по указателю на каждое из миллионов вхождений. URI
шарится, поэтому размножается только запись обращения. Диапазон/позиция при
необходимости строятся на лету (range(), startPosition()).
Координаты диапазона в подавляющем большинстве файлов укладываются в short
(строки/столбцы <= Short.MAX_VALUE). Поэтому реализация выбирается
фабрикой of(OccurrenceType, Symbol, URI, Range): для таких файлов создаётся ShortBasedSymbolOccurrence
(четыре short вместо четырёх int — на 8 байт меньше на экземпляр), для
остальных — IntBasedSymbolOccurrence. Аксессоры координат всегда возвращают
int, поэтому выбор реализации незаметен для вызывающего кода.
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptiondefault intcompareTo(@Nullable SymbolOccurrence other) intintendLine()static SymbolOccurrenceof(OccurrenceType occurrenceType, Symbol symbol, URI uri, int startLine, int startCharacter, int endLine, int endCharacter) Создать обращение к символу по координатам диапазона.static SymbolOccurrenceof(OccurrenceType occurrenceType, Symbol symbol, URI uri, Range range) Создать обращение к символу из диапазона.default Rangerange()intintdefault Positionsymbol()uri()
-
Field Details
-
COMPARATOR
-
-
Method Details
-
occurrenceType
OccurrenceType occurrenceType()- Returns:
- Тип обращения к символу.
-
symbol
Symbol symbol()- Returns:
- Символ, к которому происходит обращение.
-
uri
URI uri()- Returns:
- URI файла, в котором расположено обращение.
-
startLine
int startLine()- Returns:
- Строка начала обращения.
-
startCharacter
int startCharacter()- Returns:
- Столбец начала обращения.
-
endLine
int endLine()- Returns:
- Строка конца обращения.
-
endCharacter
int endCharacter()- Returns:
- Столбец конца обращения.
-
of
Создать обращение к символу из диапазона.- Parameters:
occurrenceType- Тип обращения.symbol- Символ, к которому происходит обращение.uri- URI файла.range- Диапазон обращения.- Returns:
- построенное обращение.
-
of
static SymbolOccurrence of(OccurrenceType occurrenceType, Symbol symbol, URI uri, int startLine, int startCharacter, int endLine, int endCharacter) Создать обращение к символу по координатам диапазона.Если все координаты укладываются в
short, создаётся компактнаяShortBasedSymbolOccurrence, иначе —IntBasedSymbolOccurrence.- Parameters:
occurrenceType- Тип обращения.symbol- Символ, к которому происходит обращение.uri- URI файла.startLine- Строка начала обращения.startCharacter- Столбец начала обращения.endLine- Строка конца обращения.endCharacter- Столбец конца обращения.- Returns:
- построенное обращение.
-
range
- Returns:
- Диапазон обращения.
-
startPosition
- Returns:
- Позиция начала обращения.
-
compareTo
- Specified by:
compareToin interfaceComparable<SymbolOccurrence>
-