All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.capitalone.dashboard.repository.QueryRepository Maven / Gradle / Ivy

The newest version!
package com.capitalone.dashboard.repository;


import com.capitalone.dashboard.query.model.QueryException;
import com.capitalone.dashboard.query.repository.OneQueryExecutor;
import org.apache.commons.collections4.IterableUtils;
import org.bson.types.ObjectId;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.domain.Page;
import org.springframework.data.repository.NoRepositoryBean;

import java.util.Collection;
import java.util.Collections;
import java.util.List;


@NoRepositoryBean
public interface QueryRepository extends OneQueryExecutor {
    Logger LOGGER = LoggerFactory.getLogger(QueryRepository.class);


    default List findAll (String query) {
        try {
            return IterableUtils.toList(find(query));
        } catch (QueryException qe) {
            LOGGER.error(qe.getMessage(), qe);
            return Collections.emptyList();
        }
    }

    default Page findAllAsPage (String query) {
        try {
            return (Page) find(query);
        } catch (QueryException qe) {
            LOGGER.error(qe.getMessage(), qe);
            return (Page) IterableUtils.emptyIterable();
        }
    }

    @Override
    default T findOne (String query) {
        try {
            Iterable items = find(query);
            if (IterableUtils.isEmpty(items)) {
                return null;
            } else {
                return IterableUtils.toList(items).get(0);
            }
        } catch (QueryException qe) {
            LOGGER.error(qe.getMessage(), qe);
            return null;
        }
    }

    default T findOne (ObjectId id) {
        return findOne("id eq " + quote(id.toHexString()));
    }

    default Iterable save (Collection documents) {
        return saveAll(documents);
    }

    default Iterable save (Iterable documents) {
        return saveAll(documents);
    }

    default void delete (Collection documents) {
        deleteAll(documents);
    }

    default void delete (Iterable documents) {
        deleteAll(documents);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy