@Override public Object instantiate(Serializable id, SharedSessionContractImplementor session) { return getEntityTuplizer().instantiate( id, session ); }
@Override public void afterInitialize(Object entity, SharedSessionContractImplementor session) { getEntityTuplizer().afterInitialize( entity, session ); }
public Object createProxy(Serializable id, SharedSessionContractImplementor session) throws HibernateException { return entityMetamodel.getTuplizer().createProxy( id, session ); }
@Override public Serializable getIdentifier(Object object) { return getEntityTuplizer().getIdentifier( object, null ); }
@Override public Object getPropertyValue(Object object, int i) { return getEntityTuplizer().getPropertyValue( object, i ); }
public final Class getMappedClass() { return getEntityTuplizer().getMappedClass(); }
private static void registerEntityNameResolvers(EntityTuplizer tuplizer, Map<EntityNameResolver,Object> entityNameResolvers) { EntityNameResolver[] resolvers = tuplizer.getEntityNameResolvers(); if ( resolvers == null ) { return; } for ( EntityNameResolver resolver : resolvers ) { entityNameResolvers.put( resolver, ENTITY_NAME_RESOLVER_MAP_VALUE ); } }
public Class getConcreteProxyClass() { return getEntityTuplizer().getConcreteProxyClass(); }
private void assertAccessType(SessionFactoryImplementor factory, Class<?> classUnderTest, AccessType accessType) { EntityTuplizer tuplizer = factory.getEntityPersister( classUnderTest.getName() ) .getEntityMetamodel() .getTuplizer(); if ( AccessType.FIELD.equals( accessType ) ) { Assert.assertTrue( "Field access was expected.", tuplizer.getGetter( 0 ) instanceof GetterFieldImpl ); } else { Assert.assertTrue( "Property access was expected.", tuplizer.getGetter( 0 ) instanceof GetterMethodImpl ); } } }
@Override public EntityPersister getSubclassEntityPersister(Object instance, SessionFactoryImplementor factory) { if ( !hasSubclasses() ) { return this; } else { final String concreteEntityName = getEntityTuplizer().determineConcreteSubclassEntityName( instance, factory ); if ( concreteEntityName == null || getEntityName().equals( concreteEntityName ) ) { // the contract of EntityTuplizer.determineConcreteSubclassEntityName says that returning null // is an indication that the specified entity-name (this.getEntityName) should be used. return this; } else { return factory.getEntityPersister( concreteEntityName ); } } }
@Override public Serializable getIdentifier(Object entity, SharedSessionContractImplementor session) { return getEntityTuplizer().getIdentifier( entity, session ); }
@Override public Object getPropertyValue(Object object, String propertyName) { return getEntityTuplizer().getPropertyValue( object, propertyName ); }
private Class determineAssociatedEntityClass() { final String entityName = getAssociatedEntityName(); try { return ReflectHelper.classForName( entityName ); } catch (ClassNotFoundException cnfe) { return this.scope.getTypeConfiguration().getSessionFactory().getMetamodel().entityPersister( entityName ). getEntityTuplizer().getMappedClass(); } }
private void registerEntityNameResolvers(EntityTuplizer tuplizer) { EntityNameResolver[] resolvers = tuplizer.getEntityNameResolvers(); if ( resolvers == null ) { return; } for ( EntityNameResolver resolver : resolvers ) { registerEntityNameResolver( resolver ); } }
public Class getConcreteProxyClass() { return getEntityTuplizer().getConcreteProxyClass(); }
@Override public Member resolveMember(AttributeContext attributeContext) { final ManagedTypeDescriptor ownerType = attributeContext.getOwnerType(); final Property property = attributeContext.getPropertyMapping(); final Type.PersistenceType persistenceType = ownerType.getPersistenceType(); if ( Type.PersistenceType.EMBEDDABLE == persistenceType ) { return embeddedMemberResolver.resolveMember( attributeContext ); } else if ( Type.PersistenceType.ENTITY == persistenceType || Type.PersistenceType.MAPPED_SUPERCLASS == persistenceType ) { final AbstractIdentifiableType identifiableType = (AbstractIdentifiableType) ownerType; final EntityMetamodel entityMetamodel = getDeclarerEntityMetamodel( identifiableType ); final String propertyName = property.getName(); final Integer index = entityMetamodel.getPropertyIndexOrNull( propertyName ); if ( index == null ) { // just like in #determineIdentifierJavaMember , this *should* indicate we have an IdClass mapping return virtualIdentifierMemberResolver.resolveMember( attributeContext ); } else { final Getter getter = entityMetamodel.getTuplizer().getGetter( index ); return PropertyAccessMapImpl.GetterImpl.class.isInstance( getter ) ? new MapMember( propertyName, property.getType().getReturnedClass() ) : getter.getMember(); } } else { throw new IllegalArgumentException( "Unexpected owner type : " + persistenceType ); } } };
@Override public EntityPersister getSubclassEntityPersister(Object instance, SessionFactoryImplementor factory) { if ( !hasSubclasses() ) { return this; } else { final String concreteEntityName = getEntityTuplizer().determineConcreteSubclassEntityName( instance, factory ); if ( concreteEntityName == null || getEntityName().equals( concreteEntityName ) ) { // the contract of EntityTuplizer.determineConcreteSubclassEntityName says that returning null // is an indication that the specified entity-name (this.getEntityName) should be used. return this; } else { return factory.getEntityPersister( concreteEntityName ); } } }
.getEntityPersister( entityName ) .getEntityTuplizer() .instantiate();
private Object extractIdentifier(Object entity) { final EntityPersister concretePersister = guessEntityPersister( entity ); return concretePersister == null ? null : concretePersister.getEntityTuplizer().getIdentifier( entity, null ); }
@Override public Object getPropertyValue(Object object, String propertyName) { return getEntityTuplizer().getPropertyValue( object, propertyName ); }