
tastymima.intf.Config Maven / Gradle / Ivy
package tastymima.intf;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public final class Config {
private final List problemFilters;
private final List artifactPrivatePackages;
private Config(List problemFilters, List artifactPrivatePackages) {
this.problemFilters = problemFilters;
this.artifactPrivatePackages = artifactPrivatePackages;
}
public Config() {
this(Collections.emptyList(), Collections.emptyList());
}
public List getProblemFilters() {
return problemFilters;
}
public Config withMoreProblemFilters(List additionalFilters) {
List newFilters = new ArrayList(problemFilters.size() + additionalFilters.size());
newFilters.addAll(problemFilters);
newFilters.addAll(additionalFilters);
return withReplacedProblemFiltersInternal(newFilters);
}
public Config withReplacedProblemFilters(List problemFilters) {
return withReplacedProblemFiltersInternal(new ArrayList<>(problemFilters));
}
private Config withReplacedProblemFiltersInternal(List problemFilters) {
return new Config(Collections.unmodifiableList(problemFilters), artifactPrivatePackages);
}
/**
* List of packages that are considered private to the library being analyzed.
*
* Symbols that are private to any of those packages will not be checked for changes by tasty-mima.
*/
public List getArtifactPrivatePackages() {
return artifactPrivatePackages;
}
public Config withMoreArtifactPrivatePackages(List additionalPackages) {
List newPackages = new ArrayList(artifactPrivatePackages.size() + additionalPackages.size());
newPackages.addAll(artifactPrivatePackages);
newPackages.addAll(additionalPackages);
return withReplacedArtifactPrivatePackagesInternal(newPackages);
}
public Config withReplacedArtifactPrivatePackages(List artifactPrivatePackages) {
return withReplacedArtifactPrivatePackagesInternal(new ArrayList<>(artifactPrivatePackages));
}
private Config withReplacedArtifactPrivatePackagesInternal(List artifactPrivatePackages) {
return new Config(problemFilters, Collections.unmodifiableList(artifactPrivatePackages));
}
@Override
public boolean equals(Object that) {
if (!(that instanceof Config))
return false;
Config thatConfig = (Config) that;
return this.getProblemFilters().equals(thatConfig.getProblemFilters())
&& this.getArtifactPrivatePackages().equals(thatConfig.getArtifactPrivatePackages());
}
@Override
public int hashCode() {
int h = 2026047686;
h = 31 * h + problemFilters.hashCode();
h = 31 * h + artifactPrivatePackages.hashCode();
return h;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy