Example usage for org.springframework.data.mapping PersistentPropertyAccessor getBean

List of usage examples for org.springframework.data.mapping PersistentPropertyAccessor getBean

Introduction

In this page you can find the example usage for org.springframework.data.mapping PersistentPropertyAccessor getBean.

Prototype

T getBean();

Source Link

Document

Returns the underlying bean.

Usage

From source file:io.twipple.springframework.data.clusterpoint.convert.DefaultClusterpointEntityConverter.java

/**
 * Creates a new {@link PropertyValueProvider}.
 *
 * @param source           the source document.
 * @param propertyAccessor the property accessor.
 * @return a new {@link PropertyValueProvider}.
 *///w w w . j av a  2s  . c  o  m
@NotNull
private PropertyValueProvider<ClusterpointPersistentProperty> getPropertyValueProvider(
        @NotNull ClusterpointDocument source, @NotNull PersistentPropertyAccessor propertyAccessor) {

    Assert.notNull(source);
    Assert.notNull(propertyAccessor);

    Object parent = propertyAccessor.getBean();
    return new ClusterpointPropertyValueProvider(source, spELContext, parent);
}

From source file:io.twipple.springframework.data.clusterpoint.convert.DefaultClusterpointEntityConverter.java

/**
 * Read an incoming {@link ClusterpointDocument} into the target entity.
 *
 * @param entity the target entity./*from w  w  w.ja va 2  s .  co m*/
 * @param source the document to convert.
 * @param parent an optional parent object.
 * @param <R>    the entity type.
 * @return the converted entity.
 */
@NotNull
@SuppressWarnings("unchecked")
protected <R> R read(@NotNull final ClusterpointPersistentEntity<R> entity,
        @NotNull final ClusterpointDocument source, Object parent) {
    Assert.notNull(entity);
    Assert.notNull(source);

    final DefaultSpELExpressionEvaluator evaluator = new DefaultSpELExpressionEvaluator(source, spELContext);
    ParameterValueProvider<ClusterpointPersistentProperty> parameterValueProvider = getParameterValueProvider(
            entity, source, evaluator, parent);
    final PersistentPropertyAccessor propertyAccessor = getPersistentPropertyAccessor(entity,
            parameterValueProvider);
    final PropertyValueProvider<ClusterpointPersistentProperty> propertyValueProvider = getPropertyValueProvider(
            source, propertyAccessor);

    entity.doWithProperties(new PropertyHandler<ClusterpointPersistentProperty>() {
        @Override
        public void doWithPersistentProperty(@NotNull ClusterpointPersistentProperty property) {

            Assert.notNull(property);

            if (!source.doesPropertyExist(property) || entity.isConstructorArgument(property)) {
                return;
            }

            Object obj = propertyValueProvider.getPropertyValue(property);
            setPropertyInternal(propertyAccessor, property, obj);
        }
    });

    entity.doWithAssociations(new AssociationHandler<ClusterpointPersistentProperty>() {
        @Override
        public void doWithAssociation(@NotNull Association<ClusterpointPersistentProperty> association) {

            Assert.notNull(association);

            ClusterpointPersistentProperty inverseProperty = association.getInverse();
            Object obj = propertyValueProvider.getPropertyValue(inverseProperty);
            setPropertyInternal(propertyAccessor, inverseProperty, obj);
        }
    });

    return (R) propertyAccessor.getBean();
}

From source file:org.springframework.data.gemfire.mapping.MappingPdxSerializer.java

@Override
public Object fromData(final Class<?> type, final PdxReader reader) {
    final GemfirePersistentEntity<?> entity = getPersistentEntity(type);

    final Object instance = getInstantiatorFor(entity).createInstance(entity,
            new PersistentEntityParameterValueProvider<GemfirePersistentProperty>(entity,
                    new GemfirePropertyValueProvider(reader), null));

    final PersistentPropertyAccessor accessor = new ConvertingPropertyAccessor(
            entity.getPropertyAccessor(instance), getConversionService());

    entity.doWithProperties(new PropertyHandler<GemfirePersistentProperty>() {
        public void doWithPersistentProperty(GemfirePersistentProperty persistentProperty) {
            if (!entity.isConstructorArgument(persistentProperty)) {
                PdxSerializer customSerializer = getCustomSerializer(persistentProperty.getType());

                Object value = null;

                try {
                    if (log.isDebugEnabled()) {
                        log.debug(String.format(
                                "setting property [%1$s] for entity [%2$s] of type [%3$s] from PDX%4$s",
                                persistentProperty.getName(), instance, type,
                                (customSerializer != null
                                        ? String.format(" using custom PdxSerializer [%1$s]", customSerializer)
                                        : "")));
                    }/* www  .j a  va 2s  .  com*/

                    value = (customSerializer != null
                            ? customSerializer.fromData(persistentProperty.getType(), reader)
                            : reader.readField(persistentProperty.getName()));

                    if (log.isDebugEnabled()) {
                        log.debug(String.format("with value [%1$s]", value));
                    }

                    accessor.setProperty(persistentProperty, value);
                } catch (Exception e) {
                    throw new MappingException(String.format(
                            "while setting value [%1$s] of property [%2$s] for entity of type [%3$s] from PDX%4$s",
                            value, persistentProperty.getName(), type,
                            (customSerializer != null
                                    ? String.format(" using custom PdxSerializer [%14s]", customSerializer)
                                    : "")),
                            e);
                }
            }
        }
    });

    return accessor.getBean();
}