Class ChangeQueryProcessor
java.lang.Object
com.google.gerrit.index.query.QueryProcessor<ChangeData>
com.google.gerrit.server.query.change.ChangeQueryProcessor
- All Implemented Interfaces:
PluginDefinedInfosFactory,DynamicOptions.BeanProvider,DynamicOptions.BeanReceiver
public class ChangeQueryProcessor
extends QueryProcessor<ChangeData>
implements DynamicOptions.BeanReceiver, DynamicOptions.BeanProvider, PluginDefinedInfosFactory
Query processor for the change index.
Instances are one-time-use. Other singleton classes should inject a Provider rather than holding on to a single instance.
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class com.google.gerrit.index.query.QueryProcessor
QueryProcessor.Metrics -
Field Summary
Fields inherited from class com.google.gerrit.index.query.QueryProcessor
start -
Method Summary
Modifier and TypeMethodDescriptionprotected QueryOptionscreateOptions(IndexConfig indexConfig, int start, int pageSize, int pageSizeMultiplier, int limit, boolean allowIncompleteResults, Set<String> requestedFields) com.google.common.collect.ImmutableListMultimap<Change.Id,PluginDefinedInfo> Create a plugin-provided info field from all the plugins for each of the providedChangeDatas.enforceVisibility(boolean enforce) Specify whether to enforce visibility by filtering out results that are not visible to the user.protected Predicate<ChangeData>enforceVisibility(Predicate<ChangeData> pred) Invoked after the query was rewritten.protected StringformatForLogging(ChangeData changeData) getDynamicBean(String plugin) protected intgetInitialPageSize(int limit) voidsetDynamicBean(String plugin, DynamicOptions.DynamicBean dynamicBean) Methods inherited from class com.google.gerrit.index.query.QueryProcessor
getEffectiveLimit, getUserQueryLimit, isDisabled, query, query, setAllowIncompleteResults, setNoLimit, setRequestedFields, setStart, setUserProvidedLimit, setUserProvidedLimitMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.google.gerrit.server.DynamicOptions.BeanReceiver
getExportedBeanReceiver
-
Method Details
-
enforceVisibility
Description copied from class:QueryProcessorSpecify whether to enforce visibility by filtering out results that are not visible to the user.Enforcing visibility may have performance consequences, as the index system may need to post-filter a large number of results to fill even a modest limit.
If visibility is enforced, the user's
queryLimitglobal capability is also used to bound the total number of results. If this capability is non-positive, this results in the entire query processor beingdisabled.- Overrides:
enforceVisibilityin classQueryProcessor<ChangeData>- Parameters:
enforce- whether to enforce visibility.- Returns:
- this.
-
createOptions
protected QueryOptions createOptions(IndexConfig indexConfig, int start, int pageSize, int pageSizeMultiplier, int limit, boolean allowIncompleteResults, Set<String> requestedFields) - Overrides:
createOptionsin classQueryProcessor<ChangeData>
-
setDynamicBean
- Specified by:
setDynamicBeanin interfaceDynamicOptions.BeanReceiver
-
getDynamicBean
- Specified by:
getDynamicBeanin interfaceDynamicOptions.BeanProvider
-
getInfosFactory
-
createPluginDefinedInfos
public com.google.common.collect.ImmutableListMultimap<Change.Id,PluginDefinedInfo> createPluginDefinedInfos(Collection<ChangeData> cds) Description copied from interface:PluginDefinedInfosFactoryCreate a plugin-provided info field from all the plugins for each of the providedChangeDatas.- Specified by:
createPluginDefinedInfosin interfacePluginDefinedInfosFactory- Parameters:
cds- changes.- Returns:
- map of the all plugin's special infos for each change.
-
enforceVisibility
Description copied from class:QueryProcessorInvoked after the query was rewritten. Subclasses must overwrite this method to filter out results that are not visible to the calling user.- Specified by:
enforceVisibilityin classQueryProcessor<ChangeData>- Parameters:
pred- the query- Returns:
- the modified query
-
formatForLogging
- Specified by:
formatForLoggingin classQueryProcessor<ChangeData>
-
getInitialPageSize
protected int getInitialPageSize(int limit) - Overrides:
getInitialPageSizein classQueryProcessor<ChangeData>
-