Class ImplementationGenerator


  • public class ImplementationGenerator
    extends Object
    Implementation generator using ASM bytecode manipulation library.
    • Field Detail

      • className

        protected final String className
        Class name of the implementation.
      • fullClassName

        protected final String fullClassName
        Fully-qualified class name (including package) of the implementation.
      • fullSuperclassName

        protected String fullSuperclassName
        Class name for the superclass.
      • bytes

        protected byte[] bytes
        bytes for the implementation class.
    • Constructor Detail

      • ImplementationGenerator

        public ImplementationGenerator​(InterfaceMetaData interfaceMetaData,
                                       String implClassName,
                                       MetaDataManager mmgr)
        Constructor for an implementation of a persistent interface.
        Parameters:
        interfaceMetaData - MetaData for the persistent interface
        implClassName - Name of the implementation class to generate (omitting packages)
        mmgr - MetaData manager
      • ImplementationGenerator

        public ImplementationGenerator​(ClassMetaData cmd,
                                       String implClassName,
                                       MetaDataManager mmgr)
        Constructor for an implementation of an abstract class.
        Parameters:
        cmd - MetaData for the abstract class
        implClassName - Name of the implementation class to generate (omitting packages)
        mmgr - MetaData manager
    • Method Detail

      • getBytes

        public byte[] getBytes()
        Accessor for the byte representation of the generated class.
        Returns:
        the byte representation of the class
      • createPropertyFields

        protected void createPropertyFields()
        Creates fields for the properties of this class and super classes.
      • createPropertyMethods

        protected void createPropertyMethods()
        Create getters and setters methods for this class and super classes
      • createPropertyMethods

        protected void createPropertyMethods​(AbstractClassMetaData acmd)
        Create getters and setters methods.
        Parameters:
        acmd - AbstractClassMetaData
      • dumpToFile

        public void dumpToFile​(String filename)
        Convenience method to dump the generated class to the specified file.
        Parameters:
        filename - Name of the file to dump to
      • enhance

        public void enhance​(ClassLoaderResolver clr)
        Enhance the implementation of the class/interface.
        Parameters:
        clr - ClassLoader resolver
      • createPropertyFields

        protected void createPropertyFields​(AbstractClassMetaData acmd)
        Create the fields for the implementation.
        Parameters:
        acmd - MetaData for the class/interface
      • createDefaultConstructor

        protected void createDefaultConstructor()
        Create a default constructor, assuming that there is no persistent superclass.
      • createGetter

        protected void createGetter​(AbstractMemberMetaData mmd)
        Create a getter method for a /property.
        Parameters:
        mmd - MetaData for the property
      • createSetter

        protected void createSetter​(AbstractMemberMetaData mmd)
        Create a setter method for a property.
        Parameters:
        mmd - MetaData for the property