Spec-Zone.ru › OpenJDK 17

Класс 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

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

Encoder

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. Если тип является объявлением enum , возвращается общий внутренний делегат сохранения, который кодирует константы этой перечисления по их именам.
  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, 2021, 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/17/docs/api/java.desktop/java/beans/Encoder.html

Spec-Zone.ru

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