Класс Encoder
java.lang.Object
java.beans.Encoder
- Прямые подклассы:
XMLEncoder
public class Encoder extends Object
Encoder — это класс, который можно использовать для создания файлов или потоков, кодирующих состояние коллекции JavaBeans на основе их открытых API. Encoder вместе со своими делегатами сохранения отвечает за разбиение графа объектов на последовательность Statement и Expression, с помощью которых его можно создать. Подкласс обычно задаёт синтаксис этих выражений в человекочитаемом формате, например в виде исходного кода Java или XML.- Начиная с:
- 1.4
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
Encoder() |
Создаёт Encoder. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
get |
Возвращает предварительное значение для oldInstance в среде, созданной этим потоком. |
ExceptionListener |
getExceptionListener() |
Возвращает обработчик исключений для этого потока. |
PersistenceDelegate |
getPersistenceDelegate |
Возвращает делегат сохранения для указанного типа. |
Object |
remove |
Удаляет запись для данного экземпляра и возвращает старую запись. |
void |
setExceptionListener |
Задаёт для этого потока обработчик исключений exceptionListener. |
void |
setPersistenceDelegate |
Связывает указанный делегат сохранения с заданным типом. |
void |
writeExpression |
Реализация сначала проверяет, было ли уже записано выражение с этим значением. |
protected void |
writeObject |
Записывает указанный объект в выходной поток. |
void |
writeStatement |
Записывает оператор oldStm в поток. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект какому-либо другому объекту. |
protected void |
finalize() |
Устарел, планируется удаление: этот элемент API может быть удалён в будущей версии. Финализация устарела и может быть удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания. |
final void |
wait |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
Encoder
public Encoder()
Создаёт
Encoder.Подробное описание методов
writeObject
protected void writeObject(Object o)
Записывает указанный объект в выходной поток. Сериализованное представление будет содержать последовательность выражений, совокупный эффект которых создаст эквивалентный объект при чтении входного потока. По умолчанию предполагается, что объект является JavaBean с конструктором без параметров, состояние которого определяется соответствующими парами методов «сеттер» и «геттер», возвращаемыми Introspector.
- Параметры:
-
o— объект, который необходимо записать в поток. - См. также:
setExceptionListener
public void setExceptionListener(ExceptionListener exceptionListener)
Задаёт для этого потока обработчик исключений
exceptionListener. Обработчик исключений получает уведомление, когда этот поток перехватывает восстанавливаемые исключения.- Параметры:
-
exceptionListener— обработчик исключений для этого потока; еслиnull, будет использоваться обработчик исключений по умолчанию. - См. также:
getExceptionListener
public ExceptionListener getExceptionListener()
Возвращает обработчик исключений для этого потока.
- Возвращает:
- Обработчик исключений для этого потока. Если он не был задан явно, будет возвращён обработчик исключений по умолчанию.
- См. также:
getPersistenceDelegate
public PersistenceDelegate getPersistenceDelegate(Class<?> type)
Возвращает делегат сохранения для указанного типа. Делегат сохранения выбирается путём последовательного применения следующих правил:
- Если делегат сохранения связан с указанным типом с помощью метода
setPersistenceDelegate(Class, PersistenceDelegate), возвращается этот делегат. - Затем выполняется поиск делегата сохранения по имени, составленному из полного имени указанного типа и суффикса "PersistenceDelegate". Например, делегат сохранения для класса
Beanдолжен называтьсяBeanPersistenceDelegateи находиться в том же пакете.public class Bean { ... } public class BeanPersistenceDelegate { ... }Экземпляр классаBeanPersistenceDelegateвозвращается для классаBean. - Если тип —
null, возвращается общий внутренний делегат сохранения, кодирующий значениеnull. - Если тип является объявлением
enum, возвращается общий внутренний делегат сохранения, который кодирует константы этого перечисления по их именам. - Если тип является примитивным типом или соответствующим типом-оболочкой, возвращается общий внутренний делегат сохранения, который кодирует значения указанного типа.
- Если тип является массивом, возвращается общий внутренний делегат сохранения, который кодирует массив соответствующего типа и длины, а также каждый его элемент как свойство.
- Если тип является прокси-классом, возвращается общий внутренний делегат сохранения, который кодирует экземпляр прокси-класса с помощью метода
Proxy.newProxyInstance(ClassLoader, Class[], InvocationHandler). - Если
BeanInfoдля этого типа содержитBeanDescriptor, в котором определён атрибут "persistenceDelegate", возвращается значение этого атрибута. - Во всех остальных случаях возвращается делегат сохранения по умолчанию. Он предполагает, что тип является JavaBean, то есть имеет конструктор по умолчанию, а его состояние можно определить по соответствующим парам методов «сеттер» и «геттер», возвращаемым классом
Introspector. Конструктором по умолчанию считается конструктор с наибольшим числом параметров, помеченный аннотациейConstructorProperties. Если ни один конструктор не помечен аннотациейConstructorProperties, используется конструктор без параметров. Например, в следующем фрагменте кода будет использоваться конструктор без параметров классаFoo, а для классаBar— конструктор с двумя параметрами.public class Foo { public Foo() { ... } public Foo(int x) { ... } } public class Bar { public Bar() { ... } @ConstructorProperties({"x"}) public Bar(int x) { ... } @ConstructorProperties({"x", "y"}) public Bar(int x, int y) { ... } }
- Параметры:
-
type— класс объектов - Возвращает:
- делегат сохранения для указанного типа
- См. также:
setPersistenceDelegate
public void setPersistenceDelegate(Class<?> type, PersistenceDelegate delegate)
Связывает указанный делегат сохранения с заданным типом.
- Параметры:
-
type— класс объектов, к которым применяется указанный делегат сохранения -
delegate— делегат сохранения для экземпляров указанного типа - См. также:
remove
public Object remove(Object oldInstance)
Удаляет запись для данного экземпляра и возвращает старую запись.
- Параметры:
-
oldInstance— запись, которую необходимо удалить. - Возвращает:
- Удалённая запись.
- См. также:
get
public Object get(Object oldInstance)
Возвращает предварительное значение для
oldInstance в среде, созданной этим потоком. Делегат сохранения может использовать свой метод mutatesTo, чтобы определить, можно ли инициализировать это значение для создания эквивалентного объекта на выходе или же необходимо создать новый объект. Если поток ещё не встречал это значение, возвращается null.- Параметры:
-
oldInstance— экземпляр для поиска. - Возвращает:
- Объект или null, если объект не встречался ранее.
writeStatement
public void writeStatement(Statement oldStm)
Записывает оператор
oldStm в поток. oldStm должен быть записан исключительно в терминах среды вызывающего кода, то есть цель и все аргументы должны принадлежать записываемому графу объектов. Эти выражения представляют собой последовательность выражений «что произошло», которые сообщают выходному потоку, как создать граф объектов, подобный исходному. Реализация этого метода создаёт второе выражение, представляющее то же выражение в среде, которая будет существовать при чтении потока. Для этого достаточно вызвать writeObject для цели и всех аргументов и создать новое выражение с полученными результатами.
- Параметры:
-
oldStm— выражение, которое необходимо записать в поток.
writeExpression
public void writeExpression(Expression oldExp)
Реализация сначала проверяет, было ли уже записано выражение с этим значением. Если нет, выражение клонируется с использованием той же процедуры, что и в
writeStatement, а значение этого выражения согласуется со значением клонированного выражения вызовом writeObject.- Параметры:
-
oldExp— выражение, которое необходимо записать в поток.
© 1993, 2025, 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.