diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticProjectIndex.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticProjectIndex.java index c983a44872..780f0236d9 100644 --- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticProjectIndex.java +++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticProjectIndex.java @@ -30,7 +30,7 @@ import com.google.gerrit.server.index.IndexUtils; import com.google.gerrit.server.index.project.ProjectField; import com.google.gerrit.server.index.project.ProjectIndex; import com.google.gerrit.server.project.ProjectCache; -import com.google.gerrit.server.project.ProjectState; +import com.google.gerrit.server.project.ProjectData; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; @@ -56,12 +56,12 @@ import org.elasticsearch.search.builder.SearchSourceBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class ElasticProjectIndex extends AbstractElasticIndex +public class ElasticProjectIndex extends AbstractElasticIndex implements ProjectIndex { static class ProjectMapping { MappingProperties projects; - ProjectMapping(Schema schema) { + ProjectMapping(Schema schema) { this.projects = ElasticMapping.createMapping(schema); } } @@ -80,14 +80,14 @@ public class ElasticProjectIndex extends AbstractElasticIndex projectCache, JestClientBuilder clientBuilder, - @Assisted Schema schema) { + @Assisted Schema schema) { super(cfg, sitePaths, schema, clientBuilder, PROJECTS_PREFIX); this.projectCache = projectCache; this.mapping = new ProjectMapping(schema); } @Override - public void replace(ProjectState projectState) throws IOException { + public void replace(ProjectData projectState) throws IOException { Bulk bulk = new Bulk.Builder() .defaultIndex(indexName) @@ -105,7 +105,7 @@ public class ElasticProjectIndex extends AbstractElasticIndex getSource(Predicate p, QueryOptions opts) + public DataSource getSource(Predicate p, QueryOptions opts) throws QueryParseException { return new QuerySource(p, opts); } @@ -122,15 +122,15 @@ public class ElasticProjectIndex extends AbstractElasticIndex { + private class QuerySource implements DataSource { private final Search search; private final Set fields; - QuerySource(Predicate p, QueryOptions opts) throws QueryParseException { + QuerySource(Predicate p, QueryOptions opts) throws QueryParseException { QueryBuilder qb = queryBuilder.toQueryBuilder(p); fields = IndexUtils.projectFields(opts); SearchSourceBuilder searchSource = @@ -157,9 +157,9 @@ public class ElasticProjectIndex extends AbstractElasticIndex read() throws OrmException { + public ResultSet read() throws OrmException { try { - List results = Collections.emptyList(); + List results = Collections.emptyList(); JestResult result = client.execute(search); if (result.isSucceeded()) { JsonObject obj = result.getJsonObject().getAsJsonObject("hits"); @@ -167,21 +167,21 @@ public class ElasticProjectIndex extends AbstractElasticIndex r = Collections.unmodifiableList(results); - return new ResultSet() { + final List r = Collections.unmodifiableList(results); + return new ResultSet() { @Override - public Iterator iterator() { + public Iterator iterator() { return r.iterator(); } @Override - public List toList() { + public List toList() { return r; } @@ -200,7 +200,7 @@ public class ElasticProjectIndex extends AbstractElasticIndex projectSchema = ProjectSchemaDefinitions.INSTANCE.getLatest(); + Schema projectSchema = ProjectSchemaDefinitions.INSTANCE.getLatest(); ProjectMapping projectMapping = new ProjectMapping(projectSchema); nodeInfo .node diff --git a/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneProjectIndex.java b/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneProjectIndex.java index 544649f054..6354f6107d 100644 --- a/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneProjectIndex.java +++ b/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneProjectIndex.java @@ -27,7 +27,7 @@ import com.google.gerrit.server.config.SitePaths; import com.google.gerrit.server.index.IndexUtils; import com.google.gerrit.server.index.project.ProjectIndex; import com.google.gerrit.server.project.ProjectCache; -import com.google.gerrit.server.project.ProjectState; +import com.google.gerrit.server.project.ProjectData; import com.google.gwtorm.server.OrmException; import com.google.gwtorm.server.ResultSet; import com.google.inject.Inject; @@ -56,7 +56,7 @@ import org.eclipse.jgit.lib.Config; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class LuceneProjectIndex extends AbstractLuceneIndex +public class LuceneProjectIndex extends AbstractLuceneIndex implements ProjectIndex { private static final Logger log = LoggerFactory.getLogger(LuceneProjectIndex.class); @@ -64,7 +64,7 @@ public class LuceneProjectIndex extends AbstractLuceneIndex queryBuilder; + private final QueryBuilder queryBuilder; private final Provider projectCache; - private static Directory dir(Schema schema, Config cfg, SitePaths sitePaths) + private static Directory dir(Schema schema, Config cfg, SitePaths sitePaths) throws IOException { if (LuceneIndexModule.isInMemoryTest(cfg)) { return new RAMDirectory(); @@ -90,7 +90,7 @@ public class LuceneProjectIndex extends AbstractLuceneIndex projectCache, - @Assisted Schema schema) + @Assisted Schema schema) throws IOException { super( schema, @@ -107,7 +107,7 @@ public class LuceneProjectIndex extends AbstractLuceneIndex getSource(Predicate p, QueryOptions opts) + public DataSource getSource(Predicate p, QueryOptions opts) throws QueryParseException { return new QuerySource( opts, @@ -133,7 +133,7 @@ public class LuceneProjectIndex extends AbstractLuceneIndex { + private class QuerySource implements DataSource { private final QueryOptions opts; private final Query query; private final Sort sort; @@ -150,27 +150,27 @@ public class LuceneProjectIndex extends AbstractLuceneIndex read() throws OrmException { + public ResultSet read() throws OrmException { IndexSearcher searcher = null; try { searcher = acquire(); int realLimit = opts.start() + opts.limit(); TopFieldDocs docs = searcher.search(query, realLimit, sort); - List result = new ArrayList<>(docs.scoreDocs.length); + List result = new ArrayList<>(docs.scoreDocs.length); for (int i = opts.start(); i < docs.scoreDocs.length; i++) { ScoreDoc sd = docs.scoreDocs[i]; Document doc = searcher.doc(sd.doc, IndexUtils.projectFields(opts)); - result.add(toProjectState(doc)); + result.add(toProjectData(doc)); } - final List r = Collections.unmodifiableList(result); - return new ResultSet() { + final List r = Collections.unmodifiableList(result); + return new ResultSet() { @Override - public Iterator iterator() { + public Iterator iterator() { return r.iterator(); } @Override - public List toList() { + public List toList() { return r; } @@ -193,8 +193,8 @@ public class LuceneProjectIndex extends AbstractLuceneIndex schema) { + public ProjectIndex create(Schema schema) { throw new UnsupportedOperationException(); } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/index/project/AllProjectsIndexer.java b/gerrit-server/src/main/java/com/google/gerrit/server/index/project/AllProjectsIndexer.java index 932396559d..a416b0ca3c 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/index/project/AllProjectsIndexer.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/index/project/AllProjectsIndexer.java @@ -24,7 +24,7 @@ import com.google.gerrit.index.SiteIndexer; import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.index.IndexExecutor; import com.google.gerrit.server.project.ProjectCache; -import com.google.gerrit.server.project.ProjectState; +import com.google.gerrit.server.project.ProjectData; import com.google.gwtorm.server.OrmException; import com.google.inject.Inject; import com.google.inject.Singleton; @@ -40,7 +40,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Singleton -public class AllProjectsIndexer extends SiteIndexer { +public class AllProjectsIndexer extends SiteIndexer { private static final Logger log = LoggerFactory.getLogger(AllProjectsIndexer.class); @@ -84,7 +84,7 @@ public class AllProjectsIndexer extends SiteIndexer { try { projectCache.evict(name); - index.replace(projectCache.get(name)); + index.replace(projectCache.get(name).toProjectData()); verboseWriter.println("Reindexed " + desc); done.incrementAndGet(); } catch (Exception e) { diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/index/project/IndexedProjectQuery.java b/gerrit-server/src/main/java/com/google/gerrit/server/index/project/IndexedProjectQuery.java index ede7461f32..41bff05eb6 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/index/project/IndexedProjectQuery.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/index/project/IndexedProjectQuery.java @@ -21,13 +21,13 @@ import com.google.gerrit.index.query.DataSource; import com.google.gerrit.index.query.Predicate; import com.google.gerrit.index.query.QueryParseException; import com.google.gerrit.reviewdb.client.Project; -import com.google.gerrit.server.project.ProjectState; +import com.google.gerrit.server.project.ProjectData; -public class IndexedProjectQuery extends IndexedQuery - implements DataSource { +public class IndexedProjectQuery extends IndexedQuery + implements DataSource { public IndexedProjectQuery( - Index index, Predicate pred, QueryOptions opts) + Index index, Predicate pred, QueryOptions opts) throws QueryParseException { super(index, pred, opts.convertForBackend()); } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectField.java b/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectField.java index 7b6bd96904..c4f8e9e2ad 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectField.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectField.java @@ -21,25 +21,24 @@ import static com.google.gerrit.index.FieldDef.prefix; import com.google.common.collect.Iterables; import com.google.gerrit.index.FieldDef; import com.google.gerrit.index.SchemaUtil; -import com.google.gerrit.server.project.ProjectState; +import com.google.gerrit.server.project.ProjectData; /** Index schema for projects. */ public class ProjectField { - public static final FieldDef NAME = + public static final FieldDef NAME = exact("name").stored().build(p -> p.getProject().getName()); - public static final FieldDef DESCRIPTION = + public static final FieldDef DESCRIPTION = fullText("description").build(p -> p.getProject().getDescription()); - public static final FieldDef PARENT_NAME = + public static final FieldDef PARENT_NAME = exact("parent_name").build(p -> p.getProject().getParentName()); - public static final FieldDef> NAME_PART = + public static final FieldDef> NAME_PART = prefix("name_part").buildRepeatable(p -> SchemaUtil.getNameParts(p.getProject().getName())); - public static final FieldDef> ANCESTOR_NAME = + public static final FieldDef> ANCESTOR_NAME = exact("ancestor_name") - .buildRepeatable( - p -> Iterables.transform(p.parents(), parent -> parent.getProject().getName())); + .buildRepeatable(p -> Iterables.transform(p.getAncestors(), n -> n.get())); } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectIndex.java b/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectIndex.java index 80f4fa6184..5fbdf04860 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectIndex.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectIndex.java @@ -18,16 +18,16 @@ import com.google.gerrit.index.Index; import com.google.gerrit.index.IndexDefinition; import com.google.gerrit.index.query.Predicate; import com.google.gerrit.reviewdb.client.Project; -import com.google.gerrit.server.project.ProjectState; +import com.google.gerrit.server.project.ProjectData; import com.google.gerrit.server.query.project.ProjectPredicates; -public interface ProjectIndex extends Index { +public interface ProjectIndex extends Index { public interface Factory - extends IndexDefinition.IndexFactory {} + extends IndexDefinition.IndexFactory {} @Override - default Predicate keyPredicate(Project.NameKey nameKey) { + default Predicate keyPredicate(Project.NameKey nameKey) { return ProjectPredicates.name(nameKey); } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectIndexCollection.java b/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectIndexCollection.java index 89f2619823..ee65a08d97 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectIndexCollection.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectIndexCollection.java @@ -17,13 +17,13 @@ package com.google.gerrit.server.index.project; import com.google.common.annotations.VisibleForTesting; import com.google.gerrit.index.IndexCollection; import com.google.gerrit.reviewdb.client.Project; -import com.google.gerrit.server.project.ProjectState; +import com.google.gerrit.server.project.ProjectData; import com.google.inject.Inject; import com.google.inject.Singleton; @Singleton public class ProjectIndexCollection - extends IndexCollection { + extends IndexCollection { @Inject @VisibleForTesting diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectIndexDefinition.java b/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectIndexDefinition.java index 8cdd28a1d5..301f20998a 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectIndexDefinition.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectIndexDefinition.java @@ -17,11 +17,11 @@ package com.google.gerrit.server.index.project; import com.google.gerrit.common.Nullable; import com.google.gerrit.index.IndexDefinition; import com.google.gerrit.reviewdb.client.Project; -import com.google.gerrit.server.project.ProjectState; +import com.google.gerrit.server.project.ProjectData; import com.google.inject.Inject; public class ProjectIndexDefinition - extends IndexDefinition { + extends IndexDefinition { @Inject ProjectIndexDefinition( diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectIndexRewriter.java b/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectIndexRewriter.java index e50d08efd6..41d882009d 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectIndexRewriter.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectIndexRewriter.java @@ -20,12 +20,12 @@ import com.google.gerrit.index.IndexRewriter; import com.google.gerrit.index.QueryOptions; import com.google.gerrit.index.query.Predicate; import com.google.gerrit.index.query.QueryParseException; -import com.google.gerrit.server.project.ProjectState; +import com.google.gerrit.server.project.ProjectData; import com.google.inject.Inject; import com.google.inject.Singleton; @Singleton -public class ProjectIndexRewriter implements IndexRewriter { +public class ProjectIndexRewriter implements IndexRewriter { private final ProjectIndexCollection indexes; @Inject @@ -34,7 +34,7 @@ public class ProjectIndexRewriter implements IndexRewriter { } @Override - public Predicate rewrite(Predicate in, QueryOptions opts) + public Predicate rewrite(Predicate in, QueryOptions opts) throws QueryParseException { ProjectIndex index = indexes.getSearchIndex(); checkNotNull(index, "no active search index configured for projects"); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectIndexerImpl.java b/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectIndexerImpl.java index 368a056251..2a51f32fea 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectIndexerImpl.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectIndexerImpl.java @@ -21,7 +21,7 @@ import com.google.gerrit.extensions.registration.DynamicSet; import com.google.gerrit.index.Index; import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.project.ProjectCache; -import com.google.gerrit.server.project.ProjectState; +import com.google.gerrit.server.project.ProjectData; import com.google.inject.assistedinject.Assisted; import com.google.inject.assistedinject.AssistedInject; import java.io.IOException; @@ -64,8 +64,8 @@ public class ProjectIndexerImpl implements ProjectIndexer { @Override public void index(Project.NameKey nameKey) throws IOException { - for (Index i : getWriteIndexes()) { - i.replace(projectCache.get(nameKey)); + for (Index i : getWriteIndexes()) { + i.replace(projectCache.get(nameKey).toProjectData()); } fireProjectIndexedEvent(nameKey.get()); } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectSchemaDefinitions.java b/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectSchemaDefinitions.java index 4ff6db197a..ccece02e09 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectSchemaDefinitions.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/index/project/ProjectSchemaDefinitions.java @@ -18,11 +18,11 @@ import static com.google.gerrit.index.SchemaUtil.schema; import com.google.gerrit.index.Schema; import com.google.gerrit.index.SchemaDefinitions; -import com.google.gerrit.server.project.ProjectState; +import com.google.gerrit.server.project.ProjectData; -public class ProjectSchemaDefinitions extends SchemaDefinitions { +public class ProjectSchemaDefinitions extends SchemaDefinitions { - static final Schema V1 = + static final Schema V1 = schema( ProjectField.NAME, ProjectField.DESCRIPTION, @@ -33,6 +33,6 @@ public class ProjectSchemaDefinitions extends SchemaDefinitions { public static final ProjectSchemaDefinitions INSTANCE = new ProjectSchemaDefinitions(); private ProjectSchemaDefinitions() { - super("projects", ProjectState.class); + super("projects", ProjectData.class); } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectData.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectData.java new file mode 100644 index 0000000000..407529d9cb --- /dev/null +++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectData.java @@ -0,0 +1,36 @@ +// Copyright (C) 2017 The Android Open Source Project +// +// Licensed 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. + +package com.google.gerrit.server.project; + +import com.google.common.collect.ImmutableList; +import com.google.gerrit.reviewdb.client.Project; + +public class ProjectData { + private final Project project; + private final ImmutableList ancestors; + + public ProjectData(Project project, Iterable ancestors) { + this.project = project; + this.ancestors = ImmutableList.copyOf(ancestors); + } + + public Project getProject() { + return project; + } + + public ImmutableList getAncestors() { + return ancestors; + } +} diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectState.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectState.java index 3015164dae..bd6386c350 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectState.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectState.java @@ -553,6 +553,10 @@ public class ProjectState { } } + public ProjectData toProjectData() { + return new ProjectData(getProject(), parents().transform(s -> s.getProject().getNameKey())); + } + private String readFile(Path p) throws IOException { return Files.exists(p) ? new String(Files.readAllBytes(p), UTF_8) : null; } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/QueryProjects.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/QueryProjects.java index ec3303086c..998bdb2a5a 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/project/QueryProjects.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/QueryProjects.java @@ -105,12 +105,12 @@ public class QueryProjects implements RestReadView { } try { - QueryResult result = queryProcessor.query(queryBuilder.parse(query)); - List projects = result.entities(); + QueryResult result = queryProcessor.query(queryBuilder.parse(query)); + List pds = result.entities(); - ArrayList projectInfos = Lists.newArrayListWithCapacity(projects.size()); - for (ProjectState projectState : projects) { - projectInfos.add(json.format(projectState.getProject())); + ArrayList projectInfos = Lists.newArrayListWithCapacity(pds.size()); + for (ProjectData pd : pds) { + projectInfos.add(json.format(pd.getProject())); } return projectInfos; } catch (QueryParseException e) { diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/project/ProjectIsVisibleToPredicate.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/project/ProjectIsVisibleToPredicate.java index 07b1722aa9..20032cef65 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/project/ProjectIsVisibleToPredicate.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/project/ProjectIsVisibleToPredicate.java @@ -19,11 +19,11 @@ import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.index.IndexUtils; import com.google.gerrit.server.permissions.PermissionBackend; import com.google.gerrit.server.permissions.ProjectPermission; -import com.google.gerrit.server.project.ProjectState; +import com.google.gerrit.server.project.ProjectData; import com.google.gerrit.server.query.account.AccountQueryBuilder; import com.google.gwtorm.server.OrmException; -public class ProjectIsVisibleToPredicate extends IsVisibleToPredicate { +public class ProjectIsVisibleToPredicate extends IsVisibleToPredicate { protected final PermissionBackend permissionBackend; protected final CurrentUser user; @@ -34,10 +34,10 @@ public class ProjectIsVisibleToPredicate extends IsVisibleToPredicate name(Project.NameKey nameKey) { + public static Predicate name(Project.NameKey nameKey) { return new ProjectPredicate(ProjectField.NAME, nameKey.get()); } - static class ProjectPredicate extends IndexPredicate { - ProjectPredicate(FieldDef def, String value) { + static class ProjectPredicate extends IndexPredicate { + ProjectPredicate(FieldDef def, String value) { super(def, value); } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/project/ProjectQueryBuilder.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/project/ProjectQueryBuilder.java index 2457f330c5..608ec9a1cf 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/project/ProjectQueryBuilder.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/project/ProjectQueryBuilder.java @@ -20,14 +20,14 @@ import com.google.gerrit.index.query.Predicate; import com.google.gerrit.index.query.QueryBuilder; import com.google.gerrit.index.query.QueryParseException; import com.google.gerrit.reviewdb.client.Project; -import com.google.gerrit.server.project.ProjectState; +import com.google.gerrit.server.project.ProjectData; import com.google.inject.Inject; /** Parses a query string meant to be applied to project objects. */ -public class ProjectQueryBuilder extends QueryBuilder { +public class ProjectQueryBuilder extends QueryBuilder { public static final String FIELD_LIMIT = "limit"; - private static final QueryBuilder.Definition mydef = + private static final QueryBuilder.Definition mydef = new QueryBuilder.Definition<>(ProjectQueryBuilder.class); @Inject @@ -36,12 +36,12 @@ public class ProjectQueryBuilder extends QueryBuilder { } @Operator - public Predicate name(String name) { + public Predicate name(String name) { return ProjectPredicates.name(new Project.NameKey(name)); } @Operator - public Predicate limit(String query) throws QueryParseException { + public Predicate limit(String query) throws QueryParseException { Integer limit = Ints.tryParse(query); if (limit == null) { throw error("Invalid limit: " + query); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/project/ProjectQueryProcessor.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/project/ProjectQueryProcessor.java index 234a67b033..1e181e5a9f 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/project/ProjectQueryProcessor.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/project/ProjectQueryProcessor.java @@ -29,7 +29,7 @@ import com.google.gerrit.server.index.project.ProjectIndexCollection; import com.google.gerrit.server.index.project.ProjectIndexRewriter; import com.google.gerrit.server.index.project.ProjectSchemaDefinitions; import com.google.gerrit.server.permissions.PermissionBackend; -import com.google.gerrit.server.project.ProjectState; +import com.google.gerrit.server.project.ProjectData; import com.google.inject.Inject; import com.google.inject.Provider; @@ -39,7 +39,7 @@ import com.google.inject.Provider; *

Instances are one-time-use. Other singleton classes should inject a Provider rather than * holding on to a single instance. */ -public class ProjectQueryProcessor extends QueryProcessor { +public class ProjectQueryProcessor extends QueryProcessor { private final PermissionBackend permissionBackend; private final Provider userProvider; @@ -72,7 +72,7 @@ public class ProjectQueryProcessor extends QueryProcessor { } @Override - protected Predicate enforceVisibility(Predicate pred) { + protected Predicate enforceVisibility(Predicate pred) { return new AndSource<>( pred, new ProjectIsVisibleToPredicate(permissionBackend, userProvider.get()), start); }