Top Inners Fields Constructors Methods
org.hibernate.bytecode.internal.bytebuddy

public Class BytecodeProviderImpl

extends Object
implements BytecodeProvider
Class Inheritance
All Implemented Interfaces
org.hibernate.bytecode.spi.BytecodeProvider, org.hibernate.service.Service, java.io.Serializable
Imports
java.io.Serializable, java.lang.reflect.Constructor, .Field, .Member, .Method, .Modifier, java.util.ArrayList, .Arrays, .Collections, .Iterator, .List, .Map, java.util.concurrent.Callable, org.hibernate.HibernateException, org.hibernate.bytecode.enhance.internal.bytebuddy.EnhancerImpl, org.hibernate.bytecode.enhance.spi.EnhancementContext, .Enhancer, .LazyPropertyInitializer, org.hibernate.bytecode.enhance.spi.interceptor.BytecodeLazyAttributeInterceptor, .LazyAttributeLoadingInterceptor, org.hibernate.bytecode.spi.BytecodeProvider, .ProxyFactoryFactory, .ReflectionOptimizer, org.hibernate.engine.spi.CompositeOwner, .CompositeTracker, .Managed, .PersistentAttributeInterceptable, .PersistentAttributeInterceptor, org.hibernate.internal.CoreLogging, .CoreMessageLogger, org.hibernate.internal.util.ReflectHelper, org.hibernate.property.access.internal.PropertyAccessEmbeddedImpl, org.hibernate.property.access.spi.Getter, .GetterFieldImpl, .GetterMethodImpl, .PropertyAccess, .Setter, .SetterFieldImpl, .SetterMethodImpl, org.hibernate.proxy.pojo.bytebuddy.ByteBuddyProxyHelper, net.bytebuddy.ClassFileVersion, .NamingStrategy, net.bytebuddy.description.NamedElement, net.bytebuddy.description.method.MethodDescription, net.bytebuddy.description.type.TypeDescription, net.bytebuddy.dynamic.DynamicType, net.bytebuddy.implementation.Implementation, .MethodCall, net.bytebuddy.implementation.bytecode.ByteCodeAppender, net.bytebuddy.implementation.bytecode.assign.Assigner, net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveBoxingDelegate, .PrimitiveUnboxingDelegate, net.bytebuddy.implementation.bytecode.assign.reference.ReferenceTypeAwareAssigner, net.bytebuddy.jar.asm.Label, .MethodVisitor, .Opcodes, .Type, net.bytebuddy.matcher.ElementMatcher, .ElementMatchers, org.checkerframework.checker.nullness.qual.Nullable

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class
private static class
private static class
private static class
private static class
private static class
private static class

Field Summary

Modifier and TypeField and Description
private final ByteBuddyProxyHelper
private final ByteBuddyState
private static final Member
private static final ElementMatcher.Junction<NamedElement>
private static final ElementMatcher.Junction<NamedElement>
private static final String
private static final CoreMessageLogger
private static final ElementMatcher.Junction<NamedElement>
private static final String
private static final ElementMatcher.Junction<NamedElement>

Constructor Summary

AccessConstructor and Description
public
BytecodeProviderImpl()

Constructs a ByteBuddy BytecodeProvider instance which attempts to auto-detect the target JVM version from the currently running one, with a fallback on Java 11.

public
BytecodeProviderImpl(ClassFileVersion targetCompatibleJVM)

Constructs a ByteBuddy BytecodeProvider instance which aims to produce code compatible with the specified target JVM version.

Method Summary

Modifier and TypeMethod and Description
private List<BytecodeProviderImpl.ForeignPackageClassInfo>
private Class<?>
determineAccessOptimizerSuperClass(Class<?> clazz, Member[] getters, Member[] setters)

private static Method
findAccessor(Class<?> containerClazz, String name, Class<?>[] params)

private static void
findAccessors(Class<?> clazz, String[] getterNames, String[] setterNames, Class<?>[] types, Method[] getters, Method[] setters)

private static void
findAccessors(Class<?> clazz, Map<String, PropertyAccess> propertyAccessMap, Member[] getters, Member[] setters)

private static Constructor<?>
public ByteBuddyProxyHelper
public @Nullable Enhancer
getEnhancer(EnhancementContext
The enhancement context that describes the enhancements to apply.
enhancementContext
)

Implements org.hibernate.bytecode.spi.BytecodeProvider.getEnhancer.

Returns a byte code enhancer that implements the enhancements described in the supplied enhancement context.
public ProxyFactoryFactory
getProxyFactoryFactory()

Implements org.hibernate.bytecode.spi.BytecodeProvider.getProxyFactoryFactory.

Retrieve the specific factory for this provider capable of generating run-time proxies for lazy-loading purposes.
public ReflectionOptimizer
getReflectionOptimizer(final Class<T>
The class to be reflected upon.
clazz
,
final String[]
Names of all property getters to be accessed via reflection.
getterNames
,
final String[]
Names of all property setters to be accessed via reflection.
setterNames
,
final Class<T>[]
The types of all properties to be accessed.
types
)

Implements org.hibernate.bytecode.spi.BytecodeProvider.getReflectionOptimizer.

Retrieve the ReflectionOptimizer delegate for this provider capable of generating reflection optimization components.
public @Nullable ReflectionOptimizer
getReflectionOptimizer(Class<?>
The class to be reflected upon.
clazz
,
Map<String, PropertyAccess>
The ordered property access map
propertyAccessMap
)

Implements org.hibernate.bytecode.spi.BytecodeProvider.getReflectionOptimizer.

Retrieve the ReflectionOptimizer delegate for this provider capable of generating reflection optimization components.
public void
resetCaches()

Overrides default org.hibernate.bytecode.spi.BytecodeProvider.resetCaches.

Some BytecodeProvider implementations will have classloader specific caching.
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait