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

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

package com.capitalone.dashboard.repository;

import com.capitalone.dashboard.model.Collector;
import com.capitalone.dashboard.model.CollectorItem;
import com.capitalone.dashboard.model.CollectorType;
import com.capitalone.dashboard.model.Component;
import org.bson.types.ObjectId;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.List;
import java.util.stream.Collectors;

/**
 * {@link Component} repository.
 */
public interface ComponentRepository extends QueryRepository {
    Logger LOGGER = LoggerFactory.getLogger(ComponentRepository.class);

    default List findByCollectorTypeAndCollectorItemId(CollectorType type, ObjectId collectorItemId) {
        return findAll("collectorItems." + type + ".id eq " + quote(collectorItemId.toHexString()));
    }

    default List findBySCMCollectorItemId(ObjectId scmCollectorItemId) {
        return findByCollectorTypeAndCollectorItemId(CollectorType.SCM, scmCollectorItemId);
    }

    default List findByBuildCollectorItemId(ObjectId buildCollectorItemId) {
        return findByCollectorTypeAndCollectorItemId(CollectorType.Build, buildCollectorItemId);
    }

    default List findByDeployCollectorItemId(ObjectId deployCollectorItemId) {
        return findByCollectorTypeAndCollectorItemId(CollectorType.Deployment, deployCollectorItemId);
    }

    default List findByIncidentCollectorItems(boolean enabled) {
        return findAll("collectorItems.Incident.enabled eq " + enabled);
    }


    default List findByCollectorTypeAndItemIdIn(CollectorType collectorType, List collectorItemIds) {
        String query = "collectorItems." + collectorType + ".id in " + in(collectorItemIds.stream().map(ObjectId::toHexString).collect(Collectors.toList()));
        return findAll(query);
    }

    default List findComponents(Collector collector) {
        return findAll("collectorItems." + collector.getCollectorType() + ".collectorId eq " + quote(collector.getId().toHexString()));
    }

    default List findComponents(CollectorType collectorType) {
        return findAll("collectorItems." + collectorType + " isNotNull");
    }



    default List findComponents(Collector collector, CollectorItem collectorItem) {
        return findComponents(collector.getId(), collector.getCollectorType(), collectorItem.getId());
    }


    default List findComponents(ObjectId collectorId, CollectorType collectorType, CollectorItem collectorItem) {
        return findComponents(collectorId, collectorType, collectorItem.getId());
    }

    default List findComponents(ObjectId collectorId, CollectorType collectorType, ObjectId collectorItemId) {
        return findAll("collectorItems." + collectorType + ".id eq " + quote(collectorItemId.toHexString()));
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy