/*
* Copyright 2014-2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.data.solr.core.query.result;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
import org.springframework.data.solr.core.query.Field;
import org.springframework.util.Assert;
/**
* Trivial implementation of {@link FieldStatsResult}.
*
* @author Francisco Spaeth
* @since 1.4
*/
public class SimpleFieldStatsResult extends SimpleStatsResult implements FieldStatsResult {
private Map<String, Map<String, StatsResult>> facetStatsResult;
private Long distinctCount;
private Collection<Object> distinctValues = Collections.emptyList();
@Override
public Map<String, Map<String, StatsResult>> getFacetStatsResults() {
return Collections.unmodifiableMap(facetStatsResult);
}
public void setStatsResults(Map<String, Map<String, StatsResult>> statsResults) {
this.facetStatsResult = statsResults;
}
@Override
public Map<String, StatsResult> getFacetStatsResult(Field field) {
Assert.notNull(field, "field must not be null");
return getFacetStatsResult(field.getName());
}
@Override
public Map<String, StatsResult> getFacetStatsResult(String fieldName) {
Assert.notNull("fieldName must be not null", fieldName);
return facetStatsResult.get(fieldName);
}
@Override
public Long getDistinctCount() {
return distinctCount;
}
public void setCountDistinct(Long distinctCount) {
this.distinctCount = distinctCount;
}
@Override
public Collection<Object> getDistinctValues() {
return Collections.unmodifiableCollection(this.distinctValues);
}
public void setDistinctValues(Collection<Object> distinctValues) {
if (distinctValues == null) {
this.distinctValues = Collections.emptyList();
} else {
this.distinctValues = new ArrayList<>();
this.distinctValues.addAll(distinctValues);
}
}
@Override
public String toString() {
return "SimpleFieldStatsResult [min=" + getMin() + ", max=" + getMax() + ", sum=" + getSum() + ", mean="
+ getMean() + ", count=" + getCount() + ", missing=" + getMissing() + ", stddev=" + getStddev()
+ ", statsResults=" + facetStatsResult + "]";
}
}