package org.juxtasoftware.model;
import java.util.HashSet;
import java.util.Set;
/**
* Data used to generate the histogram
* @author loufoster
*
*/
public class VisualizationInfo {
private final ComparisonSet set;
private final Witness base;
private final Set<Long> witnesses = new HashSet<Long>();
public VisualizationInfo(ComparisonSet set, Witness base, Set<Long> witnessFilterList ) {
this.base = base;
this.witnesses.addAll(witnessFilterList);
this.set = set;
}
public long getKey() {
return (long)hashCode();
}
public ComparisonSet getSet() {
return this.set;
}
public Witness getBase() {
return this.base;
}
public Set<Long> getWitnessFilter() {
return this.witnesses;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((base == null) ? 0 : base.hashCode());
result = prime * result + ((set == null) ? 0 : set.hashCode());
result = prime * result + ((witnesses == null) ? 0 : witnesses.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
VisualizationInfo other = (VisualizationInfo) obj;
if (base == null) {
if (other.base != null)
return false;
} else if (!base.equals(other.base))
return false;
if (set == null) {
if (other.set != null)
return false;
} else if (!set.equals(other.set))
return false;
if (witnesses == null) {
if (other.witnesses != null)
return false;
} else if (!witnesses.equals(other.witnesses))
return false;
return true;
}
@Override
public String toString() {
return "VisualizationInfo [set=" + set + ", base=" + base + ", witnesses=" + witnesses + "] = KEY: " +getKey();
}
}