java.beans

Class DefaultPersistenceDelegate


  • public class DefaultPersistenceDelegate
    extends PersistenceDelegate
    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.

    Since:
    1.4
    See Also:
    DefaultPersistenceDelegate(String[]), Introspector
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      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).

      Erste Seite von API Java Inhaltsverzeichnis Haut

      • Methods inherited from class java.beans.PersistenceDelegate

        writeObject
    • Constructor Detail

      • DefaultPersistenceDelegate

        public 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. 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:
             new DefaultPersistenceDelegate(new String[]{"name", "style", "size"});
         
        Parameters:
        constructorPropertyNames - The property names for the arguments of this constructor.
        See Also:
        instantiate(java.lang.Object, java.beans.Encoder)
    • Method Detail

      • mutatesTo

        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). Otherwise, this method uses the superclass's definition which returns true if the classes of the two instances are equal.
        Overrides:
        mutatesTo in class PersistenceDelegate
        Parameters:
        oldInstance - The instance to be copied.
        newInstance - The instance that is to be modified.
        Returns:
        True if an equivalent copy of newInstance may be created by applying a series of mutations to oldInstance.
        See Also:
        DefaultPersistenceDelegate(String[])
      • instantiate

        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.
        Specified by:
        instantiate in class PersistenceDelegate
        Parameters:
        oldInstance - The instance to be instantiated.
        out - The code output stream.
        Returns:
        An expression whose value is oldInstance.
        Throws:
        NullPointerException - if out is null
        See Also:
        DefaultPersistenceDelegate(String[])
      • initialize

        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. 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.

        Overrides:
        initialize in class PersistenceDelegate
        Parameters:
        oldInstance - The instance to be copied.
        newInstance - The instance that is to be modified.
        out - The stream to which any initialization statements should be written.
        Throws:
        NullPointerException - if out is null
        See Also:
        Introspector.getBeanInfo(java.lang.Class<?>), PropertyDescriptor

Deutsche Übersetzung

Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.

Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.

Vielen Dank im Voraus.

Dokument erstellt 11/06/2005, zuletzt geändert 04/03/2020
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/java-api-rf-java/beans/DefaultPersistenceDelegate.html

Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.

Referenzen

  1. Zeigen Sie - html-Dokument Sprache des Dokuments:fr Manuel PHP : https://docs.oracle.com

Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor Diese Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.

Inhaltsverzeichnis Haut