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

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

package com.capitalone.dashboard.repository;

import com.capitalone.dashboard.model.CollectorItem;
import org.bson.types.ObjectId;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * Base {@link CollectorItem} repository that provides methods useful for any {@link CollectorItem}
 * implementation.
 *
 * @param  Class that extends {@link CollectorItem}
 */
public interface BaseCollectorItemRepository extends QueryRepository {
    Logger LOGGER = LoggerFactory.getLogger(BaseCollectorItemRepository.class);

    /**
     * Finds all {@link CollectorItem}s that are enabled.
     *
     * @return list of {@link CollectorItem}s
     */
    List findByEnabledIsTrue();

    /**
     * Finds all {@link CollectorItem}s that match the provided id's.
     *
     * @param ids {@link Collection} of ids
     * @return list of {@link CollectorItem}s
     */
    List findByCollectorIdIn(Collection ids);

    /**
     * Finds all {@link CollectorItem}s that match the provided id's.
     *
     * @param ids {@link Collection} of ids
     * @param pageable
     * @return Page of {@link CollectorItem}s
     */
    Page findByCollectorIdIn(Collection ids, Pageable pageable);
    
    /**
     * Finds paged results of {@link CollectorItem}s that match the provided id's.
     *
     * @param ids {@link Collection} of ids
     * @param description {@link String}
     * @param pageable {@link org.springframework.data.domain.Pageable} object to determine which page to return
     * @return page of {@link CollectorItem}s
     */
    Page findByCollectorIdInAndDescriptionContainingIgnoreCase(Collection ids, String description, Pageable pageable);

    /**
     * Finds the {@link CollectorItem} for a given collector and options. This should represent a unique
     * instance of a {@link CollectorItem} for a given {@link com.capitalone.dashboard.model.Collector}.
     *
     * @param collectorId {@link com.capitalone.dashboard.model.Collector} id
     * @param options     options
     * @return a {@link CollectorItem}
     */

    T findByCollectorAndOptions(ObjectId collectorId, Map options);

    List findByCollectorIdAndNiceName(ObjectId collectorId, String niceName);

    Page findByCollectorIdInAndDescriptionContainingAndNiceNameContainingAllIgnoreCase(Collection ids, String jobName, String niceName, Pageable pageable);

    default T findOne(ObjectId id) {
        return findOne("id eq '" + id + '\'');
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy