Example usage for org.springframework.data.gemfire.mapping GemfirePropertyValueProvider GemfirePropertyValueProvider

List of usage examples for org.springframework.data.gemfire.mapping GemfirePropertyValueProvider GemfirePropertyValueProvider

Introduction

In this page you can find the example usage for org.springframework.data.gemfire.mapping GemfirePropertyValueProvider GemfirePropertyValueProvider.

Prototype

public GemfirePropertyValueProvider(PdxReader reader) 

Source Link

Document

Creates a new GemfirePropertyValueProvider with the given PdxReader .

Usage

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)
                                        : "")));
                    }// ww w .j  a v a2s.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();
}