/* * 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); } } }