Search in sources :

Example 6 with ClassRepresentation

use of org.jnosql.artemis.reflection.ClassRepresentation in project jnosql-artemis by eclipse.

the class DefaultColumnQueryMapperBuilder method deleteFrom.

@Override
public <T> ColumnDeleteFrom deleteFrom(Class<T> entityClass) {
    requireNonNull(entityClass, "entity is required");
    ClassRepresentation representation = classRepresentations.get().get(entityClass);
    return new DefaultColumnMapperDeleteBuilder(representation, converters.get());
}
Also used : ClassRepresentation(org.jnosql.artemis.reflection.ClassRepresentation)

Example 7 with ClassRepresentation

use of org.jnosql.artemis.reflection.ClassRepresentation in project jnosql-artemis by eclipse.

the class DefaultColumnQueryMapperBuilder method selectFrom.

@Override
public <T> ColumnFrom selectFrom(Class<T> entityClass) {
    requireNonNull(entityClass, "entity is required");
    ClassRepresentation representation = classRepresentations.get().get(entityClass);
    return new DefaultColumnMapperSelectBuilder(representation, converters.get());
}
Also used : ClassRepresentation(org.jnosql.artemis.reflection.ClassRepresentation)

Example 8 with ClassRepresentation

use of org.jnosql.artemis.reflection.ClassRepresentation in project jnosql-artemis by eclipse.

the class AbstractDocumentEntityConverter method toEntity.

@SuppressWarnings("unchecked")
@Override
public <T> T toEntity(DocumentEntity entity) {
    requireNonNull(entity, "entity is required");
    ClassRepresentation representation = getClassRepresentations().findByName(entity.getName());
    T instance = getReflections().newInstance(representation.getConstructor());
    return convertEntity(entity.getDocuments(), representation, instance);
}
Also used : ClassRepresentation(org.jnosql.artemis.reflection.ClassRepresentation)

Example 9 with ClassRepresentation

use of org.jnosql.artemis.reflection.ClassRepresentation in project jnosql-artemis by eclipse.

the class AbstractDocumentTemplate method delete.

@Override
public <T, ID> void delete(Class<T> entityClass, ID id) {
    requireNonNull(entityClass, "entityClass is required");
    requireNonNull(id, "id is required");
    ClassRepresentation classRepresentation = getClassRepresentations().get(entityClass);
    FieldRepresentation idField = classRepresentation.getId().orElseThrow(() -> IdNotFoundException.newInstance(entityClass));
    Object value = ConverterUtil.getValue(id, classRepresentation, idField.getFieldName(), getConverters());
    DocumentDeleteQuery query = DocumentQueryBuilder.delete().from(classRepresentation.getName()).where(idField.getName()).eq(value).build();
    delete(query);
}
Also used : FieldRepresentation(org.jnosql.artemis.reflection.FieldRepresentation) ClassRepresentation(org.jnosql.artemis.reflection.ClassRepresentation) DocumentDeleteQuery(org.jnosql.diana.api.document.DocumentDeleteQuery)

Example 10 with ClassRepresentation

use of org.jnosql.artemis.reflection.ClassRepresentation in project jnosql-artemis by eclipse.

the class AbstractDocumentTemplateAsync method find.

@Override
public <T, ID> void find(Class<T> entityClass, ID id, Consumer<Optional<T>> callBack) {
    requireNonNull(entityClass, "entityClass is required");
    requireNonNull(id, "id is required");
    requireNonNull(callBack, "callBack is required");
    ClassRepresentation classRepresentation = getClassRepresentations().get(entityClass);
    FieldRepresentation idField = classRepresentation.getId().orElseThrow(() -> IdNotFoundException.newInstance(entityClass));
    Object value = ConverterUtil.getValue(id, classRepresentation, idField.getFieldName(), getConverters());
    DocumentQuery query = DocumentQueryBuilder.select().from(classRepresentation.getName()).where(idField.getName()).eq(value).build();
    singleResult(query, callBack);
}
Also used : FieldRepresentation(org.jnosql.artemis.reflection.FieldRepresentation) DocumentQuery(org.jnosql.diana.api.document.DocumentQuery) ClassRepresentation(org.jnosql.artemis.reflection.ClassRepresentation)

Aggregations

ClassRepresentation (org.jnosql.artemis.reflection.ClassRepresentation)29 FieldRepresentation (org.jnosql.artemis.reflection.FieldRepresentation)11 Test (org.junit.jupiter.api.Test)6 Field (java.lang.reflect.Field)2 Optional (java.util.Optional)2 Converters (org.jnosql.artemis.Converters)2 Money (org.jnosql.artemis.model.Money)2 Value (org.jnosql.diana.api.Value)2 ColumnQuery (org.jnosql.diana.api.column.ColumnQuery)2 DocumentQuery (org.jnosql.diana.api.document.DocumentQuery)2 ColumnDeleteQuery (org.jnosql.diana.api.column.ColumnDeleteQuery)1 ColumnEntity (org.jnosql.diana.api.column.ColumnEntity)1 DocumentDeleteQuery (org.jnosql.diana.api.document.DocumentDeleteQuery)1 DocumentEntity (org.jnosql.diana.api.document.DocumentEntity)1