Example usage for org.springframework.data.mapping.model BeanWrapper setProperty

List of usage examples for org.springframework.data.mapping.model BeanWrapper setProperty

Introduction

In this page you can find the example usage for org.springframework.data.mapping.model BeanWrapper setProperty.

Prototype

@SuppressWarnings("unchecked")
    public void setProperty(PersistentProperty<?> property, @Nullable Object value) 

Source Link

Usage

From source file:io.github.carlomicieli.springbooks.test.AbstractMongoDbTests.java

protected void ensureDocumentId(Object savedObject, Object id) {
    ConversionService conversionService = mongoTemplate.getConverter().getConversionService();
    MappingContext<? extends MongoPersistentEntity<?>, MongoPersistentProperty> mappingContext = mongoTemplate
            .getConverter().getMappingContext();
    MongoPersistentEntity<?> persistentEntity = mappingContext.getPersistentEntity(savedObject.getClass());

    MongoPersistentProperty idProp = persistentEntity == null ? null : persistentEntity.getIdProperty();
    if (idProp == null) {
        return;//w  w  w.  j  a  v  a  2s.c o  m
    }

    BeanWrapper<PersistentEntity<Object, ?>, Object> wrapper = BeanWrapper.create(savedObject,
            conversionService);
    Object idValue = wrapper.getProperty(idProp, idProp.getType(), true);

    if (idValue != null) {
        return;
    }

    wrapper.setProperty(idProp, id);
}

From source file:org.springframework.data.mongodb.core.MongoTemplate.java

/**
 * Populates the id property of the saved object, if it's not set already.
 * //from  w w w  .  j  a v a2  s  .com
 * @param savedObject
 * @param id
 */
protected void populateIdIfNecessary(Object savedObject, Object id) {

    if (id == null) {
        return;
    }

    MongoPersistentProperty idProp = getIdPropertyFor(savedObject.getClass());

    if (idProp == null) {
        return;
    }

    ConversionService conversionService = mongoConverter.getConversionService();
    BeanWrapper<PersistentEntity<Object, ?>, Object> wrapper = BeanWrapper.create(savedObject,
            conversionService);

    try {

        Object idValue = wrapper.getProperty(idProp, idProp.getType(), true);

        if (idValue != null) {
            return;
        }

        wrapper.setProperty(idProp, id);

    } catch (IllegalAccessException e) {
        throw new MappingException(e.getMessage(), e);
    } catch (InvocationTargetException e) {
        throw new MappingException(e.getMessage(), e);
    }
}