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

com.alexvasilkov.vcs.util.DependenciesHelper.groovy Maven / Gradle / Ivy

package com.alexvasilkov.vcs.util

import com.alexvasilkov.vcs.dependency.VcsDependency

class DependenciesHelper {

    private final Map byName = new HashMap<>()
    private final Map> byProject = new HashMap<>()

    void add(String projectName, VcsDependency dependency) {
        dependency.check()

        // Checking if there are no dependencies with same name,
        // or if existing dependency is completely the same
        VcsDependency existing = byName.get(dependency.name)

        if (existing != null) {
            existing.checkEquals(dependency)
        } else {
            byName.put(dependency.name, dependency)
        }

        // Adding per-project dependency
        List list = byProject.get(projectName)
        if (list == null) {
            list = new ArrayList()
            byProject.put(projectName, list)
        }
        list.add(dependency)

        println "Added vcs dependency '${dependency.name}' for '${projectName}'"
    }

    List get(String projectName) {
        return byProject.containsKey(projectName) ? byProject.get(projectName) : Collections.EMPTY_LIST
    }

    Collection all() {
        return byName.values()
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy