X-Git-Url: https://git.mdrn.pl/pylucene.git/blobdiff_plain/a2e61f0c04805cfcb8706176758d1283c7e3a55c..aaeed5504b982cf3545252ab528713250aa33eed:/lucene-java-3.5.0/lucene/contrib/facet/src/java/org/apache/lucene/facet/search/results/FacetResult.java diff --git a/lucene-java-3.5.0/lucene/contrib/facet/src/java/org/apache/lucene/facet/search/results/FacetResult.java b/lucene-java-3.5.0/lucene/contrib/facet/src/java/org/apache/lucene/facet/search/results/FacetResult.java new file mode 100644 index 0000000..af0d32c --- /dev/null +++ b/lucene-java-3.5.0/lucene/contrib/facet/src/java/org/apache/lucene/facet/search/results/FacetResult.java @@ -0,0 +1,103 @@ +package org.apache.lucene.facet.search.results; + +import org.apache.lucene.facet.search.params.FacetRequest; + +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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. + */ + +/** + * Result of faceted search. + * + * @lucene.experimental + */ +public class FacetResult { + + private final FacetRequest facetRequest; + private final FacetResultNode rootNode; + private final int numValidDescendants; + + public FacetResult(FacetRequest facetRequest, FacetResultNode rootNode, int numValidDescendants) { + this.facetRequest = facetRequest; + this.rootNode = rootNode; + this.numValidDescendants = numValidDescendants; + } + + /** + * Facet result node matching the root of the {@link #getFacetRequest() facet request}. + * @see #getFacetRequest() + * @see FacetRequest#getCategoryPath() + */ + public final FacetResultNode getFacetResultNode() { + return this.rootNode; + } + + /** + * Number of descendants of {@link #getFacetResultNode() root facet result node}, + * up till the requested depth, which are valid by the + * {@link FacetRequest#createFacetResultsHandler(org.apache.lucene.facet.taxonomy.TaxonomyReader) + * results handler in effect}. Typically -- have value != 0. + * This number does not include the root node. + * @see #getFacetRequest() + * @see FacetRequest#getDepth() + */ + public final int getNumValidDescendants() { + return this.numValidDescendants; + } + + /** + * Request for which this result was obtained. + */ + public final FacetRequest getFacetRequest() { + return this.facetRequest; + } + + /** + * String representation of this facet result. + * Use with caution: might return a very long string. + * @param prefix prefix for each result line + * @see #toString() + */ + public String toString(String prefix) { + StringBuilder sb = new StringBuilder(); + String nl = ""; + + // request + if (this.facetRequest != null) { + sb.append(nl).append(prefix).append("Request: ").append( + this.facetRequest.toString()); + nl = "\n"; + } + + // total facets + sb.append(nl).append(prefix).append("Num valid Descendants (up to specified depth): ").append( + this.numValidDescendants); + nl = "\n"; + + // result node + if (this.rootNode != null) { + sb.append(nl).append(this.rootNode.toString(prefix + "\t")); + } + + return sb.toString(); + } + + @Override + public String toString() { + return toString(""); + } + +}