@Bean @ConditionalOnMissingBean public ReadWriteConversions datastoreReadWriteConversions(DatastoreCustomConversions customConversions, ObjectToKeyFactory objectToKeyFactory) { return new TwoStepsConversions(customConversions, objectToKeyFactory); }
private EntityValue convertOnWriteSingleEmbeddedMap(Object val, String kindName, TypeInformation valueTypeInformation) { return applyEntityValueBuilder(kindName, (builder) -> { Map map = (Map) val; for (Object key : map.keySet()) { String field = convertOnReadSingle(key, ClassTypeInformation.from(String.class)); builder.set(field, convertOnWrite(map.get(key), EmbeddedType.of(valueTypeInformation), field, valueTypeInformation)); } }); }
@Override public <T> T convertOnRead(Object val, Class targetCollectionType, Class targetComponentType) { return (T) convertOnRead(val, EmbeddedType.NOT_EMBEDDED, targetCollectionType, ClassTypeInformation.from(targetComponentType)); }
switch (embeddedType) { case EMBEDDED_MAP: writeConverter = (x) -> convertOnWriteSingleEmbeddedMap(x, fieldName, (TypeInformation) typeInformation.getTypeArguments().get(1)); break; case EMBEDDED_ENTITY: writeConverter = (x) -> convertOnWriteSingleEmbedded(x, fieldName); break; case NOT_EMBEDDED:
switch (embeddedType) { case EMBEDDED_MAP: readConverter = (x, typeInformation) -> convertOnReadSingleEmbeddedMap(x, typeInformation.getTypeArguments().get(0).getType(), typeInformation.getTypeArguments().get(1)); targetComponentType)) .collect(Collectors.toList()); return (T) convertCollection(elements, targetCollectionType);
@Override @SuppressWarnings("unchecked") public Value convertOnWriteSingle(Object propertyVal) { Object result = propertyVal; if (result != null) { TypeTargets typeTargets = computeTypeTargets(result.getClass()); if (typeTargets.getFirstStepTarget() != null) { result = this.conversionService.convert(propertyVal, typeTargets.getFirstStepTarget()); } if (typeTargets.getSecondStepTarget() != null) { result = this.internalConversionService.convert(result, typeTargets.getSecondStepTarget()); } } return DatastoreNativeTypes.wrapValue(result); }
@Override public Value convertOnWrite(Object proppertyVal, DatastorePersistentProperty persistentProperty) { return convertOnWrite(proppertyVal, persistentProperty.getEmbeddedType(), persistentProperty.getFieldName(), persistentProperty.getTypeInformation()); }
private EntityValue convertOnWriteSingleEmbedded(Object val, String kindName) { return applyEntityValueBuilder(kindName, (builder) -> this.datastoreEntityConverter.write(val, builder)); }
switch (embeddedType) { case EMBEDDED_MAP: writeConverter = (x) -> convertOnWriteSingleEmbeddedMap(x, fieldName, (TypeInformation) typeInformation.getTypeArguments().get(1)); break; case EMBEDDED_ENTITY: writeConverter = (x) -> convertOnWriteSingleEmbedded(x, fieldName); break; case NOT_EMBEDDED:
switch (embeddedType) { case EMBEDDED_MAP: readConverter = (x, typeInformation) -> convertOnReadSingleEmbeddedMap(x, typeInformation.getTypeArguments().get(0).getType(), typeInformation.getTypeArguments().get(1)); targetComponentType)) .collect(Collectors.toList()); return (T) convertCollection(elements, targetCollectionType);
@Override @SuppressWarnings("unchecked") public Value convertOnWriteSingle(Object propertyVal) { Object result = propertyVal; if (result != null) { TypeTargets typeTargets = computeTypeTargets(result.getClass()); if (typeTargets.getFirstStepTarget() != null) { result = this.conversionService.convert(propertyVal, typeTargets.getFirstStepTarget()); } if (typeTargets.getSecondStepTarget() != null) { result = this.internalConversionService.convert(result, typeTargets.getSecondStepTarget()); } } return DatastoreNativeTypes.wrapValue(result); }
@Override public Value convertOnWrite(Object proppertyVal, DatastorePersistentProperty persistentProperty) { return convertOnWrite(proppertyVal, persistentProperty.getEmbeddedType(), persistentProperty.getFieldName(), persistentProperty.getTypeInformation()); }
private EntityValue convertOnWriteSingleEmbedded(Object val, String kindName) { return applyEntityValueBuilder(kindName, (builder) -> this.datastoreEntityConverter.write(val, builder)); }
private EntityValue convertOnWriteSingleEmbeddedMap(Object val, String kindName, TypeInformation valueTypeInformation) { return applyEntityValueBuilder(kindName, (builder) -> { Map map = (Map) val; for (Object key : map.keySet()) { String field = convertOnReadSingle(key, ClassTypeInformation.from(String.class)); builder.set(field, convertOnWrite(map.get(key), EmbeddedType.of(valueTypeInformation), field, valueTypeInformation)); } }); }
public DefaultDatastoreEntityConverter(DatastoreMappingContext mappingContext, ObjectToKeyFactory objectToKeyFactory) { this(mappingContext, new TwoStepsConversions(new DatastoreCustomConversions(), objectToKeyFactory)); }
@Override public <T> T convertOnRead(Object val, Class targetCollectionType, Class targetComponentType) { return (T) convertOnRead(val, EmbeddedType.NOT_EMBEDDED, targetCollectionType, ClassTypeInformation.from(targetComponentType)); }
Class sourceType = val.getClass(); Object result = null; TypeTargets typeTargets = computeTypeTargets(targetType);
public DefaultDatastoreEntityConverter(DatastoreMappingContext mappingContext, ObjectToKeyFactory objectToKeyFactory) { this(mappingContext, new TwoStepsConversions(new DatastoreCustomConversions(), objectToKeyFactory)); }
@Override public <T> T convertOnRead(Object val, EmbeddedType embeddedType, TypeInformation targetTypeInformation) { TypeInformation componentTypeInformation; Class collectionType = null; if (targetTypeInformation.isCollectionLike()) { componentTypeInformation = targetTypeInformation.getComponentType(); collectionType = targetTypeInformation.getType(); } else { componentTypeInformation = targetTypeInformation; } return convertOnRead(val, embeddedType, collectionType, componentTypeInformation); }
Class sourceType = val.getClass(); Object result = null; TypeTargets typeTargets = computeTypeTargets(targetType);