Class PersistentClassROF<T>

  • Type Parameters:
    T - Type of the persistent object that this creates
    All Implemented Interfaces:
    ResultObjectFactory<T>

    public final class PersistentClassROF<T>
    extends AbstractROF<T>
    Result-object factory that takes a JDBC ResultSet, a results mapping, and creates a persistable object instance for each row in the ResultSet. We use information in the result set to determine the object type; this can be a discriminator column, or can be a special "NucleusType" column defined just for result processing.
    • Constructor Summary

      Constructors 
      Constructor Description
      PersistentClassROF​(org.datanucleus.ExecutionContext ec, java.sql.ResultSet rs, org.datanucleus.FetchPlan fp, StatementClassMapping resultMapping, org.datanucleus.metadata.AbstractClassMetaData acmd, java.lang.Class<T> persistentClass)
      Constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private T findObjectWithIdAndLoadFields​(java.lang.Object id, int[] membersToLoad, int[] membersToStore, java.lang.Class<?> pcClass, org.datanucleus.metadata.AbstractClassMetaData cmd, java.lang.Object surrogateVersion)
      Method to lookup an object for an id, and specify its FieldValues using the ResultSet.
      T getObject()
      Method to convert the current ResultSet row into a persistable Object.
      java.sql.ResultSet getResultSet()
      Accessor for the JDBC ResultSet being processed.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • rootCmd

        protected final org.datanucleus.metadata.AbstractClassMetaData rootCmd
        Metadata for the (root) persistable candidate class.
      • persistentClass

        protected java.lang.Class<T> persistentClass
        Persistent class that this factory will generate (may be the root class).
      • resultMapping

        protected StatementClassMapping resultMapping
        Mapping of the results to members of this class (and sub-objects).
      • mappedFieldNumbers

        protected int[] mappedFieldNumbers
      • resolvedClasses

        private java.util.Map<java.lang.String,​java.lang.Class> resolvedClasses
        Resolved classes for metadata / discriminator keyed by class names.
    • Constructor Detail

      • PersistentClassROF

        public PersistentClassROF​(org.datanucleus.ExecutionContext ec,
                                  java.sql.ResultSet rs,
                                  org.datanucleus.FetchPlan fp,
                                  StatementClassMapping resultMapping,
                                  org.datanucleus.metadata.AbstractClassMetaData acmd,
                                  java.lang.Class<T> persistentClass)
        Constructor.
        Parameters:
        ec - ExecutionContext
        rs - ResultSet being processed
        fp - FetchPlan
        resultMapping - Mapping information for the result set and how it maps to the class
        acmd - MetaData for the (root) candidate class
        persistentClass - Class that this factory will create instances of (or subclasses)
    • Method Detail

      • getObject

        public T getObject()
        Method to convert the current ResultSet row into a persistable Object.
        Returns:
        The persistable object.
      • findObjectWithIdAndLoadFields

        private T findObjectWithIdAndLoadFields​(java.lang.Object id,
                                                int[] membersToLoad,
                                                int[] membersToStore,
                                                java.lang.Class<?> pcClass,
                                                org.datanucleus.metadata.AbstractClassMetaData cmd,
                                                java.lang.Object surrogateVersion)
        Method to lookup an object for an id, and specify its FieldValues using the ResultSet. Works for all identity types.
        Parameters:
        id - The identity (DatastoreId, Application id, or SCOID when nondurable)
        membersToLoad - Absolute numbers of members to load
        membersToStore - Absolute numbers of members to store in StateManager (for later)
        pcClass - The class of the required object if known
        cmd - Metadata for the type
        surrogateVersion - The version when the object has a surrogate version field
        Returns:
        The persistable object for this id