Package com.google.gerrit.server.project
Class ProjectCacheImpl
- java.lang.Object
-
- com.google.gerrit.server.project.ProjectCacheImpl
-
- All Implemented Interfaces:
ProjectCache
public class ProjectCacheImpl extends Object implements ProjectCache
Cache of project information, including access rights.
-
-
Field Summary
Fields Modifier and Type Field Description static StringCACHE_NAME
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.google.common.collect.ImmutableSortedSet<Project.NameKey>all()com.google.common.collect.ImmutableSortedSet<Project.NameKey>byName(String pfx)Filter the set of registered project names by common prefix.ProjectStatecheckedGet(Project.NameKey projectName)Get the cached data for a project by its unique name.ProjectStatecheckedGet(Project.NameKey projectName, boolean strict)Get the cached data for a project by its unique name.voidevict(Project p)Invalidate the cached information about the given project, and triggers reindexing for itvoidevict(Project.NameKey p)Invalidate the cached information about the given project, and triggers reindexing for itvoidevictAllByName()ProjectStateget(Project.NameKey projectName)Get the cached data for a project by its unique name.ProjectStategetAllProjects()ProjectStategetAllUsers()Set<AccountGroup.UUID>guessRelevantGroupUUIDs()static com.google.inject.Modulemodule()voidonCreateProject(Project.NameKey newProjectName)Notify the cache that a new project was constructed.voidremove(Project p)Remove information about the given project from the cache.voidremove(Project.NameKey name)Remove information about the given project from the cache.longsizeAllByName()
-
-
-
Field Detail
-
CACHE_NAME
public static final String CACHE_NAME
- See Also:
- Constant Field Values
-
-
Method Detail
-
module
public static com.google.inject.Module module()
-
getAllProjects
public ProjectState getAllProjects()
- Specified by:
getAllProjectsin interfaceProjectCache- Returns:
- the parent state for all projects on this server.
-
getAllUsers
public ProjectState getAllUsers()
- Specified by:
getAllUsersin interfaceProjectCache- Returns:
- the project state of the project storing meta data for all users.
-
get
public ProjectState get(Project.NameKey projectName)
Description copied from interface:ProjectCacheGet the cached data for a project by its unique name.- Specified by:
getin interfaceProjectCache- 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:
ProjectCache.checkedGet(com.google.gerrit.entities.Project.NameKey)
-
checkedGet
public ProjectState checkedGet(Project.NameKey projectName) throws IOException
Description copied from interface:ProjectCacheGet the cached data for a project by its unique name.- Specified by:
checkedGetin interfaceProjectCache- 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
public ProjectState checkedGet(Project.NameKey projectName, boolean strict) throws Exception
Description copied from interface:ProjectCacheGet the cached data for a project by its unique name.- Specified by:
checkedGetin interfaceProjectCache- 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
public void evict(Project p) throws IOException
Description copied from interface:ProjectCacheInvalidate the cached information about the given project, and triggers reindexing for it- Specified by:
evictin interfaceProjectCache- Parameters:
p- project that is being evicted- Throws:
IOException- thrown if the reindexing fails
-
evict
public void evict(Project.NameKey p) throws IOException
Description copied from interface:ProjectCacheInvalidate the cached information about the given project, and triggers reindexing for it- Specified by:
evictin interfaceProjectCache- Parameters:
p- the NameKey of the project that is being evicted- Throws:
IOException- thrown if the reindexing fails
-
remove
public void remove(Project p) throws IOException
Description copied from interface:ProjectCacheRemove information about the given project from the cache. It will no longer be returned fromProjectCache.all().- Specified by:
removein interfaceProjectCache- Throws:
IOException
-
remove
public void remove(Project.NameKey name) throws IOException
Description copied from interface:ProjectCacheRemove information about the given project from the cache. It will no longer be returned fromProjectCache.all().- Specified by:
removein interfaceProjectCache- Throws:
IOException
-
onCreateProject
public void onCreateProject(Project.NameKey newProjectName) throws IOException
Description copied from interface:ProjectCacheNotify the cache that a new project was constructed.- Specified by:
onCreateProjectin interfaceProjectCache- Throws:
IOException
-
all
public com.google.common.collect.ImmutableSortedSet<Project.NameKey> all()
- Specified by:
allin interfaceProjectCache- Returns:
- sorted iteration of projects.
-
guessRelevantGroupUUIDs
public Set<AccountGroup.UUID> guessRelevantGroupUUIDs()
- Specified by:
guessRelevantGroupUUIDsin interfaceProjectCache- 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
public com.google.common.collect.ImmutableSortedSet<Project.NameKey> byName(String pfx)
Description copied from interface:ProjectCacheFilter the set of registered project names by common prefix.- Specified by:
byNamein interfaceProjectCache- Parameters:
pfx- common prefix.- Returns:
- sorted iteration of projects sharing the same prefix.
-
evictAllByName
public void evictAllByName()
-
sizeAllByName
public long sizeAllByName()
-
-