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

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

package com.capitalone.dashboard.repository;

import com.capitalone.dashboard.model.BinaryArtifact;
import org.bson.types.ObjectId;

import java.util.Map;

public interface BinaryArtifactRepository extends QueryRepository {

    String ARTIFACT_NAME = "artifactName";
    String ARTIFACT_GROUPID = "artifactGroupId";
    String ARTIFACT_MODULE = "artifactModule";
    String ARTIFACT_VERSION = "artifactVersion";
    String ARTIFACT_CLASSIFIER = "artifactClassifier";
    String ARTIFACT_EXTENSION = "artifactExtension";
    String BUILD_INFO_ID = "buildInfo.id";

    Iterable findByCollectorItemId(ObjectId collectorItemId);

    default Iterable findByAttributes(Object collectorItemId, String artifactGroupId, String artifactModule, String artifactVersion, String artifactName, String artifactClassifier, String artifactExtension) {
        String query = "collectorItemId eq " + quote(collectorItemId.toString());
        query = and(query) + getCommonQuery(artifactGroupId, artifactModule, artifactVersion, artifactName, artifactClassifier, artifactExtension);
        return findAll(query);
    }

    default Iterable findByAttributes(String artifactGroupId, String artifactModule, String artifactVersion, String artifactName, String artifactClassifier, String artifactExtension) {
        String query = getCommonQuery(artifactGroupId, artifactModule, artifactVersion, artifactName, artifactClassifier, artifactExtension);
        return findAll(query);
    }

    default String getCommonQuery(String artifactGroupId, String artifactModule, String artifactVersion, String artifactName, String artifactClassifier, String artifactExtension) {
        String query = "artifactGroupId eq " + quote(artifactGroupId);
        query = and(query) + "artifactModule eq " + quote(artifactModule);
        query = and(query) + "artifactVersion eq " + quote(artifactVersion);
        query = and(query) + "artifactName eq " + quote(artifactName);
        query = and(query) + "artifactClassifier eq " + quote(artifactClassifier);
        return and(query) + "artifactExtension eq " + quote(artifactExtension);
    }

    default Iterable findByBuildInfoId(ObjectId artifactBuildId) {
        return findAll("buildInfo.id eq " + quote(artifactBuildId.toHexString()));
    }

    Iterable findByArtifactNameAndTimestampGreaterThan(String artifactName, Long timestamp);

    Iterable findByArtifactNameAndArtifactExtensionAndTimestampGreaterThan(String artifactName, String artifactExtension, Long timestamp);

    default Iterable findByMetadataBuildUrl(String buildUrl) {
        return findAll("metadata.buildUrl equalsIgnoreCase " + quote(buildUrl));
    }

    default Iterable findByAttributes(Map attributes) {
        String query = "";
        for (Map.Entry e : attributes.entrySet()) {
            query = and(query) + e.getKey() + " eq " + quote(e.getValue());
        }
        return findAll(query);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy