Spec-Zone.ru › OpenJDK 8

Класс Encoder

  • java.lang.Object
    • java.beans.Encoder
Прямые известные подклассы:
XMLEncoder

public class Encoder
extends Object

Класс Encoder, который может быть использован для создания файлов или потоков, кодирующих состояние коллекции JavaBeans в терминах их публичных API. Encoder, в сочетании с его делегатами сохранения, отвечает за разбиение графа объектов на серию Statements и Expression, которые могут быть использованы для его создания. Подкласс обычно предоставляет синтаксис для этих выражений, используя какой-либо удобочитаемый формат — например, код на языке Java или XML.

С момента:
1.4

Конструкторы

Конструктор и описание
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()

Методы

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 { ... }
    Экземпляр класса BeanPersistenceDelegate возвращается для класса Bean.
  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, то будет использоваться конструктор без параметров (nullary конструктор). Например, в следующем фрагменте кода будет использоваться конструктор без параметров для класса 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, 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.

Spec-Zone.ru

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