diff options
Diffstat (limited to 'plugins/svn4idea/src/org/jetbrains/idea/svn/checkin/CommitInfo.java')
-rw-r--r-- | plugins/svn4idea/src/org/jetbrains/idea/svn/checkin/CommitInfo.java | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/checkin/CommitInfo.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/checkin/CommitInfo.java new file mode 100644 index 000000000000..a09d3c0295db --- /dev/null +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/checkin/CommitInfo.java @@ -0,0 +1,127 @@ +/* + * Copyright 2000-2014 JetBrains s.r.o. + * + * 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 org.jetbrains.idea.svn.checkin; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.tmatesoft.svn.core.SVNErrorMessage; + +import javax.xml.bind.annotation.*; +import java.util.Date; + +/** + * @author Konstantin Kolosovsky. + */ +public class CommitInfo { + + public static final CommitInfo EMPTY = new CommitInfo.Builder().setRevision(-1).build(); + + private final long myRevision; + private final Date myDate; + private final String myAuthor; + @Nullable private final SVNErrorMessage myErrorMessage; + + private CommitInfo(@NotNull CommitInfo.Builder builder) { + myRevision = builder.revision; + myAuthor = builder.author; + myDate = builder.date; + myErrorMessage = builder.error; + } + + public long getRevision() { + return myRevision; + } + + public String getAuthor() { + return myAuthor; + } + + public Date getDate() { + return myDate; + } + + @Nullable + public SVNErrorMessage getErrorMessage() { + return myErrorMessage; + } + + @XmlAccessorType(XmlAccessType.NONE) + @XmlType(name = "commit") + @XmlRootElement(name = "commit") + public static class Builder { + + @XmlAttribute(name = "revision") + private long revision; + + @XmlElement(name = "author") + private String author; + + @XmlElement(name = "date") + private Date date; + + @Nullable private SVNErrorMessage error; + + public Builder() { + } + + public Builder(long revision, Date date, String author) { + this.revision = revision; + this.date = date; + this.author = author; + } + + public long getRevision() { + return revision; + } + + public String getAuthor() { + return author; + } + + public Date getDate() { + return date; + } + + @NotNull + public Builder setRevision(long revision) { + this.revision = revision; + return this; + } + + @NotNull + public Builder setAuthor(String author) { + this.author = author; + return this; + } + + @NotNull + public Builder setDate(Date date) { + this.date = date; + return this; + } + + @NotNull + public Builder setError(@Nullable SVNErrorMessage error) { + this.error = error; + return this; + } + + @NotNull + public CommitInfo build() { + return new CommitInfo(this); + } + } +} |