| // Copyright (C) 2008 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.common.data; |
| |
| import com.google.gerrit.extensions.common.SubmitType; |
| import com.google.gerrit.reviewdb.client.Change; |
| import com.google.gerrit.reviewdb.client.ChangeMessage; |
| import com.google.gerrit.reviewdb.client.PatchSet; |
| |
| import java.util.List; |
| import java.util.Set; |
| |
| /** Detail necessary to display a change. */ |
| public class ChangeDetail { |
| protected AccountInfoCache accounts; |
| protected boolean allowsAnonymous; |
| protected boolean canAbandon; |
| protected boolean canEditCommitMessage; |
| protected boolean canCherryPick; |
| protected boolean canEditHashtags; |
| protected boolean canPublish; |
| protected boolean canRebase; |
| protected boolean canRestore; |
| protected boolean canRevert; |
| protected boolean canDeleteDraft; |
| protected Change change; |
| protected boolean starred; |
| protected List<ChangeInfo> dependsOn; |
| protected List<ChangeInfo> neededBy; |
| protected List<PatchSet> patchSets; |
| protected Set<PatchSet.Id> patchSetsWithDraftComments; |
| protected List<SubmitRecord> submitRecords; |
| protected SubmitType submitType; |
| protected SubmitTypeRecord submitTypeRecord; |
| protected boolean canSubmit; |
| protected boolean mergeable; |
| protected List<ChangeMessage> messages; |
| protected PatchSet.Id currentPatchSetId; |
| protected PatchSetDetail currentDetail; |
| protected boolean canEdit; |
| protected boolean canEditTopicName; |
| |
| public ChangeDetail() { |
| } |
| |
| public AccountInfoCache getAccounts() { |
| return accounts; |
| } |
| |
| public void setAccounts(AccountInfoCache aic) { |
| accounts = aic; |
| } |
| |
| public boolean isAllowsAnonymous() { |
| return allowsAnonymous; |
| } |
| |
| public void setAllowsAnonymous(final boolean anon) { |
| allowsAnonymous = anon; |
| } |
| |
| public boolean canAbandon() { |
| return canAbandon; |
| } |
| |
| public void setCanAbandon(final boolean a) { |
| canAbandon = a; |
| } |
| |
| public boolean canEditCommitMessage() { |
| return canEditCommitMessage; |
| } |
| |
| public void setCanEditCommitMessage(final boolean a) { |
| canEditCommitMessage = a; |
| } |
| |
| public boolean canCherryPick() { |
| return canCherryPick; |
| } |
| |
| public void setCanCherryPick(final boolean a) { |
| canCherryPick = a; |
| } |
| |
| public boolean getCanEditHashtags() { |
| return canEditHashtags; |
| } |
| |
| public void setCanEditHashtags(final boolean a) { |
| canEditHashtags = a; |
| } |
| |
| public boolean canPublish() { |
| return canPublish; |
| } |
| |
| public void setCanPublish(final boolean a) { |
| canPublish = a; |
| } |
| |
| public boolean canRebase() { |
| return canRebase; |
| } |
| |
| public void setCanRebase(final boolean a) { |
| canRebase = a; |
| } |
| |
| public boolean canRestore() { |
| return canRestore; |
| } |
| |
| public void setCanRestore(final boolean a) { |
| canRestore = a; |
| } |
| |
| public boolean canRevert() { |
| return canRevert; |
| } |
| |
| public void setCanRevert(boolean a) { |
| canRevert = a; |
| } |
| |
| public boolean canSubmit() { |
| return canSubmit; |
| } |
| |
| public void setCanSubmit(boolean a) { |
| canSubmit = a; |
| } |
| |
| public boolean canDeleteDraft() { |
| return canDeleteDraft; |
| } |
| |
| public void setCanDeleteDraft(boolean a) { |
| canDeleteDraft = a; |
| } |
| |
| public boolean canEditTopicName() { |
| return canEditTopicName; |
| } |
| |
| public void setCanEditTopicName(boolean a) { |
| canEditTopicName = a; |
| } |
| |
| public Change getChange() { |
| return change; |
| } |
| |
| public void setChange(final Change change) { |
| this.change = change; |
| this.currentPatchSetId = change.currentPatchSetId(); |
| } |
| |
| public boolean isStarred() { |
| return starred; |
| } |
| |
| public void setStarred(final boolean s) { |
| starred = s; |
| } |
| |
| public List<ChangeInfo> getDependsOn() { |
| return dependsOn; |
| } |
| |
| public void setDependsOn(List<ChangeInfo> d) { |
| dependsOn = d; |
| } |
| |
| public List<ChangeInfo> getNeededBy() { |
| return neededBy; |
| } |
| |
| public void setNeededBy(List<ChangeInfo> d) { |
| neededBy = d; |
| } |
| |
| public List<ChangeMessage> getMessages() { |
| return messages; |
| } |
| |
| public void setMessages(List<ChangeMessage> m) { |
| messages = m; |
| } |
| |
| public List<PatchSet> getPatchSets() { |
| return patchSets; |
| } |
| |
| public void setPatchSets(List<PatchSet> s) { |
| patchSets = s; |
| } |
| |
| public void setPatchSetsWithDraftComments(Set<PatchSet.Id> pwdc) { |
| this.patchSetsWithDraftComments = pwdc; |
| } |
| |
| public boolean hasDraftComments(PatchSet.Id id) { |
| return patchSetsWithDraftComments.contains(id); |
| } |
| |
| public void setSubmitRecords(List<SubmitRecord> all) { |
| submitRecords = all; |
| } |
| |
| public List<SubmitRecord> getSubmitRecords() { |
| return submitRecords; |
| } |
| |
| public void setSubmitTypeRecord(SubmitTypeRecord submitTypeRecord) { |
| this.submitTypeRecord = submitTypeRecord; |
| } |
| |
| public SubmitTypeRecord getSubmitTypeRecord() { |
| return submitTypeRecord; |
| } |
| |
| public boolean isCurrentPatchSet(final PatchSetDetail detail) { |
| return currentPatchSetId != null |
| && detail.getPatchSet().getId().equals(currentPatchSetId); |
| } |
| |
| public PatchSet getCurrentPatchSet() { |
| if (currentPatchSetId != null) { |
| // We search through the list backwards because its *very* likely |
| // that the current patch set is also the last patch set. |
| // |
| for (int i = patchSets.size() - 1; i >= 0; i--) { |
| final PatchSet ps = patchSets.get(i); |
| if (ps.getId().equals(currentPatchSetId)) { |
| return ps; |
| } |
| } |
| } |
| return null; |
| } |
| |
| public PatchSetDetail getCurrentPatchSetDetail() { |
| return currentDetail; |
| } |
| |
| public void setCurrentPatchSetDetail(PatchSetDetail d) { |
| currentDetail = d; |
| } |
| |
| public void setCurrentPatchSetId(final PatchSet.Id id) { |
| currentPatchSetId = id; |
| } |
| |
| public String getDescription() { |
| return currentDetail != null ? currentDetail.getInfo().getMessage() : ""; |
| } |
| |
| public void setCanEdit(boolean a) { |
| canEdit = a; |
| } |
| |
| public boolean canEdit() { |
| return canEdit; |
| } |
| |
| public void setMergeable(boolean m) { |
| mergeable = m; |
| } |
| |
| public boolean isMergeable() { |
| return mergeable; |
| } |
| } |