Package com.google.gerrit.server.notedb
Class ChangeDraftUpdate
- java.lang.Object
-
- com.google.gerrit.server.notedb.AbstractChangeUpdate
-
- com.google.gerrit.server.notedb.ChangeDraftUpdate
-
public class ChangeDraftUpdate extends AbstractChangeUpdate
A single delta to apply atomically to a change.This delta contains only draft comments on a single patch set of a change by a single author. This delta will become a single commit in the All-Users repository.
This class is not thread safe.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
ChangeDraftUpdate.Factory
-
Field Summary
-
Fields inherited from class com.google.gerrit.server.notedb.AbstractChangeUpdate
accountId, authorIdent, noteUtil, psId, realAccountId, serverIdent, when
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected org.eclipse.jgit.lib.CommitBuilder
applyImpl(org.eclipse.jgit.revwalk.RevWalk rw, org.eclipse.jgit.lib.ObjectInserter ins, org.eclipse.jgit.lib.ObjectId curr)
Create a commit containing the contents of this update.boolean
canRunAsync()
Returns true if all we do in this operations is deletes caused by publishing or fixing up comments.void
deleteComment(HumanComment c)
Marks a comment for deletion.void
deleteComment(org.eclipse.jgit.lib.ObjectId commitId, Comment.Key key)
Marks a comment for deletion.protected Project.NameKey
getProjectName()
Returns the NameKey for the project where the update will be stored, which is not necessarily the same as the change's project.protected String
getRefName()
boolean
isEmpty()
Whether no updates have been done.void
markCommentPublished(HumanComment c)
Marks a comment for deletion.void
putComment(HumanComment c)
protected void
setParentCommit(org.eclipse.jgit.lib.CommitBuilder cb, org.eclipse.jgit.lib.ObjectId parentCommitId)
-
Methods inherited from class com.google.gerrit.server.notedb.AbstractChangeUpdate
allowWriteToNewRef, bypassMaxUpdates, getAccountId, getChange, getId, getNotes, getNullableAccountId, getPatchSetId, getRealAccountId, getWhen, setPatchSetId
-
-
-
-
Method Detail
-
putComment
public void putComment(HumanComment c)
-
markCommentPublished
public void markCommentPublished(HumanComment c)
Marks a comment for deletion. Called when the comment is deleted because the user published it.
-
deleteComment
public void deleteComment(HumanComment c)
Marks a comment for deletion. Called when the comment is deleted because the user removed it.
-
deleteComment
public void deleteComment(org.eclipse.jgit.lib.ObjectId commitId, Comment.Key key)
Marks a comment for deletion. Called when the comment should have been deleted previously, but wasn't, so we're fixing it up.
-
canRunAsync
public boolean canRunAsync()
Returns true if all we do in this operations is deletes caused by publishing or fixing up comments.
-
applyImpl
protected org.eclipse.jgit.lib.CommitBuilder applyImpl(org.eclipse.jgit.revwalk.RevWalk rw, org.eclipse.jgit.lib.ObjectInserter ins, org.eclipse.jgit.lib.ObjectId curr) throws IOException
Description copied from class:AbstractChangeUpdate
Create a commit containing the contents of this update.- Specified by:
applyImpl
in classAbstractChangeUpdate
ins
- inserter to write to; callers should not flush.- Returns:
- a new commit builder representing this commit, or null to indicate the meta ref should
be deleted as a result of this update. The parent, author, and committer fields in the
return value are always overwritten. The tree ID may be unset by this method, which
indicates to the caller that it should be copied from the parent commit. To indicate that
this update is a no-op (but this could not be determined by
AbstractChangeUpdate.isEmpty()
), return the sentinelAbstractChangeUpdate.NO_OP_UPDATE
. - Throws:
IOException
- if a lower-level error occurred.
-
getProjectName
protected Project.NameKey getProjectName()
Description copied from class:AbstractChangeUpdate
Returns the NameKey for the project where the update will be stored, which is not necessarily the same as the change's project.- Specified by:
getProjectName
in classAbstractChangeUpdate
-
getRefName
protected String getRefName()
- Specified by:
getRefName
in classAbstractChangeUpdate
-
setParentCommit
protected void setParentCommit(org.eclipse.jgit.lib.CommitBuilder cb, org.eclipse.jgit.lib.ObjectId parentCommitId)
- Overrides:
setParentCommit
in classAbstractChangeUpdate
-
isEmpty
public boolean isEmpty()
Description copied from class:AbstractChangeUpdate
Whether no updates have been done.- Specified by:
isEmpty
in classAbstractChangeUpdate
-
-