Search in sources :

Example 46 with Value

use of jakarta.nosql.Value in project jnosql-diana by eclipse.

the class PutQueryParser method prepare.

public KeyValuePreparedStatement prepare(String query, BucketManager manager) {
    PutQuery putQuery = provider.apply(query);
    Params params = Params.newParams();
    Value key = Values.getValue(putQuery.getKey(), params);
    Value value = Values.getValue(putQuery.getValue(), params);
    Optional<Duration> ttl = putQuery.getTtl();
    return DefaultKeyValuePreparedStatement.put(key, value, manager, params, ttl.orElse(null), query);
}
Also used : Value(jakarta.nosql.Value) Params(jakarta.nosql.Params) Duration(java.time.Duration) PutQuery(jakarta.nosql.query.PutQuery)

Example 47 with Value

use of jakarta.nosql.Value in project jnosql-diana by eclipse.

the class DefaultKeyValueEntityTest method shouldGetValue.

@Test
public void shouldGetValue() {
    Value value = Value.of("value");
    KeyValueEntity entity = KeyValueEntity.of("key", value);
    assertNotNull(entity);
    assertEquals("value", entity.getValue());
}
Also used : Value(jakarta.nosql.Value) KeyValueEntity(jakarta.nosql.keyvalue.KeyValueEntity) Test(org.junit.jupiter.api.Test)

Example 48 with Value

use of jakarta.nosql.Value in project jnosql-diana by eclipse.

the class DefaultKeyValueEntityTest method shouldGetKeyClass.

@Test
public void shouldGetKeyClass() {
    Value value = Value.of("value");
    KeyValueEntity entity = KeyValueEntity.of("10", value);
    assertNotNull(entity);
    assertEquals(Long.valueOf(10L), entity.getKey(Long.class));
}
Also used : Value(jakarta.nosql.Value) KeyValueEntity(jakarta.nosql.keyvalue.KeyValueEntity) Test(org.junit.jupiter.api.Test)

Example 49 with Value

use of jakarta.nosql.Value in project jnosql-diana by eclipse.

the class Values method get.

private static Object get(QueryValue<?> value, Params parameters) {
    ValueType type = value.getType();
    switch(type) {
        case NUMBER:
        case STRING:
            return value.get();
        case PARAMETER:
            return parameters.add(ParamQueryValue.class.cast(value).get());
        case ARRAY:
            return Stream.of(ArrayQueryValue.class.cast(value).get()).map(v -> get(v, parameters)).collect(toList());
        case FUNCTION:
            Function function = FunctionQueryValue.class.cast(value).get();
            String name = function.getName();
            Object[] params = function.getParams();
            if ("convert".equals(name)) {
                return executeConvert(parameters, params);
            }
            String message = String.format("There is not support to the function: %s with parameters %s", name, Arrays.toString(params));
            throw new QueryException(message);
        case JSON:
            return JSONQueryValue.class.cast(value).get().toString();
        case CONDITION:
        default:
            throw new QueryException("There is not support to the value: " + type);
    }
}
Also used : ParamQueryValue(jakarta.nosql.query.ParamQueryValue) Arrays(java.util.Arrays) FunctionQueryValue(jakarta.nosql.query.FunctionQueryValue) Value(jakarta.nosql.Value) QueryValue(jakarta.nosql.query.QueryValue) Collectors.toList(java.util.stream.Collectors.toList) Stream(java.util.stream.Stream) ValueType(jakarta.nosql.query.ValueType) ArrayQueryValue(jakarta.nosql.query.ArrayQueryValue) QueryException(jakarta.nosql.QueryException) Function(jakarta.nosql.query.Function) JSONQueryValue(jakarta.nosql.query.JSONQueryValue) Params(jakarta.nosql.Params) Function(jakarta.nosql.query.Function) QueryException(jakarta.nosql.QueryException) ValueType(jakarta.nosql.query.ValueType) FunctionQueryValue(jakarta.nosql.query.FunctionQueryValue)

Example 50 with Value

use of jakarta.nosql.Value in project jnosql-diana by eclipse.

the class DefaultKeyValueQueryParserTest method shouldReturnSingleResult.

@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "get @id" })
public void shouldReturnSingleResult(String query) {
    Mockito.when(manager.get(10)).thenReturn(Optional.of(Value.of(10L)));
    ArgumentCaptor<Object> captor = ArgumentCaptor.forClass(List.class);
    KeyValuePreparedStatement prepare = parser.prepare(query, manager);
    prepare.bind("id", 10);
    final Optional<Value> result = prepare.getSingleResult();
    Mockito.verify(manager).get(captor.capture());
    List<Object> value = captor.getAllValues();
    assertEquals(1, value.size());
    MatcherAssert.assertThat(value, Matchers.contains(10));
    assertEquals(10L, result.get().get());
}
Also used : KeyValuePreparedStatement(jakarta.nosql.keyvalue.KeyValuePreparedStatement) Value(jakarta.nosql.Value) ValueSource(org.junit.jupiter.params.provider.ValueSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Aggregations

Value (jakarta.nosql.Value)66 Test (org.junit.jupiter.api.Test)53 Params (jakarta.nosql.Params)23 List (java.util.List)16 TypeReference (jakarta.nosql.TypeReference)7 KeyValueEntity (jakarta.nosql.keyvalue.KeyValueEntity)7 KeyValuePreparedStatement (jakarta.nosql.keyvalue.KeyValuePreparedStatement)7 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)7 QueryException (jakarta.nosql.QueryException)6 Column (jakarta.nosql.column.Column)6 BigInteger (java.math.BigInteger)6 Collectors.toList (java.util.stream.Collectors.toList)6 Stream (java.util.stream.Stream)6 ColumnQuery (jakarta.nosql.column.ColumnQuery)5 Map (java.util.Map)5 ServiceLoaderProvider (jakarta.nosql.ServiceLoaderProvider)4 BucketManager (jakarta.nosql.keyvalue.BucketManager)4 Person (jakarta.nosql.tck.entities.Person)4 Predicate (com.hazelcast.query.Predicate)3 ColumnCondition (jakarta.nosql.column.ColumnCondition)3