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 QueryOptions
createOptions
(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 providedChangeData
s.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 String
formatForLogging
(ChangeData changeData) getDynamicBean
(String plugin) protected int
getInitialPageSize
(int limit) void
setDynamicBean
(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, setUserProvidedLimit
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.google.gerrit.server.DynamicOptions.BeanReceiver
getExportedBeanReceiver
-
Method Details
-
enforceVisibility
Description copied from class:QueryProcessor
Specify 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
queryLimit
global 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:
enforceVisibility
in 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:
createOptions
in classQueryProcessor<ChangeData>
-
setDynamicBean
- Specified by:
setDynamicBean
in interfaceDynamicOptions.BeanReceiver
-
getDynamicBean
- Specified by:
getDynamicBean
in interfaceDynamicOptions.BeanProvider
-
getInfosFactory
-
createPluginDefinedInfos
public com.google.common.collect.ImmutableListMultimap<Change.Id,PluginDefinedInfo> createPluginDefinedInfos(Collection<ChangeData> cds) Description copied from interface:PluginDefinedInfosFactory
Create a plugin-provided info field from all the plugins for each of the providedChangeData
s.- Specified by:
createPluginDefinedInfos
in interfacePluginDefinedInfosFactory
- Parameters:
cds
- changes.- Returns:
- map of the all plugin's special infos for each change.
-
enforceVisibility
Description copied from class:QueryProcessor
Invoked after the query was rewritten. Subclasses must overwrite this method to filter out results that are not visible to the calling user.- Specified by:
enforceVisibility
in classQueryProcessor<ChangeData>
- Parameters:
pred
- the query- Returns:
- the modified query
-
formatForLogging
- Specified by:
formatForLogging
in classQueryProcessor<ChangeData>
-
getInitialPageSize
protected int getInitialPageSize(int limit) - Overrides:
getInitialPageSize
in classQueryProcessor<ChangeData>
-