Spec-Zone .ru
спецификации, руководства, описания, API
|
public class DefaultPersistenceDelegate extends PersistenceDelegate
DefaultPersistenceDelegate
конкретная реализация краткого обзора PersistenceDelegate
класс и является делегатом, используемым по умолчанию для классов, о которых никакая информация не доступна. DefaultPersistenceDelegate
обеспечивает, версия эластичная, общедоступная основанная на API персистентность для классов, которые следуют за соглашениями JavaBeans™ без любого класса определенная конфигурация. Ключевые предположения - то, что у класса есть nullary конструктор и что его состояние точно представляется, соответствуя пар методов "метода set" и "метода get" в порядке, они возвращаются Introspector. В дополнение к обеспечению персистентности без кодов для JavaBeans, DefaultPersistenceDelegate
обеспечивает удобное средство произвести персистентное хранение для классов, у которых есть конструктор это, в то время как не nullary, просто требует некоторых значений свойств как параметров.
DefaultPersistenceDelegate(String[])
, Introspector
Конструктор и Описание |
---|
DefaultPersistenceDelegate()
Создает делегата персистентности к классу с nullary конструктором.
|
DefaultPersistenceDelegate(String[] constructorPropertyNames)
Создает делегата персистентности по умолчанию к классу с конструктором, параметрами которого являются значения имен свойства как определено
constructorPropertyNames . |
Модификатор и Тип | Метод и Описание |
---|---|
protected void |
initialize(Class<?> type, Object oldInstance, Object newInstance, Encoder out)
Эта реализация по умолчанию
initialize метод предполагает, что все состояние, сохраненное в объектах этого типа, представляется через соответствующих пар методов "метода set" и "метода get" в порядке, они возвращаются Introspector. |
protected Expression |
instantiate(Object oldInstance, Encoder out)
Эта реализация по умолчанию
instantiate метод возвращает выражение, содержащее предопределенное имя метода, "новое", который обозначает звонок в конструктора с параметрами как определено в DefaultPersistenceDelegate 's конструктор. |
protected boolean |
mutatesTo(Object oldInstance, Object newInstance)
Если число параметров в указанном конструкторе является ненулевым и класс
oldInstance явно объявляет, "равняется" методу, из которого этот метод возвращает значение oldInstance.equals(newInstance) . |
writeObject
public DefaultPersistenceDelegate()
public DefaultPersistenceDelegate(String[] constructorPropertyNames)
constructorPropertyNames
. Параметры конструктора создаются, оценивая имена свойства в порядке, они предоставляются. Чтобы использовать этот класс, чтобы определить единственного привилегированного конструктора для использования в сериализации определенного типа, мы утверждаем имена свойств, которые составляют параметры конструктора. Например, Font
класс, который не определяет nullary конструктора, может быть обработан со следующим делегатом персистентности: new DefaultPersistenceDelegate(new String[]{"name", "style", "size"});
constructorPropertyNames
- Свойство называет для параметров этого конструктора.instantiate(java.lang.Object, java.beans.Encoder)
protected boolean mutatesTo(Object oldInstance, Object newInstance)
oldInstance
явно объявляет, "равняется" методу, из которого этот метод возвращает значение oldInstance.equals(newInstance)
. Иначе, этот метод использует определение суперкласса, которое возвращает true, если классы этих двух экземпляров равны.mutatesTo
в классе PersistenceDelegate
oldInstance
- Экземпляр, который будет скопирован.newInstance
- Экземпляр, который должен быть изменен.newInstance
может быть создан, применяя серию мутаций к oldInstance
.DefaultPersistenceDelegate(String[])
protected Expression instantiate(Object oldInstance, Encoder out)
instantiate
метод возвращает выражение, содержащее предопределенное имя метода, "новое", который обозначает звонок в конструктора с параметрами как определено в DefaultPersistenceDelegate
's конструктор.instantiate
в классе PersistenceDelegate
oldInstance
- Экземпляр, который инстанцируют.out
- Поток вывода кода.oldInstance
.NullPointerException
- если out
null
DefaultPersistenceDelegate(String[])
protected void initialize(Class<?> type, Object oldInstance, Object newInstance, Encoder out)
initialize
метод предполагает, что все состояние, сохраненное в объектах этого типа, представляется через соответствующих пар методов "метода set" и "метода get" в порядке, они возвращаются Introspector. Если дескриптор свойства определяет "переходный" атрибут с помощью значения, равного Boolean.TRUE
свойство игнорируется этой реализацией по умолчанию. Отметьте, что это использование слова "переходный процесс" довольно независимо от полевого модификатора, который используется ObjectOutputStream
. Для каждого непереходного свойства создается выражение, в котором nullary методу "метода get" применяются к oldInstance
. Значение этого выражения является значением свойства в экземпляре, который сериализируется. Если значение этого выражения в клонированной среде mutatesTo
целевое значение, новое значение инициализируется, чтобы сделать это эквивалентным старому значению. В этом случае, потому что значение свойства не изменилось нет никакой потребности вызвать соответствующий метод "метода set", и никакой оператор не испускается. Если не однако, выражение для этого значения заменяется другим выражением (обычно конструктор), и соответствующий метод "метода set" вызывают, чтобы установить новое значение свойства в объекте. Эта схема удаляет информацию по умолчанию из вывода, произведенного потоками, используя этого делегата.
Мимоходом эти операторы к потоку вывода, где они будут выполняться, побочные эффекты, делаются к newInstance
. В большинстве случаев это позволяет проблему свойств, значения которых зависят друг от друга, чтобы фактически помочь процессу сериализации, делая число операторов, которые должны быть записаны меньшему выводу. Вообще, проблема обработки взаимозависимых свойств уменьшается до того из обнаружения порядка на свойства в классе так, что, никакое значение свойства не зависит от значения последующего свойства.
initialize
в классе PersistenceDelegate
oldInstance
- Экземпляр, который будет скопирован.newInstance
- Экземпляр, который должен быть изменен.out
- Поток, которому должны быть записаны любые операторы инициализации.NullPointerException
- если out
null
Introspector.getBeanInfo(java.lang.Class<?>)
, PropertyDescriptor
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.