Класс AbstractWriter
- java.lang.Object
-
- javax.swing.text.AbstractWriter
- Прямые известные подклассы:
- HTMLWriter, MinimalHTMLWriter
public abstract class AbstractWriter extends Object
AbstractWriter — это абстрактный класс, который фактически выполняет работу по записи дерева элементов, включая атрибуты. По умолчанию длина строки составляет 100 символов, но это значение может быть установлено подклассами.
Поля
| Модификатор и тип | Поле и описание |
|---|---|
protected static char |
NEWLINE Как модель пакетов текста представляет новые строки. |
Конструкторы
| Модификатор | Конструктор и описание |
|---|---|
protected |
AbstractWriter(Writer w,
Document doc) Создаёт новый AbstractWriter. |
protected |
AbstractWriter(Writer w,
Document doc,
int pos,
int len) Создаёт новый AbstractWriter. |
protected |
AbstractWriter(Writer w,
Element root) Создаёт новый AbstractWriter. |
protected |
AbstractWriter(Writer w,
Element root,
int pos,
int len) Создаёт новый AbstractWriter. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
protected void |
decrIndent() Уменьшает уровень отступа. |
protected boolean |
getCanWrapLines() Возвращает, могут ли строки переноситься. |
protected int |
getCurrentLineLength() Возвращает текущую длину строки. |
protected Document |
getDocument() Получает документ. |
protected ElementIterator |
getElementIterator() Получает ElementIterator. |
int |
getEndOffset() Возвращает последний смещение для вывода. |
protected int |
getIndentLevel() Возвращает текущий уровень отступа. |
protected int |
getIndentSpace() Возвращает количество пробелов для отступа. |
protected int |
getLineLength() Возвращает максимальную длину строки. |
String |
getLineSeparator() Возвращает строку, используемую для представления новых строк. |
int |
getStartOffset() Возвращает первое смещение для вывода. |
protected String |
getText(Element elem) Возвращает текст, связанный с элементом. |
protected Writer |
getWriter() Возвращает Writer, используемый для вывода содержимого. |
protected void |
incrIndent() Увеличивает уровень отступа. |
protected void |
indent() Выполняет отступ. |
protected boolean |
inRange(Element next) Этот метод определяет, находится ли текущий элемент в указанном диапазоне. |
protected boolean |
isLineEmpty() Возвращает true, если текущая строка должна считаться пустой. |
protected void |
output(char[] content,
int start,
int length) Последний этап записи содержимого. |
protected void |
setCanWrapLines(boolean newValue) Устанавливает возможность переноса строк. |
protected void |
setCurrentLineLength(int length) Устанавливает текущую длину строки. |
protected void |
setIndentSpace(int space) Позволяет подклассам указать, сколько пробелов соответствует одному отступу. |
protected void |
setLineLength(int l) Позволяет подклассам установить количество символов, которые должны быть записаны в строке. |
void |
setLineSeparator(String value) Устанавливает строку, используемую для представления новых строк. |
protected void |
text(Element elem) Выводит текст. |
protected abstract void |
write() Этот абстрактный метод должен быть реализован подклассами. |
protected void |
write(char ch) Выводит символ. |
protected void |
write(char[] chars,
int startIndex,
int length) Все методы записи вызывают этот. |
protected void |
write(String content) Выводит строку. |
protected void |
writeAttributes(AttributeSet attr) Выводит набор атрибутов в виде пар «имя = значение». |
protected void |
writeLineSeparator() Выводит разделитель строк. |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Поля
NEWLINE
protected static final char NEWLINE
Как пакет текстов моделирует новые строки.
- См. также:
-
getLineSeparator(), Значения постоянных полей
Конструкторы
AbstractWriter
protected AbstractWriter(Writer w,
Document doc) Создает новый AbstractWriter. Инициализирует ElementIterator с корнем документа по умолчанию.
- Параметры:
-
w- объект Writer. -
doc- объект Document
AbstractWriter
protected AbstractWriter(Writer w,
Document doc,
int pos,
int len) Создает новый AbstractWriter. Инициализирует ElementIterator с переданным элементом.
- Параметры:
-
w- объект Writer -
doc- элемент Element -
pos- Позиция в документе для извлечения содержимого. -
len- Количество для записи.
AbstractWriter
protected AbstractWriter(Writer w,
Element root) Создает новый AbstractWriter. Инициализирует ElementIterator с переданным элементом.
- Параметры:
-
w- объект Writer -
root- элемент Element
AbstractWriter
protected AbstractWriter(Writer w,
Element root,
int pos,
int len) Создает новый AbstractWriter. Инициализирует ElementIterator с переданным элементом.
- Параметры:
-
w- объект Writer -
root- элемент Element -
pos- Позиция в документе для извлечения содержимого. -
len- Количество для записи.
Методы
getStartOffset
public int getStartOffset()
Возвращает начальную позицию для вывода.
- С:
- 1.3
getEndOffset
public int getEndOffset()
Возвращает конечную позицию для вывода.
- С:
- 1.3
getElementIterator
protected ElementIterator getElementIterator()
Получает ElementIterator.
- Возвращает:
- объект ElementIterator.
getWriter
protected Writer getWriter()
Возвращает объект Writer, используемый для вывода содержимого.
- С:
- 1.3
getDocument
protected Document getDocument()
Получает документ.
- Возвращает:
- объект Document.
inRange
protected boolean inRange(Element next)
Этот метод определяет, находится ли текущий элемент в заданном диапазоне. Если диапазон не указан, он инициализируется всем документом. inRange() возвращает true, если заданный диапазон пересекается с диапазоном элемента.
- Параметры:
-
next- элемент Element. - Возвращает:
- логическое значение, указывающее, находится ли элемент в диапазоне.
write
protected abstract void write()
throws IOException,
BadLocationException Этот абстрактный метод должен быть реализован подклассами. Он отвечает за итерацию по элементам и использование методов write() для генерации вывода в нужном формате.
- Выбрасывает:
IOExceptionBadLocationException
getText
protected String getText(Element elem)
throws BadLocationException Возвращает текст, связанный с элементом. Здесь предполагается, что элемент является листом. Выбрасывает исключение BadLocationException при возникновении.
- Параметры:
-
elem- элементElement - Возвращает:
- текст в виде
String - Выбрасывает:
-
BadLocationException- если pos представляет недопустимую позицию в документе
text
protected void text(Element elem)
throws BadLocationException,
IOException Записывает текст. Если при вызове конструктора был задан диапазон, записывается только соответствующий диапазон текста.
- Параметры:
-
elem- элемент Element. - Выбрасывает:
-
IOException- при любой ошибке ввода-вывода -
BadLocationException- если pos представляет недопустимую позицию в документе.
setLineLength
protected void setLineLength(int l)
Позволяет подклассам устанавливать количество символов, которые они хотят записать в строку. По умолчанию — 100.
- Параметры:
-
l- максимальная длина строки.
getLineLength
protected int getLineLength()
Возвращает максимальную длину строки.
- С:
- 1.3
setCurrentLineLength
protected void setCurrentLineLength(int length)
Устанавливает текущую длину строки.
- С:
- 1.3
getCurrentLineLength
protected int getCurrentLineLength()
Возвращает текущую длину строки.
- С:
- 1.3
isLineEmpty
protected boolean isLineEmpty()
Возвращает true, если текущую строку следует считать пустой. Это верно, когда getCurrentLineLength == 0 || indent был вызван в пустой строке.
- С:
- 1.3
setCanWrapLines
protected void setCanWrapLines(boolean newValue)
Устанавливает, разрешены ли переводы строк. Это можно переключать во время записи строк. Например, при выводе HTML это может быть установлено в false при выводе строки с кавычками.
- С:
- 1.3
getCanWrapLines
protected boolean getCanWrapLines()
Возвращает значение, определяющее, разрешены ли переносы строк. Если это false, символы разделителя строк не выводятся.
- С:
- 1.3
setIndentSpace
protected void setIndentSpace(int space)
Позволяет подклассам указать, сколько пробелов соответствует отступу. При отступе уровень отступа умножается на эту величину. По умолчанию — 2.
- Параметры:
-
space- целое число, представляющее соответствие пробелов отступу.
getIndentSpace
protected int getIndentSpace()
Возвращает количество пробелов для отступа.
- С:
- 1.3
setLineSeparator
public void setLineSeparator(String value)
Устанавливает строку, используемую для представления новых строк. Инициализируется в конструкторе из документа или системной переменной line.separator.
- С:
- 1.3
getLineSeparator
public String getLineSeparator()
Возвращает строку, используемую для представления новых строк.
- С:
- 1.3
incrIndent
protected void incrIndent()
Увеличивает уровень отступа. Если отступ приведет к getIndentSpace() *getIndentLevel() больше, чем getLineLength(), отступ не будет выполнен.
decrIndent
protected void decrIndent()
Уменьшает уровень отступа.
getIndentLevel
protected int getIndentLevel()
Возвращает текущий уровень отступа. То есть количество вызовов incrIndent минус количество вызовов decrIndent.
- С:
- 1.3
indent
protected void indent()
throws IOException Выполняет отступ. Количество выведенных пробелов равно уровню отступа, умноженному на соответствие пробелов отступу. Если текущая строка пустая, это не сделает её таковой.
- Выбрасывает:
-
IOException- при любой ошибке ввода-вывода
write
protected void write(char ch)
throws IOException Записывает символ. Это реализовано для вызова метода write, принимающего char[].
- Параметры:
-
ch- символ. - Выбрасывает:
-
IOException- при любой ошибке ввода-вывода
write
protected void write(String content)
throws IOException Записывает строку. Это реализовано для вызова метода write, принимающего char[].
- Параметры:
-
content- строка. - Выбрасывает:
-
IOException- при любой ошибке ввода-вывода
writeLineSeparator
protected void writeLineSeparator()
throws IOException Записывает разделитель строк. Это вызов output напрямую, а также устанавливает lineLength в 0.
- Выбрасывает:
IOException- С:
- 1.3
write
protected void write(char[] chars,
int startIndex,
int length)
throws IOException Все методы write вызываются в этом методе. Если getCanWrapLines() возвращает false, это вызовет output с каждой последовательностью chars без NEWLINE, за которым следует вызов writeLineSeparator. С другой стороны, если getCanWrapLines() возвращает true, это разделит строку по мере необходимости, чтобы getLineLength выполнялась. Единственное исключение — если текущая строка не содержит пробелов и не поместится, в этом случае длина строки превысит getLineLength.
- Выбрасывает:
IOException- С:
- 1.3
writeAttributes
protected void writeAttributes(AttributeSet attr)
throws IOException Выводит набор атрибутов в виде пар " <имя>=<значение>". Выбрасывает исключение IOException при возникновении.
- Параметры:
-
attr- атрибуты AttributeSet. - Выбрасывает:
-
IOException- при любой ошибке ввода-вывода
output
protected void output(char[] content,
int start,
int length)
throws IOException Последний этап записи содержимого. Все методы write в конечном итоге попадают в этот метод, который вызывает write на объекте Writer.
Этот метод также обновляет длину строки на основе length. Если этот метод вызывается для вывода новой строки, текущая длина строки должна быть сброшена, так как она больше не будет действительной. Если это нужно сделать вызывающей стороне. Используйте writeLineSeparator для вывода новой строки, что позволит правильно обновить текущую длину строки.
- Выбрасывает:
IOException- С:
- 1.3
© 1993, 2020, 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.