Class MethodClassExtractor

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Class extractClassFromRow​(Record row, Session session)
      INTERNAL Extract/compute the class from the database row and return the class.
      java.lang.reflect.Method getClassExtractionMethod()
      INTERNAL: Return all the classExtractionMethod
      java.lang.String getClassExtractionMethodName()
      PUBLIC: A class extraction method can be registered with the descriptor to override the default inheritance mechanism.
      void initialize​(ClassDescriptor descriptor, Session session)
      INTERNAL: Setup the default classExtractionMethod, or if one was specified by the user make sure it is valid.
      void setClassExtractionMethodName​(java.lang.String staticClassClassExtractionMethod)
      PUBLIC: A class extraction method can be registered with the descriptor to override the default inheritance mechanism.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • MethodClassExtractor

        public MethodClassExtractor()
    • Method Detail

      • getClassExtractionMethod

        public java.lang.reflect.Method getClassExtractionMethod()
        INTERNAL: Return all the classExtractionMethod
      • getClassExtractionMethodName

        public java.lang.String getClassExtractionMethodName()
        PUBLIC: A class extraction method can be registered with the descriptor to override the default inheritance mechanism. This allows for the class indicator field to not be used, and a user defined one instead. The method registered must be a static method on the class that the descriptor is for, the method must take DatabaseRow as argument, and must return the class to use for that row. This method will be used to decide which class to instantiate when reading from the database. It is the application's responsibility to populate any typing information in the database required to determine the class from the row. If this method is used then the class indicator field and mapping cannot be used, also the descriptor's withAllSubclasses and onlyInstances expressions must also be setup correctly.
      • setClassExtractionMethodName

        public void setClassExtractionMethodName​(java.lang.String staticClassClassExtractionMethod)
        PUBLIC: A class extraction method can be registered with the descriptor to override the default inheritance mechanism. This allows for the class indicator field to not be used, and a user defined one instead. The method registered must be a static method on the class that the descriptor is for, the method must take DatabaseRow as argument, and must return the class to use for that row. This method will be used to decide which class to instantiate when reading from the database. It is the application's responsibility to populate any typing information in the database required to determine the class from the row. If this method is used then the class indicator field and mapping cannot be used, also the descriptor's withAllSubclasses and onlyInstances expressions must also be setup correctly.
      • extractClassFromRow

        public java.lang.Class extractClassFromRow​(Record row,
                                                   Session session)
        INTERNAL Extract/compute the class from the database row and return the class. Map is used as the public interface to database row, the key is the field name, the value is the database value.
        Specified by:
        extractClassFromRow in class ClassExtractor