package org.debian.maven.packager;
import java.util.Collection;
import java.util.EnumMap;
import java.util.Properties;
import java.util.Set;
import java.util.TreeSet;
import org.debian.maven.util.Strings;
public class DebianDependencies {
public final EnumMap<Type, Set<DebianDependency>> deps = new EnumMap<Type, Set<DebianDependency>>(Type.class);
public DebianDependencies() {
for (Type type : Type.values()) {
deps.put(type, new TreeSet<DebianDependency>());
}
}
public void add(Type type, DebianDependency dependency) {
this.deps.get(type).add(dependency);
}
public void add(Type type, Collection<DebianDependency> dependencies) {
get(type).addAll(dependencies);
}
public Set<DebianDependency> get(Type type) {
return deps.get(type);
}
public void putInProperties(Properties depVars) {
for (Type type : Type.values()) {
depVars.put(type.substvarName, Strings.join(deps.get(type), ", "));
}
}
public static enum Type {
COMPILE("maven.CompileDepends"),
TEST("maven.TestDepends"),
RUNTIME("maven.Depends"),
OPTIONAL("maven.OptionalDepends"),
DOC_RUNTIME("maven.DocDepends"),
DOC_OPTIONAL("maven.DocOptionalDepends");
public final String substvarName;
Type(String substvarName) {
this.substvarName = substvarName;
}
}
}