@Override public void setIdentifier(Object entity, Serializable id, EntityMode entityMode, SharedSessionContractImplementor session) { virtualIdComponent.setPropertyValues( entity, mappedIdentifierType.getPropertyValues( id, session ), entityMode ); } }
@Override public Object getIdentifier(Object entity, EntityMode entityMode, SharedSessionContractImplementor session) { Object id = mappedIdentifierType.instantiate( entityMode ); final Object[] propertyValues = virtualIdComponent.getPropertyValues( entity, entityMode ); mappedIdentifierType.setPropertyValues( id, propertyValues, entityMode ); return id; }
@Override public Object assemble(Serializable object, SharedSessionContractImplementor session, Object owner) throws HibernateException { if ( object == null ) { return null; } else { Object[] values = (Object[]) object; Object[] assembled = new Object[values.length]; for ( int i = 0; i < propertyTypes.length; i++ ) { assembled[i] = propertyTypes[i].assemble( (Serializable) values[i], session, owner ); } Object result = instantiate( owner, session ); setPropertyValues( result, assembled, entityMode ); return result; } }
@Override public Object resolve(Object value, SharedSessionContractImplementor session, Object owner) throws HibernateException { if ( value != null ) { Object result = instantiate( owner, session ); Object[] values = (Object[]) value; Object[] resolvedValues = new Object[values.length]; //only really need new array during semiresolve! for ( int i = 0; i < values.length; i++ ) { resolvedValues[i] = propertyTypes[i].resolve( values[i], session, owner ); } setPropertyValues( result, resolvedValues, entityMode ); return result; } else if ( isCreateEmptyCompositesEnabled() ) { return instantiate( owner, session ); } else { return null; } }
@Override public Object replace( Object original, Object target, SharedSessionContractImplementor session, Object owner, Map copyCache) throws HibernateException { if ( original == null ) { return null; } //if ( original == target ) return target; final Object result = target == null ? instantiate( owner, session ) : target; Object[] values = TypeHelper.replace( getPropertyValues( original, entityMode ), getPropertyValues( result, entityMode ), propertyTypes, session, owner, copyCache ); setPropertyValues( result, values, entityMode ); return result; }
@Override public Object deepCopy(Object component, SessionFactoryImplementor factory) throws HibernateException { if ( component == null ) { return null; } Object[] values = getPropertyValues( component, entityMode ); for ( int i = 0; i < propertySpan; i++ ) { values[i] = propertyTypes[i].deepCopy( values[i], factory ); } Object result = instantiate( entityMode ); setPropertyValues( result, values, entityMode ); //not absolutely necessary, but helps for some //equals()/hashCode() implementations if ( componentTuplizer.hasParentProperty() ) { componentTuplizer.setParent( result, componentTuplizer.getParent( component ), factory ); } return result; }
@Override public Object getIdentifier(Object entity, EntityMode entityMode, SharedSessionContractImplementor session) { final Object id = mappedIdentifierType.instantiate( entityMode ); final Object[] propertyValues = virtualIdComponent.getPropertyValues( entity, entityMode ); final Type[] subTypes = virtualIdComponent.getSubtypes(); final Type[] copierSubTypes = mappedIdentifierType.getSubtypes(); final int length = subTypes.length; for ( int i = 0; i < length; i++ ) { if ( propertyValues[i] == null ) { throw new HibernateException( "No part of a composite identifier may be null" ); } //JPA 2 @MapsId + @IdClass points to the pk of the entity if ( subTypes[i].isAssociationType() && !copierSubTypes[i].isAssociationType() ) { propertyValues[i] = determineEntityId( propertyValues[i], (AssociationType) subTypes[i], session, sessionFactory ); } } mappedIdentifierType.setPropertyValues( id, propertyValues, entityMode ); return id; }
); setPropertyValues( result, values, entityMode ); return result;
virtualIdComponent.setPropertyValues( entity, injectionValues, entityMode );
public void setIdentifier(Object entity, Serializable id, EntityMode entityMode, SessionImplementor session) { virtualIdComponent.setPropertyValues( entity, mappedIdentifierType.getPropertyValues( id, session ), entityMode ); } }
public void setIdentifier(Object entity, Serializable id, EntityMode entityMode, SessionImplementor session) { virtualIdComponent.setPropertyValues( entity, mappedIdentifierType.getPropertyValues( id, session ), entityMode ); } }
public void setPropertyValues(Object component, Object[] values, EntityMode entityMode) throws HibernateException { tuplizerMapping.getTuplizer( entityMode ).setPropertyValues( component, values ); }
public Object getIdentifier(Object entity, EntityMode entityMode, SessionImplementor session) { Object id = mappedIdentifierType.instantiate( entityMode ); final Object[] propertyValues = virtualIdComponent.getPropertyValues( entity, entityMode ); mappedIdentifierType.setPropertyValues( id, propertyValues, entityMode ); return id; }
public Object getIdentifier(Object entity, EntityMode entityMode, SessionImplementor session) { Object id = mappedIdentifierType.instantiate( entityMode ); final Object[] propertyValues = virtualIdComponent.getPropertyValues( entity, entityMode ); mappedIdentifierType.setPropertyValues( id, propertyValues, entityMode ); return id; }
public Object assemble(Serializable object, SessionImplementor session, Object owner) throws HibernateException { if ( object == null ) { return null; } else { Object[] values = ( Object[] ) object; Object[] assembled = new Object[values.length]; for ( int i = 0; i < propertyTypes.length; i++ ) { assembled[i] = propertyTypes[i].assemble( ( Serializable ) values[i], session, owner ); } Object result = instantiate( owner, session ); setPropertyValues( result, assembled, session.getEntityMode() ); return result; } }
@Override public Object resolve(Object value, SessionImplementor session, Object owner) throws HibernateException { if ( value != null ) { Object result = instantiate( owner, session ); Object[] values = ( Object[] ) value; Object[] resolvedValues = new Object[values.length]; //only really need new array during semiresolve! for ( int i = 0; i < values.length; i++ ) { resolvedValues[i] = propertyTypes[i].resolve( values[i], session, owner ); } setPropertyValues( result, resolvedValues, entityMode ); return result; } else { return null; } }
@Override public Object assemble(Serializable object, SessionImplementor session, Object owner) throws HibernateException { if ( object == null ) { return null; } else { Object[] values = ( Object[] ) object; Object[] assembled = new Object[values.length]; for ( int i = 0; i < propertyTypes.length; i++ ) { assembled[i] = propertyTypes[i].assemble( ( Serializable ) values[i], session, owner ); } Object result = instantiate( owner, session ); setPropertyValues( result, assembled, entityMode ); return result; } }
public Object assemble(Serializable object, SessionImplementor session, Object owner) throws HibernateException { if ( object == null ) { return null; } else { Object[] values = (Object[]) object; Object[] assembled = new Object[values.length]; for ( int i = 0; i < propertyTypes.length; i++ ) { assembled[i] = propertyTypes[i].assemble( ( Serializable ) values[i], session, owner ); } Object result = instantiate( owner, session ); setPropertyValues( result, assembled, session.getEntityMode() ); return result; } }
public Object resolve(Object value, SessionImplementor session, Object owner) throws HibernateException { if ( value != null ) { Object result = instantiate( owner, session ); Object[] values = ( Object[] ) value; Object[] resolvedValues = new Object[values.length]; //only really need new array during semiresolve! for ( int i = 0; i < values.length; i++ ) { resolvedValues[i] = propertyTypes[i].resolve( values[i], session, owner ); } setPropertyValues( result, resolvedValues, session.getEntityMode() ); return result; } else { return null; } }
public Object deepCopy(Object component, EntityMode entityMode, SessionFactoryImplementor factory) throws HibernateException { if ( component == null ) return null; Object[] values = getPropertyValues( component, entityMode ); for ( int i = 0; i < propertySpan; i++ ) { values[i] = propertyTypes[i].deepCopy( values[i], entityMode, factory ); } Object result = instantiate(entityMode); setPropertyValues( result, values, entityMode ); //not absolutely necessary, but helps for some //equals()/hashCode() implementations ComponentTuplizer ct = (ComponentTuplizer) tuplizers.getTuplizer(entityMode); if ( ct.hasParentProperty() ) { ct.setParent( result, ct.getParent(component), factory ); } return result; }