package de.is24.deadcode4j;
import com.google.common.base.Function;
import javax.annotation.Nullable;
import java.io.File;
import java.util.Collection;
import java.util.Collections;
import static com.google.common.collect.Lists.transform;
import static java.util.Arrays.asList;
public final class ModuleBuilder {
private ModuleBuilder() {
}
public static Module givenModule(String moduleId, File repository, Collection<Resource> dependencies) {
return new Module(
moduleId,
"UTF-8",
dependencies,
repository == null ? null : new Repository(repository),
Collections.<Repository>emptyList());
}
public static Module givenModule(String moduleId, File repository, Module... dependencies) {
return givenModule(moduleId, repository, transform(asList(dependencies), toResource()));
}
public static Module givenModule(String moduleId, Module... dependencies) {
return givenModule(moduleId, null, dependencies);
}
public static Module givenModule(String moduleId) {
return givenModule(moduleId, new Module[0]);
}
private static Function<? super Module, Resource> toResource() {
return new Function<Module, Resource>() {
@Nullable
@Override
public Resource apply(@Nullable Module input) {
return input == null ? null : Resource.of(input);
}
};
}
}