46 lines
1.0 KiB
Java
46 lines
1.0 KiB
Java
package net.sf.jasperreports.engine.fill;
|
|
|
|
import java.util.HashSet;
|
|
import java.util.Set;
|
|
|
|
class DistinctCountHolder {
|
|
private Set distinctValues = null;
|
|
|
|
private Object lastValue = null;
|
|
|
|
public DistinctCountHolder() {
|
|
this.distinctValues = new HashSet();
|
|
}
|
|
|
|
public DistinctCountHolder(Set distinctValues) {
|
|
this.distinctValues = distinctValues;
|
|
}
|
|
|
|
public DistinctCountHolder(DistinctCountHolder holder, Object lastValue) {
|
|
this.distinctValues = holder.getDistinctValues();
|
|
this.lastValue = lastValue;
|
|
}
|
|
|
|
public void init() {
|
|
this.distinctValues = new HashSet();
|
|
}
|
|
|
|
public Set getDistinctValues() {
|
|
return this.distinctValues;
|
|
}
|
|
|
|
public Object getLastValue() {
|
|
return this.lastValue;
|
|
}
|
|
|
|
public void addLastValue() {
|
|
if (this.lastValue != null)
|
|
this.distinctValues.add(this.lastValue);
|
|
this.lastValue = null;
|
|
}
|
|
|
|
public long getCount() {
|
|
return (this.distinctValues.size() + ((this.lastValue == null || this.distinctValues.contains(this.lastValue)) ? 0 : 1));
|
|
}
|
|
}
|