Spec-Zone.ru › OpenJDK 21

Класс 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(Object oldInstance)
Возвращает предварительное значение для oldInstance в среде, созданной этим потоком.
ExceptionListener getExceptionListener()
Получает обработчик исключений для данного потока.
PersistenceDelegate getPersistenceDelegate(Class<?> type)
Возвращает делегата персистентности для данного типа.
Object remove(Object oldInstance)
Удаляет запись для данного экземпляра, возвращая старую запись.
void setExceptionListener(ExceptionListener exceptionListener)
Устанавливает обработчик исключений для данного потока в exceptionListener.
void setPersistenceDelegate(Class<?> type, PersistenceDelegate delegate)
Связывает указанный делегат персистентности с заданным типом.
void writeExpression(Expression oldExp)
Реализация сначала проверяет, не было ли уже записано выражение с этим значением.
protected void writeObject(Object o)
Записывает указанный объект в выходной поток.
void writeStatement(Statement oldStm)
Записывает оператор oldStm в поток.

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

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

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

Конструктор

public Encoder()
Создаёт Encoder.

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

writeObject

protected void writeObject(Object o)
Записывает указанный объект в выходной поток. Сериализованная форма будет обозначать серию выражений, совместное действие которых создаст эквивалентный объект при чтении входного потока. По умолчанию объект предполагается JavaBean с нуль-аргументным конструктором, состояние которого определяется соответствующими парами методов «setter» и «getter», возвращаемыми методом Introspector.
Параметры:
o - Объект, который должен быть записан в поток.
См. также:
  • XMLDecoder.readObject()

setExceptionListener

public void setExceptionListener(ExceptionListener exceptionListener)
Устанавливает обработчик исключений для этого потока в exceptionListener. Обработчик исключений уведомляется, когда этот поток перехватывает восстанавливаемые исключения.
Параметры:
exceptionListener - Обработчик исключений для этого потока; если null будет использоваться обработчик исключений по умолчанию.
См. также:
  • getExceptionListener()

getExceptionListener

public ExceptionListener getExceptionListener()
Получает обработчик исключений для этого потока.
Возвращает:
Обработчик исключений для этого потока; Вернёт обработчик исключений по умолчанию, если он не был явно установлен.
См. также:
  • setExceptionListener(java.beans.ExceptionListener)

getPersistenceDelegate

public PersistenceDelegate getPersistenceDelegate(Class<?> type)
Возвращает делегат сохранения для данного типа. Делегат сохранения вычисляется, применяя следующие правила в порядке их перечисления:
  1. Если делегат сохранения связан с данным типом с помощью метода setPersistenceDelegate(java.lang.Class<?>, java.beans.PersistenceDelegate), он возвращается.
  2. Затем ищется делегат сохранения по имени, составленному из полного квалифицированного имени данного типа и постфикса "PersistenceDelegate". Например, делегат сохранения для класса Bean должен называться BeanPersistenceDelegate и находиться в том же пакете.
     public class Bean { ... }
     public class BeanPersistenceDelegate { ... }
    Для класса Bean возвращается экземпляр класса BeanPersistenceDelegate.
  3. Если тип является null, возвращается общий внутренний делегат сохранения, который кодирует значение null.
  4. Если тип является объявлением перечисления, возвращается общий внутренний делегат сохранения, который кодирует константы этого перечисления по их именам.
  5. Если тип является примитивным типом или соответствующим обёрткой, возвращается общий внутренний делегат сохранения, который кодирует значения данного типа.
  6. Если тип является массивом, возвращается общий внутренний делегат сохранения, который кодирует массив соответствующего типа и длины, и каждый его элемент, как если бы они были свойствами.
  7. Если тип является прокси, возвращается общий внутренний делегат сохранения, который кодирует экземпляр прокси с использованием метода Proxy.newProxyInstance(java.lang.ClassLoader, java.lang.Class<?>[], java.lang.reflect.InvocationHandler).
  8. Если для этого типа есть BeanInfo с BeanDescriptor, который определяет атрибут "persistenceDelegate", возвращается значение этого атрибута.
  9. Во всех остальных случаях возвращается делегат сохранения по умолчанию. Делегат сохранения по умолчанию предполагает, что тип является JavaBean, подразумевая, что он имеет конструктор по умолчанию и что его состояние может быть охарактеризовано соответствующими парами методов «setter» и «getter», возвращаемыми классом 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(java.lang.Class<?>, java.beans.PersistenceDelegate)
  • Introspector.getBeanInfo(java.lang.Class<?>)
  • BeanInfo.getBeanDescriptor()

setPersistenceDelegate

public void setPersistenceDelegate(Class<?> type, PersistenceDelegate delegate)
Связывает указанный делегат сохранения с данным типом.
Параметры:
type - класс объектов, к которым применяется указанный делегат сохранения
delegate - делегат сохранения для экземпляров данного типа
См. также:
  • getPersistenceDelegate(java.lang.Class<?>)
  • Introspector.getBeanInfo(java.lang.Class<?>)
  • BeanInfo.getBeanDescriptor()

remove

public Object remove(Object oldInstance)
Удаляет запись для данного экземпляра, возвращая старую запись.
Параметры:
oldInstance - Запись, которая должна быть удалена.
Возвращает:
Запись, которая была удалена.
См. также:
  • get(java.lang.Object)

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, 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/java/beans/Encoder.html

Spec-Zone.ru

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