Class SearchComponentHelper
java.lang.Object
org.ametys.web.frontoffice.search.requesttime.impl.SearchComponentHelper
- All Implemented Interfaces:
Component,Serviceable
A helper for all search component
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected ContextQueriesWrapper_createContextQueriesWrapper(SearchContext searchContext, Site currentSite, SitemapElement currentPage, String currentLang) Creates aContextQueriesWrappergiven oneSearchContextand the current site, page and lang.buildQuery(AbstractTreeNode<FOSearchCriterion> criterionTree, Map<String, Object> userCriteria, Collection<Returnable> returnables, Collection<Searchable> searchables, AdditionalParameterValueMap additionalParameters, String currentLang, Predicate<FOSearchCriterion> filterCriterionPredicate, Map<String, Object> contextualParameters) Builds the query of the criterion treecheckValidInputs(AbstractTreeNode<FOSearchCriterion> criterionTree, Map<String, Object> userCriteria, boolean isFromUserPref, Logger logger) Checks the user inputs are valid.protected voidcheckValidInputSingleValue(Object userCriterionSingleValue, String criterionId, FOSearchCriterionMode mode, Optional<EnumeratedValues.RestrictedValues> optionalRestrictedValues, Validator validator, boolean isMandatory) Checks a single value of one user input for one criterion is validprotected voidcheckValidInputValues(Object userCriterionValues, String criterionId, FOSearchCriterionMode mode, Optional<EnumeratedValues.RestrictedValues> optionalRestrictedValues, Validator validator, boolean isMandatory) Checks the user inputs for one criterion (can be multiple) are validgetCriterionTreeQuery(SearchComponentArguments args, boolean checkValidInputs, boolean logTree) Get the criterion tree query from argumentsGet the filter query from argumentsRetrieves aMapof contextual parametersvoidservice(ServiceManager manager) singleCriterionToQuery(FOSearchCriterion searchCriterion, Map<String, Object> userCriteria, Collection<Returnable> returnables, Collection<Searchable> searchables, AdditionalParameterValueMap additionalParameters, String currentLang, Predicate<FOSearchCriterion> filterCriterionPredicate, Map<String, Object> contextualParameters) Builds the query of the single criterion
-
Field Details
-
ROLE
The avalon role. -
EMPTY_QUERY
TheQuerybuilding to the empty string -
_advancedQueryBuilder
The builder of advanced queries -
_treeMaker
The Advanced tree maker -
_i18nUtils
The utils for i18nizable texts
-
-
Constructor Details
-
SearchComponentHelper
public SearchComponentHelper()
-
-
Method Details
-
service
- Specified by:
servicein interfaceServiceable- Throws:
ServiceException
-
getCriterionTreeQuery
public Query getCriterionTreeQuery(SearchComponentArguments args, boolean checkValidInputs, boolean logTree) throws org.ametys.web.frontoffice.search.requesttime.impl.InvalidUserInputException Get the criterion tree query from arguments- Parameters:
args- the search argumentscheckValidInputs- true if inputs needs to be checkedlogTree- true if the criterion tree need to be logged- Returns:
- the criterion tree query
- Throws:
org.ametys.web.frontoffice.search.requesttime.impl.InvalidUserInputException- if an invalid user input occurred
-
checkValidInputs
protected Map<String,Object> checkValidInputs(AbstractTreeNode<FOSearchCriterion> criterionTree, Map<String, Object> userCriteria, boolean isFromUserPref, Logger logger) throws org.ametys.web.frontoffice.search.requesttime.impl.InvalidUserInputExceptionChecks the user inputs are valid.- Parameters:
criterionTree- The criterion tree of the service instanceuserCriteria- The user input criteriaisFromUserPref-trueif the criteria are from user pref. Then return only the valid input, otherwise throw an exceptionlogger- The logger- Returns:
- the filtered user criteria
- Throws:
org.ametys.web.frontoffice.search.requesttime.impl.InvalidUserInputException- if at least one user input is invalid
-
checkValidInputValues
protected void checkValidInputValues(Object userCriterionValues, String criterionId, FOSearchCriterionMode mode, Optional<EnumeratedValues.RestrictedValues> optionalRestrictedValues, Validator validator, boolean isMandatory) throws org.ametys.web.frontoffice.search.requesttime.impl.InvalidUserInputException Checks the user inputs for one criterion (can be multiple) are valid- Parameters:
userCriterionValues- The multiple user values (then it is a List) or the single user valuecriterionId- The criterion idmode- The criterion modeoptionalRestrictedValues- TheEnumeratedValues.RestrictedValuesif mode isFOSearchCriterionMode.RESTRICTED_USER_INPUTvalidator- The criterion validatorisMandatory- true if the criterion is linked to a mandatory data- Throws:
org.ametys.web.frontoffice.search.requesttime.impl.InvalidUserInputException- if at least one user input is invalid
-
checkValidInputSingleValue
protected void checkValidInputSingleValue(Object userCriterionSingleValue, String criterionId, FOSearchCriterionMode mode, Optional<EnumeratedValues.RestrictedValues> optionalRestrictedValues, Validator validator, boolean isMandatory) throws org.ametys.web.frontoffice.search.requesttime.impl.InvalidUserInputException Checks a single value of one user input for one criterion is valid- Parameters:
userCriterionSingleValue- The single user valuecriterionId- The criterion idmode- The criterion modeoptionalRestrictedValues- TheEnumeratedValues.RestrictedValuesif mode isFOSearchCriterionMode.RESTRICTED_USER_INPUTvalidator- The criterion validatorisMandatory- true if the criterion is linked to a mandatory data- Throws:
org.ametys.web.frontoffice.search.requesttime.impl.InvalidUserInputException- if the user input is invalid
-
buildQuery
public Query buildQuery(AbstractTreeNode<FOSearchCriterion> criterionTree, Map<String, Object> userCriteria, Collection<Returnable> returnables, Collection<Searchable> searchables, AdditionalParameterValueMap additionalParameters, String currentLang, Predicate<FOSearchCriterion> filterCriterionPredicate, Map<String, Object> contextualParameters) Builds the query of the criterion tree- Parameters:
criterionTree- The criterion tree of the service instanceuserCriteria- The user input criteriareturnables- The returnables of the service instancesearchables- The searchables of the service instanceadditionalParameters- The values of additional parameters of the service instancecurrentLang- The current langfilterCriterionPredicate- A function to filter criterion. Can be null for TruePredicatecontextualParameters- the search contextual parameters.- Returns:
- The query of the criterion tree
-
singleCriterionToQuery
public Query singleCriterionToQuery(FOSearchCriterion searchCriterion, Map<String, Object> userCriteria, Collection<Returnable> returnables, Collection<Searchable> searchables, AdditionalParameterValueMap additionalParameters, String currentLang, Predicate<FOSearchCriterion> filterCriterionPredicate, Map<String, Object> contextualParameters) Builds the query of the single criterion- Parameters:
searchCriterion- The criterionuserCriteria- The user input criteriareturnables- The returnables of the service instancesearchables- The searchables of the service instanceadditionalParameters- The values of additional parameters of the service instancecurrentLang- The current langfilterCriterionPredicate- A function to filter criterioncontextualParameters- the search contextual parameters.- Returns:
- The query of the single criterion
-
getFilterQuery
Get the filter query from arguments- Parameters:
args- the search arguments- Returns:
- the filter query
-
_createContextQueriesWrapper
protected ContextQueriesWrapper _createContextQueriesWrapper(SearchContext searchContext, Site currentSite, SitemapElement currentPage, String currentLang) Creates aContextQueriesWrappergiven oneSearchContextand the current site, page and lang.- Parameters:
searchContext- The search contextcurrentSite- The current sitecurrentPage- The current pagecurrentLang- The current lang- Returns:
- The created wrapper of queries of a
SearchContext
-
getSearchComponentContextualParameters
public static Map<String,Object> getSearchComponentContextualParameters(SearchComponentArguments args) Retrieves aMapof contextual parameters- Parameters:
args- the search component arguments- Returns:
- the
Mapof contextual parameters
-