Class JavaTypeExtensions


  • class JavaTypeExtensions
    extends java.lang.Object
    • Field Detail

      • COMPOSITE_CLASS_BY_NAME

        private static final java.util.Map<java.lang.String,​java.lang.Class<?>> COMPOSITE_CLASS_BY_NAME
    • Constructor Detail

      • JavaTypeExtensions

        private JavaTypeExtensions()
    • Method Detail

      • newExtendedType

        static IJavaTypeInternal newExtendedType​(java.lang.Class<?> secondaryInterface,
                                                 IJavaTypeInternal originalType,
                                                 java.lang.Object secondaryObject)
      • newExtendedProperty

        static IJavaPropertyInfo newExtendedProperty​(java.lang.Class<?> secondaryInterface,
                                                     IJavaPropertyInfo originalProperty,
                                                     java.lang.Object secondaryObject)
      • newCompositeInstance

        private static <T> T newCompositeInstance​(java.lang.Class<?> superClass,
                                                  java.lang.Class<T> primaryInterface,
                                                  java.lang.Class<?> secondaryInterface,
                                                  T primaryObject,
                                                  java.lang.Object secondaryObject)
      • getCompositeClass

        private static <T> java.lang.Class<? extends T> getCompositeClass​(java.lang.Class<?> superClass,
                                                                          java.lang.Class<T> primaryInterface,
                                                                          java.lang.Class<?> secondaryInterface,
                                                                          java.lang.Class<?> secondaryObjectClass)
      • getCachedCompositeClass

        private static java.lang.Class<?> getCachedCompositeClass​(java.lang.String compositeClassName,
                                                                  java.lang.Class<?> secondaryInterface)
      • getCompositeClassName

        private static java.lang.String getCompositeClassName​(java.lang.Class<?> secondaryObjectClass)
      • defineCompositeClass

        private static java.lang.Class<?> defineCompositeClass​(java.lang.Class<?> superClass,
                                                               java.lang.Class<?> primaryInterface,
                                                               java.lang.Class<?> secondaryInterface,
                                                               java.lang.Class<?> secondaryObjectClass)
      • implementMethodViaDelegation

        private static void implementMethodViaDelegation​(org.objectweb.asm.ClassWriter classWriter,
                                                         java.lang.String fieldOwnerInternalName,
                                                         java.lang.reflect.Method method,
                                                         java.lang.String fieldName,
                                                         java.lang.Class<?> fieldType,
                                                         java.util.Set<java.lang.String> signatures)
      • toInternalNames

        private static java.lang.String[] toInternalNames​(java.lang.Class<?>[] classes)