Search in sources :

Example 16 with Value

use of org.jnosql.diana.api.Value in project jnosql-artemis by eclipse.

the class AbstractKeyValueEntityConverter method toEntity.

@Override
public <T> T toEntity(Class<T> entityClass, KeyValueEntity<?> entity) {
    Value value = entity.getValue();
    T t = value.get(entityClass);
    if (Objects.isNull(t)) {
        return null;
    }
    FieldRepresentation key = getId(entityClass, getClassRepresentations().get(entityClass));
    Object keyValue = getReflections().getValue(t, key.getNativeField());
    if (Objects.isNull(keyValue) || !keyValue.equals(entity.getKey())) {
        getReflections().setValue(t, key.getNativeField(), entity.getKey());
    }
    return t;
}
Also used : FieldRepresentation(org.jnosql.artemis.reflection.FieldRepresentation) Value(org.jnosql.diana.api.Value)

Example 17 with Value

use of org.jnosql.diana.api.Value in project jnosql-artemis by eclipse.

the class ConverterUtil method getValue.

public static Object getValue(Object value, ClassRepresentation representation, String name, Converters converters) {
    Optional<FieldRepresentation> fieldOptional = representation.getFieldRepresentation(name);
    if (fieldOptional.isPresent()) {
        FieldRepresentation field = fieldOptional.get();
        Field nativeField = field.getNativeField();
        if (!nativeField.getType().equals(value.getClass())) {
            return field.getConverter().map(converters::get).map(a -> a.convertToDatabaseColumn(value)).orElseGet(() -> Value.of(value).get(nativeField.getType()));
        }
        return field.getConverter().map(converters::get).map(a -> a.convertToDatabaseColumn(value)).orElse(value);
    }
    return value;
}
Also used : FieldRepresentation(org.jnosql.artemis.reflection.FieldRepresentation) Converters(org.jnosql.artemis.Converters) ClassRepresentation(org.jnosql.artemis.reflection.ClassRepresentation) FieldRepresentation(org.jnosql.artemis.reflection.FieldRepresentation) Value(org.jnosql.diana.api.Value) Optional(java.util.Optional) Field(java.lang.reflect.Field) Field(java.lang.reflect.Field)

Aggregations

Value (org.jnosql.diana.api.Value)17 Test (org.junit.jupiter.api.Test)12 Predicate (com.hazelcast.query.Predicate)3 List (java.util.List)3 Optional (java.util.Optional)3 FieldRepresentation (org.jnosql.artemis.reflection.FieldRepresentation)3 Field (java.lang.reflect.Field)2 Map (java.util.Map)2 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)2 Converters (org.jnosql.artemis.Converters)2 ClassRepresentation (org.jnosql.artemis.reflection.ClassRepresentation)2 TypeReference (org.jnosql.diana.api.TypeReference)2 Column (org.jnosql.diana.api.column.Column)2 ColumnEntity (org.jnosql.diana.api.column.ColumnEntity)2 ColumnQuery (org.jnosql.diana.api.column.ColumnQuery)2 DeleteValue (com.basho.riak.client.api.commands.kv.DeleteValue)1 FetchValue (com.basho.riak.client.api.commands.kv.FetchValue)1 StoreValue (com.basho.riak.client.api.commands.kv.StoreValue)1 IMap (com.hazelcast.core.IMap)1 SqlPredicate (com.hazelcast.query.SqlPredicate)1