Search in sources :

Example 1 with Builder

use of com.google.cloud.datastore.FullEntity.Builder in project spring-cloud-gcp by spring-cloud.

the class TwoStepsConversions method applyEntityValueBuilder.

private EntityValue applyEntityValueBuilder(Object val, String kindName, Consumer<Builder> consumer, boolean createKey) {
    FullEntity.Builder<IncompleteKey> builder;
    if (!createKey) {
        builder = FullEntity.newBuilder();
    } else {
        /* The following does 3 sequential null checks. We only want an ID value if the object isn't null,
				has an ID property, and the ID property isn't null.
			* */
        Optional idProp = Optional.ofNullable(val).map(v -> this.datastoreMappingContext.getPersistentEntity(v.getClass())).map(datastorePersistentEntity -> datastorePersistentEntity.getIdProperty()).map(id -> this.datastoreMappingContext.getPersistentEntity(val.getClass()).getPropertyAccessor(val).getProperty(id));
        IncompleteKey key = idProp.isPresent() ? this.objectToKeyFactory.getKeyFromId(idProp.get(), kindName) : this.objectToKeyFactory.getIncompleteKey(kindName);
        builder = FullEntity.newBuilder(key);
    }
    consumer.accept(builder);
    return EntityValue.of(builder.build());
}
Also used : FullEntity(com.google.cloud.datastore.FullEntity) DatastoreMappingContext(org.springframework.cloud.gcp.data.datastore.core.mapping.DatastoreMappingContext) Arrays(java.util.Arrays) CustomConversions(org.springframework.data.convert.CustomConversions) BiFunction(java.util.function.BiFunction) Builder(com.google.cloud.datastore.FullEntity.Builder) TypeInformation(org.springframework.data.util.TypeInformation) Function(java.util.function.Function) ArrayList(java.util.ArrayList) ValueUtil(org.springframework.cloud.gcp.data.datastore.core.util.ValueUtil) ClassTypeInformation(org.springframework.data.util.ClassTypeInformation) Map(java.util.Map) StreamSupport(java.util.stream.StreamSupport) ValueUtil.boxIfNeeded(org.springframework.cloud.gcp.data.datastore.core.util.ValueUtil.boxIfNeeded) Converter(org.springframework.core.convert.converter.Converter) ClassUtils(org.springframework.util.ClassUtils) BaseEntity(com.google.cloud.datastore.BaseEntity) DatastoreDataException(org.springframework.cloud.gcp.data.datastore.core.mapping.DatastoreDataException) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) EntityValue(com.google.cloud.datastore.EntityValue) GenericConversionService(org.springframework.core.convert.support.GenericConversionService) ConversionException(org.springframework.core.convert.ConversionException) Collectors(java.util.stream.Collectors) IncompleteKey(com.google.cloud.datastore.IncompleteKey) Consumer(java.util.function.Consumer) List(java.util.List) Value(com.google.cloud.datastore.Value) DatastorePersistentProperty(org.springframework.cloud.gcp.data.datastore.core.mapping.DatastorePersistentProperty) EmbeddedType(org.springframework.cloud.gcp.data.datastore.core.mapping.EmbeddedType) Optional(java.util.Optional) Blob(com.google.cloud.datastore.Blob) ListValue(com.google.cloud.datastore.ListValue) DefaultConversionService(org.springframework.core.convert.support.DefaultConversionService) Assert(org.springframework.util.Assert) Optional(java.util.Optional) FullEntity(com.google.cloud.datastore.FullEntity) IncompleteKey(com.google.cloud.datastore.IncompleteKey)

Aggregations

BaseEntity (com.google.cloud.datastore.BaseEntity)1 Blob (com.google.cloud.datastore.Blob)1 EntityValue (com.google.cloud.datastore.EntityValue)1 FullEntity (com.google.cloud.datastore.FullEntity)1 Builder (com.google.cloud.datastore.FullEntity.Builder)1 IncompleteKey (com.google.cloud.datastore.IncompleteKey)1 ListValue (com.google.cloud.datastore.ListValue)1 Value (com.google.cloud.datastore.Value)1 ArrayList (java.util.ArrayList)1 Arrays (java.util.Arrays)1 List (java.util.List)1 Map (java.util.Map)1 Optional (java.util.Optional)1 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)1 BiFunction (java.util.function.BiFunction)1 Consumer (java.util.function.Consumer)1 Function (java.util.function.Function)1 Collectors (java.util.stream.Collectors)1 StreamSupport (java.util.stream.StreamSupport)1 DatastoreDataException (org.springframework.cloud.gcp.data.datastore.core.mapping.DatastoreDataException)1