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;
}
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));
}
}
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));
}
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);
}
}
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));
}
Aggregations