Class FactoryHelper


  • public class FactoryHelper
    extends java.lang.Object
    A helper class for implementing ProxyFactory. The users of ProxyFactory do not have to see this class.
    See Also:
    ProxyFactory
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int[] dataSize
      The data size of primitive types.
      static java.lang.Class<?>[] primitiveTypes
      Class objects representing primitive types.
      static java.lang.String[] unwarpMethods
      The names of methods for obtaining a primitive value from a wrapper object.
      static java.lang.String[] unwrapDesc
      The descriptors of the unwrapping methods contained in unwrapMethods.
      static java.lang.String[] wrapperDesc
      The descriptors of the constructors of wrapper classes.
      static java.lang.String[] wrapperTypes
      The fully-qualified names of wrapper classes for primitive types.
    • Constructor Summary

      Constructors 
      Constructor Description
      FactoryHelper()  
    • Method Summary

      All Methods Static Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      static java.lang.Class<?> toClass​(ClassFile cf, java.lang.Class<?> neighbor, java.lang.ClassLoader loader, java.security.ProtectionDomain domain)
      Loads a class file by a given class loader.
      static java.lang.Class<?> toClass​(ClassFile cf, java.lang.ClassLoader loader)
      Deprecated. 
      static java.lang.Class<?> toClass​(ClassFile cf, java.lang.ClassLoader loader, java.security.ProtectionDomain domain)
      Deprecated. 
      static java.lang.Class<?> toClass​(ClassFile cf, java.lang.invoke.MethodHandles.Lookup lookup)
      Loads a class file by a given lookup.
      static int typeIndex​(java.lang.Class<?> type)
      Returns an index for accessing arrays in this class.
      static void writeFile​(ClassFile cf, java.lang.String directoryName)
      Writes a class file.
      • Methods inherited from class java.lang.Object

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

      • primitiveTypes

        public static final java.lang.Class<?>[] primitiveTypes
        Class objects representing primitive types.
      • wrapperTypes

        public static final java.lang.String[] wrapperTypes
        The fully-qualified names of wrapper classes for primitive types.
      • wrapperDesc

        public static final java.lang.String[] wrapperDesc
        The descriptors of the constructors of wrapper classes.
      • unwarpMethods

        public static final java.lang.String[] unwarpMethods
        The names of methods for obtaining a primitive value from a wrapper object. For example, intValue() is such a method for obtaining an integer value from a java.lang.Integer object.
      • unwrapDesc

        public static final java.lang.String[] unwrapDesc
        The descriptors of the unwrapping methods contained in unwrapMethods.
      • dataSize

        public static final int[] dataSize
        The data size of primitive types. long and double are 2; the others are 1.
    • Constructor Detail

      • FactoryHelper

        public FactoryHelper()
    • Method Detail

      • typeIndex

        public static final int typeIndex​(java.lang.Class<?> type)
        Returns an index for accessing arrays in this class.
        Throws:
        java.lang.RuntimeException - if a given type is not a primitive type.
      • toClass

        public static java.lang.Class<?> toClass​(ClassFile cf,
                                                 java.lang.Class<?> neighbor,
                                                 java.lang.ClassLoader loader,
                                                 java.security.ProtectionDomain domain)
                                          throws CannotCompileException
        Loads a class file by a given class loader.
        Parameters:
        neighbor - a class belonging to the same package that the loaded class belongs to. It can be null.
        loader - The class loader. It can be null if neighbor is not null.
        domain - if it is null, a default domain is used.
        Throws:
        CannotCompileException
        Since:
        3.3
      • toClass

        public static java.lang.Class<?> toClass​(ClassFile cf,
                                                 java.lang.invoke.MethodHandles.Lookup lookup)
                                          throws CannotCompileException
        Loads a class file by a given lookup.
        Parameters:
        lookup - used to define the class.
        Throws:
        CannotCompileException
        Since:
        3.24