Spec-Zone.ru › OpenJDK 21

Класс GapContent

java.lang.Object
javax.swing.text.GapContent
Все реализуемые интерфейсы:
Serializable, AbstractDocument.Content
public class GapContent extends Object implements AbstractDocument.Content, Serializable
Реализация интерфейса AbstractDocument.Content, использующая буфер с пробелом, аналогичный используемому в emacs. Базовая структура — массив символов Юникода с пробелом в определенной позиции. Пробел перемещается в позицию изменений, чтобы воспользоваться преимуществами типичного поведения, когда большинство изменений происходит в одном месте. Изменения, которые происходят на границе пробела, обычно недороги, а перемещение пробела обычно дешевле, чем непосредственное перемещение содержимого массива для размещения изменений.

Отслеживание изменений также обычно недорогие. Реализации Position (метки) хранят индекс массива и могут легко рассчитать последовательную позицию из текущей позиции пробела. Изменения требуют только обновления меток между старой и новой границами пробела при перемещении пробела, поэтому обновление меток обычно недорогие. Метки хранятся в отсортированном порядке, поэтому их можно быстро найти с помощью двоичного поиска. Это увеличивает затраты на добавление метки и уменьшает затраты на обновление метки.

Краткое описание конструкторов

Конструктор Описание
GapContent()
Создаёт новый объект GapContent.
GapContent(int initialLength)
Создаёт новый объект GapContent, с указанным начальным размером.

Краткое описание методов

Модификатор и тип Метод Описание
protected Object allocateArray(int len)
Выделение массива для хранения элементов соответствующего типа (который определяется подклассом).
Position createPosition(int offset)
Создание позиции в содержании, которая будет отслеживать изменения при изменении содержимого.
protected final Object getArray()
Доступ к массиву.
protected int getArrayLength()
Получение длины выделенного массива.
void getChars(int where, int len, Segment chars)
Извлечение части содержимого.
protected final int getGapEnd()
Доступ к концу пробела.
protected final int getGapStart()
Доступ к началу пробела.
protected Vector getPositionsInRange(Vector v, int offset, int length)
Возвращает вектор, содержащий экземпляры UndoPosRef для позиций в диапазоне от offset до offset + length.
String getString(int where, int len)
Извлечение части содержимого.
UndoableEdit insertString(int where, String str)
Вставка строки в содержимое.
int length()
Возвращает длину содержимого.
UndoableEdit remove(int where, int nitems)
Удаление части содержимого.
protected void replace(int position, int rmSize, Object addItems, int addSize)
Замена заданной логической позиции в хранилище заданными новыми элементами.
protected void resetMarksAtZero()
Сброс всех меток, у которых смещение равно 0, чтобы установить и их индекс в ноль.
protected void shiftEnd(int newSize)
Увеличение размера пробела, перемещение необходимых данных и обновление соответствующих меток.
protected void shiftGap(int newGapStart)
Перемещение начала пробела в новое местоположение без изменения размера пробела.
protected void shiftGapEndUp(int newGapEnd)
Корректировка конца пробела вверх.
protected void shiftGapStartDown(int newGapStart)
Корректировка конца пробела вниз.
protected void updateUndoPositions(Vector positions, int offset, int length)
Сброс местоположения для всех экземпляров UndoPosRef в positions.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

GapContent

public GapContent()
Создаёт новый объект GapContent. Начальный размер по умолчанию равен 10.

GapContent

public GapContent(int initialLength)
Создаёт новый объект GapContent с указанным начальным размером. Начальный размер не может быть меньше 2, чтобы обеспечить место для предполагаемого разрыва и пробела.
Параметры:
initialLength - начальный размер

Подробное описание методов

allocateArray

protected Object allocateArray(int len)
Выделяет массив для хранения элементов соответствующего типа (который определяется подклассом).
Параметры:
len - длина массива
Возвращает:
массив Java некоторого типа

getArrayLength

protected int getArrayLength()
Получение длины выделенного массива.
Возвращает:
длина массива

length

public int length()
Возвращает длину содержимого.
Указано в:
length в интерфейсе AbstractDocument.Content
Возвращает:
длина >= 1
См. также:
  • AbstractDocument.Content.length()

insertString

public UndoableEdit insertString(int where, String str) throws BadLocationException
Вставка строки в содержимое.
Указано в:
insertString в интерфейсе AbstractDocument.Content
Параметры:
where - начальная позиция >= 0, < length()
str - строка для вставки, не null
Возвращает:
объект UndoableEdit для отмены
Исключение:
BadLocationException - если указанная позиция некорректна
См. также:
  • AbstractDocument.Content.insertString(int, java.lang.String)

remove

public UndoableEdit remove(int where, int nitems) throws BadLocationException
Удаление части содержимого.
Указано в:
remove в интерфейсе AbstractDocument.Content
Параметры:
where - начальная позиция >= 0, где + nitems < length()
nitems - количество символов для удаления >= 0
Возвращает:
объект UndoableEdit для отмены
Исключение:
BadLocationException - если указанная позиция некорректна
См. также:
  • AbstractDocument.Content.remove(int, int)

getString

public String getString(int where, int len) throws BadLocationException
Извлечение части содержимого.
Указано в:
getString в интерфейсе AbstractDocument.Content
Параметры:
where - начальная позиция >= 0
len - длина для извлечения >= 0
Возвращает:
строка, представляющая содержимое
Исключение:
BadLocationException - если указанная позиция некорректна
См. также:
  • AbstractDocument.Content.getString(int, int)

getChars

public void getChars(int where, int len, Segment chars) throws BadLocationException
Извлечение части содержимого. Если необходимое содержимое охватывает пробел, мы копируем содержимое. Если необходимое содержимое не охватывает пробел, возвращается фактическое хранилище, чтобы избежать копирования, поскольку оно непрерывно.
Указано в:
getChars в интерфейсе AbstractDocument.Content
Параметры:
where - начальная позиция >= 0, где + len <= length()
len - количество символов для извлечения >= 0
chars - объект Segment для возврата символов
Исключение:
BadLocationException - если указанная позиция некорректна
См. также:
  • AbstractDocument.Content.getChars(int, int, javax.swing.text.Segment)

createPosition

public Position createPosition(int offset) throws BadLocationException
Создаёт позицию в содержимом, которая будет отслеживать изменения по мере изменения содержимого.
Указано в:
createPosition в интерфейсе AbstractDocument.Content
Параметры:
offset - смещение для отслеживания >= 0
Возвращает:
позицию
Исключение:
BadLocationException - если указанная позиция некорректна

shiftEnd

protected void shiftEnd(int newSize)
Увеличить пробел, перемещая необходимые данные и обновляя соответствующие метки.
Параметры:
newSize - новая ёмкость

shiftGap

protected void shiftGap(int newGapStart)
Переместить начало пробела в новое местоположение без изменения размера пробела. Это перемещает данные в массиве и обновляет метки соответственно.
Параметры:
newGapStart - новое начало пробела

resetMarksAtZero

protected void resetMarksAtZero()
Сбрасывает все метки, имеющие смещение 0, чтобы у них тоже было значение индекса 0.

shiftGapStartDown

protected void shiftGapStartDown(int newGapStart)
Изменить конец пробела вниз. Это не перемещает данные, но обновляет любые метки, затронутые изменением границ. Все метки от старого начала пробела до нового начала пробела сжимаются до конца пробела (их расположение было удалено).
Параметры:
newGapStart - новое начало пробела

shiftGapEndUp

protected void shiftGapEndUp(int newGapEnd)
Изменить конец пробела вверх. Это не перемещает данные, но обновляет любые метки, затронутые изменением границ. Все метки от старого конца пробела до нового конца пробела сжимаются до конца пробела (их расположение было удалено).
Параметры:
newGapEnd - новый конец пробела

getPositionsInRange

protected Vector getPositionsInRange(Vector v, int offset, int length)
Возвращает вектор, содержащий экземпляры UndoPosRef для позиций в диапазоне от offset до offset + length. Если v не null, соответствующие позиции размещаются в нём. Возвращается вектор с полученными позициями.
Параметры:
v - вектор для использования, создаётся новый при null
offset - начальное смещение >= 0
length - длина >= 0
Возвращает:
набор экземпляров

updateUndoPositions

protected void updateUndoPositions(Vector positions, int offset, int length)
Сбрасывает расположение для всех экземпляров UndoPosRef в positions.

Предназначено для внутреннего использования и, как правило, не представляет интереса для подклассов.

Параметры:
positions - экземпляры UndoPosRef для сброса
offset - место, куда была вставлена строка
length - длина вставленной строки

getArray

protected final Object getArray()
Доступ к массиву. Фактический тип массива известен только подклассу.
Возвращает:
массив Java некоторого типа

getGapStart

protected final int getGapStart()
Доступ к началу пробела.
Возвращает:
начало пробела

getGapEnd

protected final int getGapEnd()
Доступ к концу пробела.
Возвращает:
конец пробела

replace

protected void replace(int position, int rmSize, Object addItems, int addSize)
Заменяет заданную логическую позицию в хранилище заданными новыми элементами. Это переместит пробел в область изменения, если пробел не расположен в месте изменения.
Параметры:
position - место для замены. Это не место в базовом массиве хранения, а место в непрерывном пространстве, моделируемом.
rmSize - количество элементов для удаления
addItems - новые элементы для размещения в хранилище.
addSize - количество добавляемых элементов

© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/javax/swing/text/GapContent.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API