@Override protected Instantiator buildInstantiator(EntityMetamodel entityMetamodel, PersistentClass persistentClass) { if ( optimizer == null ) { return new PojoEntityInstantiator( entityMetamodel, persistentClass, null ); } else { return new PojoEntityInstantiator( entityMetamodel, persistentClass, optimizer.getInstantiationOptimizer() ); } }
protected Instantiator buildInstantiator(Component component) { if ( component.isEmbedded() && ReflectHelper.isAbstractClass( this.componentClass ) ) { return new ProxiedInstantiator( this.componentClass ); } if ( optimizer == null ) { return new PojoInstantiator( this.componentClass, null ); } else { return new PojoInstantiator( this.componentClass, optimizer.getInstantiationOptimizer() ); } }
@Test public void testReflectionOptimization() { BytecodeProvider provider = Environment.getBytecodeProvider(); ReflectionOptimizer optimizer = provider.getReflectionOptimizer( Bean.class, BeanReflectionHelper.getGetterNames(), BeanReflectionHelper.getSetterNames(), BeanReflectionHelper.getTypes() ); assertNotNull( optimizer ); assertNotNull( optimizer.getInstantiationOptimizer() ); assertNotNull( optimizer.getAccessOptimizer() ); Object instance = optimizer.getInstantiationOptimizer().newInstance(); assertEquals( instance.getClass(), Bean.class ); Bean bean = ( Bean ) instance; optimizer.getAccessOptimizer().setPropertyValues( bean, BeanReflectionHelper.TEST_VALUES ); assertEquals( bean.getSomeString(), BeanReflectionHelper.TEST_VALUES[0] ); Object[] values = optimizer.getAccessOptimizer().getPropertyValues( bean ); assertEquivalent( values, BeanReflectionHelper.TEST_VALUES ); }
public OptimizedPojoInstantiatorImpl(ManagedJavaDescriptor javaTypeDescriptor, ReflectionOptimizer reflectionOptimizer) { super( javaTypeDescriptor.getJavaType() ); this.instantiationOptimizer = reflectionOptimizer.getInstantiationOptimizer(); }
/** * {@inheritDoc} */ @Override protected Instantiator buildInstantiator(PersistentClass persistentClass) { if ( optimizer == null ) { return new PojoInstantiator( persistentClass, null ); } else { return new PojoInstantiator( persistentClass, optimizer.getInstantiationOptimizer() ); } }
/** * {@inheritDoc} */ @Override protected Instantiator buildInstantiator(PersistentClass persistentClass) { if ( optimizer == null ) { return new PojoInstantiator( persistentClass, null ); } else { return new PojoInstantiator( persistentClass, optimizer.getInstantiationOptimizer() ); } }
/** * {@inheritDoc} */ @Override protected Instantiator buildInstantiator(EntityBinding entityBinding) { if ( optimizer == null ) { return new PojoInstantiator( entityBinding, null ); } else { return new PojoInstantiator( entityBinding, optimizer.getInstantiationOptimizer() ); } }
/** * {@inheritDoc} */ @Override protected Instantiator buildInstantiator(EntityBinding entityBinding) { if ( optimizer == null ) { return new PojoInstantiator( entityBinding, null ); } else { return new PojoInstantiator( entityBinding, optimizer.getInstantiationOptimizer() ); } }
@Override @SuppressWarnings("unchecked") public <J> Instantiator<J> resolveInstantiator( ManagedTypeMapping bootDescriptor, ManagedTypeDescriptor runtimeDescriptor, BytecodeProvider bytecodeProvider) { final ReflectionOptimizer reflectionOptimizer = reflectionOptimizerAccess == null ? null : reflectionOptimizerAccess.get(); if ( reflectionOptimizer != null && reflectionOptimizer.getInstantiationOptimizer() != null ) { return new OptimizedPojoInstantiatorImpl<>( runtimeDescriptor.getJavaTypeDescriptor(), reflectionOptimizer ); } else { return new PojoInstantiatorImpl<>( runtimeDescriptor.getJavaTypeDescriptor() ); } }
protected Instantiator buildInstantiator(Component component) { if ( component.isEmbedded() && ReflectHelper.isAbstractClass( component.getComponentClass() ) ) { return new ProxiedInstantiator( component ); } if ( optimizer == null ) { return new PojoInstantiator( component, null ); } else { return new PojoInstantiator( component, optimizer.getInstantiationOptimizer() ); } }
protected Instantiator buildInstantiator(Component component) { if ( component.isEmbedded() && ReflectHelper.isAbstractClass( component.getComponentClass() ) ) { return new ProxiedInstantiator( component ); } if ( optimizer == null ) { return new PojoInstantiator( component, null ); } else { return new PojoInstantiator( component, optimizer.getInstantiationOptimizer() ); } }