List of usage examples for org.springframework.data.convert EntityInstantiator createInstance
<T, E extends PersistentEntity<? extends T, P>, P extends PersistentProperty<P>> T createInstance(E entity, ParameterValueProvider<P> provider);
From source file:com.couchbase.spring.core.convert.MappingCouchbaseConverter.java
public <R> R read(Class<R> type, final ConvertedCouchbaseDocument doc, Object parent) { final CouchbasePersistentEntity<R> entity = (CouchbasePersistentEntity<R>) mappingContext .getPersistentEntity(type);//from w w w.j a v a 2 s.c o m ParameterValueProvider<CouchbasePersistentProperty> provider = getParameterProvider(entity, doc, parent); EntityInstantiator instantiator = instantiators.getInstantiatorFor(entity); R instance = instantiator.createInstance(entity, provider); final BeanWrapper<CouchbasePersistentEntity<R>, R> wrapper = BeanWrapper.create(instance, conversionService); final R result = wrapper.getBean(); // Set properties not already set in the constructor entity.doWithProperties(new PropertyHandler<CouchbasePersistentProperty>() { public void doWithPersistentProperty(CouchbasePersistentProperty prop) { boolean isConstructorProperty = entity.isConstructorArgument(prop); boolean hasValueForProperty = doc.containsField(prop.getFieldName()); if (!hasValueForProperty || isConstructorProperty) { return; } Object obj = null; if (prop.isIdProperty()) { obj = doc.getId(); } else { obj = doc.get(prop.getFieldName()); } wrapper.setProperty(prop, obj, useFieldAccessOnly); } }); return result; }
From source file:org.develspot.data.orientdb.convert.MappingOrientConverter.java
@SuppressWarnings("unchecked") private <S extends Object> S read(final OrientPersistentEntity<S> entity, final OrientElement dbObject, boolean lazy) { OrientMappingInstance mappingInstance = MappingInstanceHolder.getMappingInstance(); //check if entity is already loaded if (mappingInstance.instanceLoaded(dbObject.getId())) { return (S) mappingInstance.get(dbObject.getId()); }/*from w w w .j av a 2 s. c o m*/ EntityInstantiator instantiator = instantiators.getInstantiatorFor(entity); final DefaultOrientPropertyValueProvider objectResolver = new DefaultOrientPropertyValueProvider(dbObject, this, spELContext, lazy); PersistentEntityParameterValueProvider<OrientPersistentProperty> parameterProvider = new PersistentEntityParameterValueProvider<OrientPersistentProperty>( entity, objectResolver, null); S instance = instantiator.createInstance(entity, parameterProvider); final BeanWrapper<OrientPersistentEntity<S>, S> wrapper = BeanWrapper.create(instance, conversionService); final S result = wrapper.getBean(); mappingInstance.addInstance(dbObject.getId(), result); // Set properties not already set in the constructor entity.doWithProperties(new PropertyHandler<OrientPersistentProperty>() { public void doWithPersistentProperty(OrientPersistentProperty prop) { if (!prop.isIdProperty() && (dbObject.getProperty(prop.getField().getName()) == null || entity.isConstructorArgument(prop))) { return; } Object obj = objectResolver.getPropertyValue(prop); wrapper.setProperty(prop, obj, fieldAccessOnly); } }); entity.doWithAssociations(new AssociationHandler<OrientPersistentProperty>() { public void doWithAssociation(Association<OrientPersistentProperty> association) { OrientPersistentProperty inverse = association.getInverse(); Object resolved = objectResolver.getPropertyValue(inverse); wrapper.setProperty(inverse, resolved); } }); return result; }
From source file:com.frank.search.solr.core.convert.MappingSolrConverter.java
private <S extends Object> S read(final SolrPersistentEntity<S> entity, final Map<String, ?> source, Object parent) {//w ww . ja v a2 s . com ParameterValueProvider<SolrPersistentProperty> parameterValueProvider = getParameterValueProvider(entity, source, parent); EntityInstantiator instantiator = instantiators.getInstantiatorFor(entity); final S instance = instantiator.createInstance(entity, parameterValueProvider); final PersistentPropertyAccessor accessor = new ConvertingPropertyAccessor( entity.getPropertyAccessor(instance), getConversionService()); entity.doWithProperties(new PropertyHandler<SolrPersistentProperty>() { @Override public void doWithPersistentProperty(SolrPersistentProperty persistentProperty) { if (entity.isConstructorArgument(persistentProperty)) { return; } Object o = getValue(persistentProperty, source, instance); if (o != null) { accessor.setProperty(persistentProperty, o); } } }); return instance; }
From source file:com.joyveb.dbpimpl.cass.prepare.convert.MappingCassandraConverter.java
private <S extends Object> S readRowInternal(final CassandraPersistentEntity<S> entity, final Row row) { final DefaultSpELExpressionEvaluator evaluator = new DefaultSpELExpressionEvaluator(row, spELContext); final PropertyValueProvider<CassandraPersistentProperty> propertyProvider = new CassandraPropertyValueProvider( row, evaluator);/* w w w . ja v a 2s .c o m*/ PersistentEntityParameterValueProvider<CassandraPersistentProperty> parameterProvider = new PersistentEntityParameterValueProvider<CassandraPersistentProperty>( entity, propertyProvider, null); EntityInstantiator instantiator = instantiators.getInstantiatorFor(entity); S instance = instantiator.createInstance(entity, parameterProvider); final BeanWrapper<CassandraPersistentEntity<S>, S> wrapper = BeanWrapper.create(instance, conversionService); final S result = wrapper.getBean(); // Set properties not already set in the constructor entity.doWithProperties(new ReadPropertyHandler<S>(entity, row, propertyProvider, wrapper)); return result; }
From source file:io.twipple.springframework.data.clusterpoint.convert.DefaultClusterpointEntityConverter.java
/** * Creates a new {@link PersistentPropertyAccessor} for the given entity. * * @param entity the persistent entity. * @param provider the parameter value provider. * @param <R> the entity type. * @return a new {@link PersistentPropertyAccessor}. *///w w w.j av a 2 s .co m @NotNull private <R> PersistentPropertyAccessor getPersistentPropertyAccessor( @NotNull ClusterpointPersistentEntity<R> entity, @NotNull ParameterValueProvider<ClusterpointPersistentProperty> provider) { Assert.notNull(entity); Assert.notNull(provider); EntityInstantiator instantiator = instantiators.getInstantiatorFor(entity); R instance = instantiator.createInstance(entity, provider); return entity.getPropertyAccessor(instance); }
From source file:org.springframework.data.solr.core.convert.MappingSolrConverter.java
private <S extends Object> S read(final SolrPersistentEntity<S> entity, final Map<String, ?> source, Object parent) {/*from ww w . j a va 2 s . c o m*/ ParameterValueProvider<SolrPersistentProperty> parameterValueProvider = getParameterValueProvider(entity, source, parent); EntityInstantiator instantiator = instantiators.getInstantiatorFor(entity); final S instance = instantiator.createInstance(entity, parameterValueProvider); final PersistentPropertyAccessor accessor = new ConvertingPropertyAccessor( entity.getPropertyAccessor(instance), getConversionService()); entity.doWithProperties(new PropertyHandler<SolrPersistentProperty>() { @Override public void doWithPersistentProperty(SolrPersistentProperty persistentProperty) { if (entity.isConstructorArgument(persistentProperty)) { return; } Object o = getValue(persistentProperty, source, instance); if (o != null) { accessor.setProperty(persistentProperty, o); } } }); return instance; }