Package com.google.gerrit.server.project
Interface ProjectCache
-
- All Known Implementing Classes:
ProjectCacheImpl
public interface ProjectCache
Cache of project information, including access rights.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description com.google.common.collect.ImmutableSortedSet<Project.NameKey>
all()
com.google.common.collect.ImmutableSortedSet<Project.NameKey>
byName(String prefix)
Filter the set of registered project names by common prefix.ProjectState
checkedGet(Project.NameKey projectName)
Get the cached data for a project by its unique name.ProjectState
checkedGet(Project.NameKey projectName, boolean strict)
Get the cached data for a project by its unique name.void
evict(Project p)
Invalidate the cached information about the given project, and triggers reindexing for itvoid
evict(Project.NameKey p)
Invalidate the cached information about the given project, and triggers reindexing for itProjectState
get(Project.NameKey projectName)
Get the cached data for a project by its unique name.ProjectState
getAllProjects()
ProjectState
getAllUsers()
Set<AccountGroup.UUID>
guessRelevantGroupUUIDs()
void
onCreateProject(Project.NameKey newProjectName)
Notify the cache that a new project was constructed.void
remove(Project p)
Remove information about the given project from the cache.void
remove(Project.NameKey name)
Remove information about the given project from the cache.
-
-
-
Method Detail
-
getAllProjects
ProjectState getAllProjects()
- Returns:
- the parent state for all projects on this server.
-
getAllUsers
ProjectState getAllUsers()
- Returns:
- the project state of the project storing meta data for all users.
-
get
ProjectState get(Project.NameKey projectName)
Get the cached data for a project by its unique name.- Parameters:
projectName
- name of the project.- Returns:
- the cached data; null if no such project exists, projectName is null or an error occurred.
- See Also:
checkedGet(com.google.gerrit.reviewdb.client.Project.NameKey)
-
checkedGet
ProjectState checkedGet(Project.NameKey projectName) throws IOException
Get the cached data for a project by its unique name.- Parameters:
projectName
- name of the project.- Returns:
- the cached data; null if no such project exists or projectName is null.
- Throws:
IOException
- when there was an error.
-
checkedGet
ProjectState checkedGet(Project.NameKey projectName, boolean strict) throws Exception
Get the cached data for a project by its unique name.- Parameters:
projectName
- name of the project.strict
- true when any error generates an exception- Returns:
- the cached data or null when strict = false
- Throws:
Exception
- in case of any error (strict = true) or only for I/O or other internal errors.
-
evict
void evict(Project p)
Invalidate the cached information about the given project, and triggers reindexing for it- Parameters:
p
- project that is being evicted
-
evict
void evict(Project.NameKey p)
Invalidate the cached information about the given project, and triggers reindexing for it- Parameters:
p
- the NameKey of the project that is being evicted
-
remove
void remove(Project p)
Remove information about the given project from the cache. It will no longer be returned fromall()
.
-
remove
void remove(Project.NameKey name)
Remove information about the given project from the cache. It will no longer be returned fromall()
.
-
all
com.google.common.collect.ImmutableSortedSet<Project.NameKey> all()
- Returns:
- sorted iteration of projects.
-
guessRelevantGroupUUIDs
Set<AccountGroup.UUID> guessRelevantGroupUUIDs()
- Returns:
- estimated set of relevant groups extracted from hot project access rules. If the cache is cold or too small for the entire project set of the server, this set may be incomplete.
-
byName
com.google.common.collect.ImmutableSortedSet<Project.NameKey> byName(String prefix)
Filter the set of registered project names by common prefix.- Parameters:
prefix
- common prefix.- Returns:
- sorted iteration of projects sharing the same prefix.
-
onCreateProject
void onCreateProject(Project.NameKey newProjectName) throws IOException
Notify the cache that a new project was constructed.- Throws:
IOException
-
-