package com.willowtreeapps.saguaro.plugin; import java.io.File; import java.util.*; /** * User: evantatarka * Date: 4/3/14 * Time: 9:42 AM */ public class SaguaroConfig { private Set<Dependency> ignore; private List<License> licenses; private List<Alias> aliases; private String resourceName = Defaults.RESOURCE_NAME; private boolean includeDependencies; private File outputDir; private SaguaroConfig(Set<Dependency> ignore, List<License> licenses, List<Alias> aliases, String resourceName, boolean includeDependencies, File outputDir) { this.ignore = ignore; this.licenses = licenses; this.aliases = aliases; this.resourceName = resourceName; this.includeDependencies = includeDependencies; this.outputDir = outputDir; } public static Builder of() { return new Builder(); } public static class Builder { private Set<Dependency> ignore = new LinkedHashSet<Dependency>(); private List<License> licenses = new ArrayList<License>(); private List<Alias> aliases = new ArrayList<Alias>(); private String resourceName = Defaults.RESOURCE_NAME; private boolean includeDependencies = true; private File outputDir = new File(""); public Builder ignore(Set<Dependency> ignore) { this.ignore.addAll(ignore); return this; } public Builder ignore(Dependency...ignore) { ignore(new LinkedHashSet<Dependency>(Arrays.asList(ignore))); return this; } public Builder licenses(List<License> licenses) { this.licenses.addAll(licenses); return this; } public Builder licenses(License...licenses) { licenses(Arrays.asList(licenses)); return this; } public Builder aliases(List<Alias> aliases) { this.aliases.addAll(aliases); return this; } public Builder aliases(Alias...aliases) { aliases(Arrays.asList(aliases)); return this; } public Builder resourceName(String resourceName) { this.resourceName = resourceName; return this; } public Builder includeDependencies(boolean includeDependencies) { this.includeDependencies = includeDependencies; return this; } public Builder outputDir(File outputDir) { this.outputDir = outputDir; return this; } public SaguaroConfig build() { return new SaguaroConfig(ignore, licenses, aliases, resourceName, includeDependencies, outputDir); } } public Set<Dependency> getIgnore() { return ignore; } public List<License> getLicenses() { return licenses; } public List<Alias> getAliases() { return Alias.getAliasesWithDefaults(aliases); } public String getResourceName() { return resourceName; } public boolean includeDependencies() { return includeDependencies; } public File getOutputDir() { return outputDir; } }