Class MetadataFieldFill
- java.lang.Object
-
- com.funnelback.publicui.search.model.collection.facetednavigation.CategoryDefinition
-
- com.funnelback.publicui.search.model.collection.facetednavigation.impl.MetadataFieldFill
-
- All Implemented Interfaces:
MetadataBasedCategory
public class MetadataFieldFill extends CategoryDefinition implements MetadataBasedCategory
CategoryDefinition
based on a metadata class.Will generate multiple values for each value of this metadata class.
- Since:
- 11.0
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.funnelback.publicui.search.model.collection.facetednavigation.CategoryDefinition
CategoryDefinition.CountSupplier, CategoryDefinition.FacetSearchData, CategoryDefinition.MetadataAndValue, CategoryDefinition.SearchResonseForCountSupplier
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<QueryProcessorOption<?>>
qpOptions
-
Fields inherited from class com.funnelback.publicui.search.model.collection.facetednavigation.CategoryDefinition
data, facetName, label, MD_VALUE_SEPARATOR, QS_PARAM_SEPARATOR, subCategories
-
Fields inherited from interface com.funnelback.publicui.search.model.collection.facetednavigation.MetadataBasedCategory
INDEX_FIELD_BOUNDARY, METADATA_ABSENT_PREFIX
-
-
Constructor Summary
Constructors Constructor Description MetadataFieldFill(java.lang.String metaDataClass)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
allValuesDefinedByUser()
Tells you if all the CategoryValues this CategoryDefiniton can produce are ones that must be set on the category by the user.java.util.List<CategoryValueComputedDataHolder>
computeData(SearchTransaction st, FacetDefinition facetDefinition)
java.lang.String
getMetadataClass()
java.lang.String
getQueryConstraint(java.lang.String value)
The specific query constraint to apply for the passed value.java.util.List<QueryProcessorOption<?>>
getQueryProcessorOptions(SearchQuestion question)
Get additional query processor options to apply for this category definition.java.lang.String
getQueryStringCategoryExtraPart()
Gets the extra part of the query string param name e.g.private CategoryValueComputedDataHolder
makeValue(java.lang.String value, boolean selected, java.lang.Integer count)
boolean
matches(java.lang.String value, java.lang.String extraParams)
Given the value of a query string parameter, and any extra parameters, whether this category types is relevant for this parameter.boolean
selectedValuesAreNested()
-
Methods inherited from class com.funnelback.publicui.search.model.collection.facetednavigation.CategoryDefinition
computeValues, getAllQueryStringParamNames, getData, getFacetName, getFacetSearchData, getLabel, getMatchingFacetSelectedDetails, getQueryStringParamName, getSubCategories, matches, parseMetadata, setData, setFacetedNavProps, setFacetName, setLabel, toString
-
-
-
-
Field Detail
-
qpOptions
private final java.util.List<QueryProcessorOption<?>> qpOptions
-
-
Method Detail
-
computeData
public java.util.List<CategoryValueComputedDataHolder> computeData(SearchTransaction st, FacetDefinition facetDefinition)
- Specified by:
computeData
in classCategoryDefinition
-
makeValue
private CategoryValueComputedDataHolder makeValue(java.lang.String value, boolean selected, java.lang.Integer count)
-
getQueryStringCategoryExtraPart
public java.lang.String getQueryStringCategoryExtraPart()
Gets the extra part of the query string param name e.g. f.| =value. - Specified by:
getQueryStringCategoryExtraPart
in classCategoryDefinition
- Returns:
-
matches
public boolean matches(java.lang.String value, java.lang.String extraParams)
Given the value of a query string parameter, and any extra parameters, whether this category types is relevant for this parameter.
For example: f.By Date|dc.date=2010-01-01:
- value = 2010-01-01
- extra = dc.date
A category of type "metadata fill" for the "dc.date" metadata should return true.
- Specified by:
matches
in classCategoryDefinition
- Parameters:
value
- The value to check for.extraParams
- The extra parameter to check for.- Returns:
- true if this category definition matches, false otherwise.
-
getMetadataClass
public java.lang.String getMetadataClass()
- Specified by:
getMetadataClass
in interfaceMetadataBasedCategory
- Returns:
- The metadata class for this category type
-
getQueryConstraint
public java.lang.String getQueryConstraint(java.lang.String value)
The specific query constraint to apply for the passed value.- Specified by:
getQueryConstraint
in interfaceMetadataBasedCategory
- Parameters:
value
- Value for this category- Returns:
- The corresponding query constraint (ex: "x:$++ <value> $++", or "v:<value>")
-
getQueryProcessorOptions
public java.util.List<QueryProcessorOption<?>> getQueryProcessorOptions(SearchQuestion question)
Description copied from class:CategoryDefinition
Get additional query processor options to apply for this category definition.
That gives the opportunity to the category definition to add additional QPOs that it may need. QPOs may differ depending if the facet is currently selected or not, such as setting
-count_urls
dynamically depending on the current number of segments in the URL drill down facet- Specified by:
getQueryProcessorOptions
in classCategoryDefinition
- Parameters:
question
- Can be used to inspect the currently selected facets and return appropriate QPOs- Returns:
- A list of query processor options
-
allValuesDefinedByUser
public boolean allValuesDefinedByUser()
Description copied from class:CategoryDefinition
Tells you if all the CategoryValues this CategoryDefiniton can produce are ones that must be set on the category by the user.Values defined by the user are ones like gscopes where values not from the user come from other sources such as metadata.
- Specified by:
allValuesDefinedByUser
in classCategoryDefinition
- Returns:
- true if all values are defined by the user and not generated from the data.
-
selectedValuesAreNested
public boolean selectedValuesAreNested()
- Specified by:
selectedValuesAreNested
in classCategoryDefinition
- Returns:
- true if returned selected values are nested.
-
-