Class ProjectState

java.lang.Object
com.google.gerrit.server.project.ProjectState

public class ProjectState extends Object
State of a project, aggregated from the project and its parents. This is obtained from the ProjectCache. It should not be persisted across requests
  • Field Details

  • Constructor Details

  • Method Details

    • getCapabilityCollection

      public CapabilityCollection getCapabilityCollection()
      Returns cached computation of all global capabilities. This should only be invoked on the state from ProjectCache.getAllProjects(). Null on any other project.
    • hasPrologRules

      public boolean hasPrologRules()
      Returns true if the Prolog engine is expected to run for this project, that is if this project or a parent possesses a rules.pl file.
    • getProject

      public Project getProject()
    • getNameKey

      public Project.NameKey getNameKey()
    • getName

      public String getName()
    • getConfig

      public CachedProjectConfig getConfig()
    • getConfig

      public ProjectLevelConfig getConfig(String fileName)
    • getMaxObjectSizeLimit

      public long getMaxObjectSizeLimit()
    • statePermitsRead

      public boolean statePermitsRead()
    • checkStatePermitsRead

      public void checkStatePermitsRead() throws ResourceConflictException
      Throws:
      ResourceConflictException
    • statePermitsWrite

      public boolean statePermitsWrite()
    • checkStatePermitsWrite

      public void checkStatePermitsWrite() throws ResourceConflictException
      Throws:
      ResourceConflictException
    • getEffectiveMaxObjectSizeLimit

      public ProjectState.EffectiveMaxObjectSizeLimit getEffectiveMaxObjectSizeLimit()
    • getAllSections

      public List<SectionMatcher> getAllSections()
      Obtain all local and inherited sections. This collection is looked up dynamically and is not cached. Callers should try to cache this result per-request as much as possible.
    • getOwners

      public Set<AccountGroup.UUID> getOwners()
      Returns all AccountGroup's to which the owner privilege for 'refs/*' is assigned for this project (the local owners), if there are no local owners the local owners of the nearest parent project that has local owners are returned
    • getAllOwners

      public Set<AccountGroup.UUID> getAllOwners()
      Returns all AccountGroup's that are allowed to administrate the complete project. This includes all groups to which the owner privilege for 'refs/*' is assigned for this project (the local owners) and all groups to which the owner privilege for 'refs/*' is assigned for one of the parent projects (the inherited owners).
    • tree

      public Iterable<ProjectState> tree()
      Returns an iterable that walks through this project and then the parents of this project. Starts from this project and progresses up the hierarchy to All-Projects.
    • treeInOrder

      public Iterable<ProjectState> treeInOrder()
      Returns an iterable that walks in-order from All-Projects through the project hierarchy to this project.
    • parents

      public com.google.common.collect.FluentIterable<ProjectState> parents()
      Returns an iterable that walks through the parents of this project. Starts from the immediate parent of this project and progresses up the hierarchy to All-Projects.
    • isAllProjects

      public boolean isAllProjects()
    • isAllUsers

      public boolean isAllUsers()
    • is

      public boolean is(BooleanProjectConfig config)
    • getSubmitRequirements

      public Map<String,SubmitRequirement> getSubmitRequirements()
      Get all submit requirements for a project, including those from parent projects.
    • getLabelTypes

      public LabelTypes getLabelTypes()
      All available label types.
    • getLabelTypes

      public LabelTypes getLabelTypes(ChangeNotes notes)
      All available label types for this change.
    • getLabelTypes

      public LabelTypes getLabelTypes(BranchNameKey destination)
      All available label types for this branch.
    • getCommentLinks

      public List<CommentLinkInfo> getCommentLinks()
    • getPluginConfig

      public PluginConfig getPluginConfig(String pluginName)
      Returns the PluginConfig that got parsed from the plugins section of project.config. The returned instance is a defensive copy of the cached value. Returns an empty config in case we find no config for the given plugin name. This is useful when calling PluginConfig#withInheritance(ProjectState.Factory)
    • getBranchOrderSection

      public Optional<BranchOrderSection> getBranchOrderSection()
    • getSubscribeSections

      public Collection<SubscribeSection> getSubscribeSections(BranchNameKey branch)
    • getAllGroups

      public Set<GroupReference> getAllGroups()
    • getLocalGroups

      public Set<GroupReference> getLocalGroups()
    • getSubmitType

      public SubmitType getSubmitType()
    • toProjectData

      public com.google.gerrit.index.project.ProjectData toProjectData()