Search in sources :

Example 6 with Getter

use of org.hibernate.property.access.spi.Getter in project hibernate-orm by hibernate.

the class MultiPropertyMapper method mapToMapFromEntity.

@Override
public boolean mapToMapFromEntity(SessionImplementor session, Map<String, Object> data, Object newObj, Object oldObj) {
    boolean ret = false;
    for (Map.Entry<PropertyData, PropertyMapper> entry : properties.entrySet()) {
        final PropertyData propertyData = entry.getKey();
        final PropertyMapper propertyMapper = entry.getValue();
        // synthetic properties are not part of the entity model; therefore they should be ignored.
        if (propertyData.isSynthetic()) {
            continue;
        }
        Getter getter;
        if (newObj != null) {
            getter = ReflectionTools.getGetter(newObj.getClass(), propertyData, session.getFactory().getServiceRegistry());
        } else if (oldObj != null) {
            getter = ReflectionTools.getGetter(oldObj.getClass(), propertyData, session.getFactory().getServiceRegistry());
        } else {
            return false;
        }
        ret |= propertyMapper.mapToMapFromEntity(session, data, newObj == null ? null : getter.get(newObj), oldObj == null ? null : getter.get(oldObj));
    }
    return ret;
}
Also used : PropertyData(org.hibernate.envers.internal.entities.PropertyData) Getter(org.hibernate.property.access.spi.Getter) Map(java.util.Map)

Example 7 with Getter

use of org.hibernate.property.access.spi.Getter in project hibernate-orm by hibernate.

the class MultiPropertyMapper method mapModifiedFlagsToMapFromEntity.

@Override
public void mapModifiedFlagsToMapFromEntity(SessionImplementor session, Map<String, Object> data, Object newObj, Object oldObj) {
    for (Map.Entry<PropertyData, PropertyMapper> entry : properties.entrySet()) {
        final PropertyData propertyData = entry.getKey();
        final PropertyMapper propertyMapper = entry.getValue();
        // synthetic properties are not part of the entity model; therefore they should be ignored.
        if (propertyData.isSynthetic()) {
            continue;
        }
        Getter getter;
        if (newObj != null) {
            getter = ReflectionTools.getGetter(newObj.getClass(), propertyData, session.getFactory().getServiceRegistry());
        } else if (oldObj != null) {
            getter = ReflectionTools.getGetter(oldObj.getClass(), propertyData, session.getFactory().getServiceRegistry());
        } else {
            return;
        }
        propertyMapper.mapModifiedFlagsToMapFromEntity(session, data, newObj == null ? null : getter.get(newObj), oldObj == null ? null : getter.get(oldObj));
    }
}
Also used : PropertyData(org.hibernate.envers.internal.entities.PropertyData) Getter(org.hibernate.property.access.spi.Getter) Map(java.util.Map)

Example 8 with Getter

use of org.hibernate.property.access.spi.Getter in project hibernate-orm by hibernate.

the class EmbeddedIdMapper method mapToMapFromEntity.

@Override
public void mapToMapFromEntity(Map<String, Object> data, Object obj) {
    if (obj == null) {
        return;
    }
    final Getter getter = ReflectionTools.getGetter(obj.getClass(), idPropertyData, getServiceRegistry());
    mapToMapFromId(data, getter.get(obj));
}
Also used : Getter(org.hibernate.property.access.spi.Getter)

Example 9 with Getter

use of org.hibernate.property.access.spi.Getter in project hibernate-orm by hibernate.

the class EmbeddedIdMapper method mapToEntityFromMap.

@Override
public boolean mapToEntityFromMap(Object obj, Map data) {
    if (data == null || obj == null) {
        return false;
    }
    final Getter getter = ReflectionTools.getGetter(obj.getClass(), idPropertyData, getServiceRegistry());
    final Setter setter = ReflectionTools.getSetter(obj.getClass(), idPropertyData, getServiceRegistry());
    try {
        final Object subObj = ReflectHelper.getDefaultConstructor(getter.getReturnType()).newInstance();
        boolean ret = true;
        for (IdMapper idMapper : ids.values()) {
            ret &= idMapper.mapToEntityFromMap(subObj, data);
        }
        if (ret) {
            setter.set(obj, subObj, null);
        }
        return ret;
    } catch (Exception e) {
        throw new AuditException(e);
    }
}
Also used : Getter(org.hibernate.property.access.spi.Getter) Setter(org.hibernate.property.access.spi.Setter) AuditException(org.hibernate.envers.exception.AuditException) AuditException(org.hibernate.envers.exception.AuditException)

Example 10 with Getter

use of org.hibernate.property.access.spi.Getter in project hibernate-orm by hibernate.

the class MapProxyTest method shouldGenerateClassWithAppropriateAccessorsForBoolean.

@Test
public void shouldGenerateClassWithAppropriateAccessorsForBoolean() throws Exception {
    //given
    Map<String, Object> map = new HashMap<String, Object>();
    map.put("checkbox", true);
    Map<String, Class<?>> properties = new HashMap<String, Class<?>>();
    properties.put("checkbox", Boolean.class);
    //when
    Class testClass = MapProxyTool.classForName("TestClass3", properties, new ClassLoaderServiceImpl());
    Object testClassInstance = testClass.getConstructor(Map.class).newInstance(map);
    //then
    Getter getter = ReflectionTools.getGetter(testClass, "checkbox", "property", serviceRegistry);
    Assert.assertTrue((Boolean) getter.get(testClassInstance));
}
Also used : HashMap(java.util.HashMap) Getter(org.hibernate.property.access.spi.Getter) ClassLoaderServiceImpl(org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl) Map(java.util.Map) HashMap(java.util.HashMap) Test(org.junit.Test)

Aggregations

Getter (org.hibernate.property.access.spi.Getter)15 Test (org.junit.Test)6 ByteArrayInputStream (java.io.ByteArrayInputStream)4 ByteArrayOutputStream (java.io.ByteArrayOutputStream)4 ObjectInputStream (java.io.ObjectInputStream)4 ObjectOutputStream (java.io.ObjectOutputStream)4 Map (java.util.Map)4 Setter (org.hibernate.property.access.spi.Setter)4 AnEntity (org.hibernate.serialization.entity.AnEntity)4 PK (org.hibernate.serialization.entity.PK)4 TestForIssue (org.hibernate.testing.TestForIssue)4 HashMap (java.util.HashMap)2 ClassLoaderServiceImpl (org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl)2 PropertyData (org.hibernate.envers.internal.entities.PropertyData)2 GetterFieldImpl (org.hibernate.property.access.spi.GetterFieldImpl)2 GetterMethodImpl (org.hibernate.property.access.spi.GetterMethodImpl)2 FlushModeType (javax.persistence.FlushModeType)1 LockModeType (javax.persistence.LockModeType)1 TemporalType (javax.persistence.TemporalType)1 MappingException (org.hibernate.MappingException)1