java.lang.Objectjava.beans.PersistenceDelegate
java.beans.DefaultPersistenceDelegate
public class DefaultPersistenceDelegate
The DefaultPersistenceDelegate is a concrete implementation of
the abstract PersistenceDelegate class and
is the delegate used by default for classes about
which no information is available. The DefaultPersistenceDelegate
provides, version resilient, public API-based persistence for
classes that follow the JavaBeans conventions without any class specific
configuration.
The key assumptions are that the class has a nullary constructor
and that its state is accurately represented by matching pairs
of "setter" and "getter" methods in the order they are returned
by the Introspector.
In addition to providing code-free persistence for JavaBeans,
the DefaultPersistenceDelegate provides a convenient means
to effect persistent storage for classes that have a constructor
that, while not nullary, simply requires some property values
as arguments.
DefaultPersistenceDelegate(String[]),
Introspector| Constructor Summary | |
|---|---|
DefaultPersistenceDelegate()
Creates a persistence delegate for a class with a nullary constructor. |
|
DefaultPersistenceDelegate(String[] constructorPropertyNames)
Creates a default persistence delegate for a class with a constructor whose arguments are the values of the property names as specified by constructorPropertyNames. |
|
| Method Summary | |
|---|---|
protected void |
initialize(Class<?> type,
Object oldInstance,
Object newInstance,
Encoder out)
This default implementation of the initialize method assumes
all state held in objects of this type is exposed via the
matching pairs of "setter" and "getter" methods in the order
they are returned by the Introspector. |
protected Expression |
instantiate(Object oldInstance,
Encoder out)
This default implementation of the instantiate method returns
an expression containing the predefined method name "new" which denotes a
call to a constructor with the arguments as specified in
the DefaultPersistenceDelegate's constructor. |
protected boolean |
mutatesTo(Object oldInstance,
Object newInstance)
If the number of arguments in the specified constructor is non-zero and the class of oldInstance explicitly declares an "equals" method
this method returns the value of oldInstance.equals(newInstance). |
| Methods inherited from class java.beans.PersistenceDelegate |
|---|
writeObject |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public DefaultPersistenceDelegate()
public DefaultPersistenceDelegate(String[] constructorPropertyNames)
constructorPropertyNames.
The constructor arguments are created by
evaluating the property names in the order they are supplied.
To use this class to specify a single preferred constructor for use
in the serialization of a particular type, we state the
names of the properties that make up the constructor's
arguments. For example, the Font class which
does not define a nullary constructor can be handled
with the following persistence delegate:
constructorPropertyNames - The property names for the arguments of this constructor.instantiate(java.lang.Object, java.beans.Encoder)| Method Detail |
|---|
protected boolean mutatesTo(Object oldInstance, Object newInstance)
oldInstance explicitly declares an "equals" method
this method returns the value of oldInstance.equals(newInstance).
Otherwise, this method uses the superclass's definition which returns true if the
classes of the two instances are equal.
mutatesTo in class PersistenceDelegateoldInstance - The instance to be copied.newInstance - The instance that is to be modified.
newInstance may be
created by applying a series of mutations to oldInstance.DefaultPersistenceDelegate(String[])protected Expression instantiate(Object oldInstance, Encoder out)
instantiate method returns
an expression containing the predefined method name "new" which denotes a
call to a constructor with the arguments as specified in
the DefaultPersistenceDelegate's constructor.
instantiate in class PersistenceDelegateoldInstance - The instance to be instantiated.out - The code output stream.
oldInstance.DefaultPersistenceDelegate(String[])protected void initialize(Class<?> type, Object oldInstance, Object newInstance, Encoder out)
initialize method assumes
all state held in objects of this type is exposed via the
matching pairs of "setter" and "getter" methods in the order
they are returned by the Introspector. If a property descriptor
defines a "transient" attribute with a value equal to
Boolean.TRUE the property is ignored by this
default implementation. Note that this use of the word
"transient" is quite independent of the field modifier
that is used by the ObjectOutputStream.
For each non-transient property, an expression is created
in which the nullary "getter" method is applied
to the oldInstance. The value of this
expression is the value of the property in the instance that is
being serialized. If the value of this expression
in the cloned environment mutatesTo the
target value, the new value is initialized to make it
equivalent to the old value. In this case, because
the property value has not changed there is no need to
call the corresponding "setter" method and no statement
is emitted. If not however, the expression for this value
is replaced with another expression (normally a constructor)
and the corresponding "setter" method is called to install
the new property value in the object. This scheme removes
default information from the output produced by streams
using this delegate.
In passing these statements to the output stream, where they
will be executed, side effects are made to the newInstance.
In most cases this allows the problem of properties
whose values depend on each other to actually help the
serialization process by making the number of statements
that need to be written to the output smaller. In general,
the problem of handling interdependent properties is reduced to
that of finding an order for the properties in
a class such that no property value depends on the value of
a subsequent property.
initialize in class PersistenceDelegateoldInstance - The instance to be copied.newInstance - The instance that is to be modified.out - The stream to which any initialization statements should be written.Introspector.getBeanInfo(java.lang.Class>),
PropertyDescriptorCes informations proviennent du site de http://java.sun.com
Le contenu de cette page provient du site de Sun, et est généré depuis un cache sur l'infobrol après certains traitements automatisés. La présentation peut donc différer du document original, mais le contenu aussi. Vous pouvez utiliser ce bouton pour afficher la page originale du site de Sun :
Maintenir les pages en cache sur différents sites peut offrir plus de disponibilité.
Chaque page est indexée dans la base de donnée, ce qui permet de retrouver facilement les informations, au moyen des sommaires, du moteur de recherche interne, etc.
Des facilités sont mises en place pour que les membres de l'infobrol puissent effectuer des traductions en français des différents documents. Ceci devrait permettre aux débutants en programmation Java de consulter les API en français s'ils maîtrisent moins bien la langue de Shakespeare. Dans le cas où une traduction a été soumise, elle est disponible au moyen d'un lien en bas de page. Si la traduction a été validée, la page s'affiche par défaut en français, et un lien en bas de page permet d'atteindre la version en anglais.
Le code sur l'infobrol est automatiquement coloré selon la syntaxe, et les différents mots clés sont transformés en liens pour accéder rapidement aux informations.
Vous avez la possibilité de partager vos expériences en proposant vos propres extraits de code en utilisant le bouton "ajouter un commentaire" en bas de page. Si vous visitez simplement l'infobrol, vous avez déjà accès à cette fonction, mais si vous étes membre du brol, vous pouvez en plus utiliser des boutons supplémentaires de mise en forme, dont la coloration automatique de vos extraits de codes.
Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher les interactions avec les réseaux sociaux sur ces pages.
6 mots clés dont 0 définis manuellement (plus d'information...).
Avertissement
Cette page ne possède pas encore de mots clés manuels, ceci est donc un exemple automatique (les niveaux de pertinence sont fictifs, mais les liens sont valables). Pour tester le nuage avec une page qui contient des mots définis manuellement, vous pouvez cliquer ici.Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher le nuage de mots clés.
Recherche (afficher)
Utilisateur (masquer)
Navigation (masquer)
Apparence (afficher)
Stats (afficher)
Citation (masquer)