com.amazonaws.services.codecommit.model.Commit Maven / Gradle / Ivy
Show all versions of aws-java-sdk-codecommit Show documentation
/*
 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights
 * Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 *  http://aws.amazon.com/apache2.0
 *
 * or in the "license" file accompanying this file. This file 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.amazonaws.services.codecommit.model;
import java.io.Serializable;
/**
 * 
 * Returns information about a specific commit.
 * 
 */
public class Commit implements Serializable, Cloneable {
    /**
     * 
     * Tree information for the specified commit.
     * 
     */
    private String treeId;
    /**
     * 
     * The parent list for the specified commit.
     * 
     */
    private java.util.List parents;
    /**
     * 
     * The message associated with the specified commit.
     * 
     */
    private String message;
    /**
     * 
     * Information about the author of the specified commit.
     * 
     */
    private UserInfo author;
    /**
     * 
     * Information about the person who committed the specified commit, also
     * known as the committer. For more information about the difference between
     * an author and a committer in Git, see Viewing the Commit History
     * in Pro Git by Scott Chacon and Ben Straub.
     * 
     */
    private UserInfo committer;
    /**
     * 
     * Any additional data associated with the specified commit.
     * 
     */
    private String additionalData;
    /**
     * 
     * Tree information for the specified commit.
     * 
     * 
     * @param treeId
     *        Tree information for the specified commit.
     */
    public void setTreeId(String treeId) {
        this.treeId = treeId;
    }
    /**
     * 
     * Tree information for the specified commit.
     * 
     * 
     * @return Tree information for the specified commit.
     */
    public String getTreeId() {
        return this.treeId;
    }
    /**
     * 
     * Tree information for the specified commit.
     * 
     * 
     * @param treeId
     *        Tree information for the specified commit.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public Commit withTreeId(String treeId) {
        setTreeId(treeId);
        return this;
    }
    /**
     * 
     * The parent list for the specified commit.
     * 
     * 
     * @return The parent list for the specified commit.
     */
    public java.util.List getParents() {
        return parents;
    }
    /**
     * 
     * The parent list for the specified commit.
     * 
     * 
     * @param parents
     *        The parent list for the specified commit.
     */
    public void setParents(java.util.Collection parents) {
        if (parents == null) {
            this.parents = null;
            return;
        }
        this.parents = new java.util.ArrayList(parents);
    }
    /**
     * 
     * The parent list for the specified commit.
     * 
     * 
     * NOTE: This method appends the values to the existing list (if
     * any). Use {@link #setParents(java.util.Collection)} or
     * {@link #withParents(java.util.Collection)} if you want to override the
     * existing values.
     * 
     * 
     * @param parents
     *        The parent list for the specified commit.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public Commit withParents(String... parents) {
        if (this.parents == null) {
            setParents(new java.util.ArrayList(parents.length));
        }
        for (String ele : parents) {
            this.parents.add(ele);
        }
        return this;
    }
    /**
     * 
     * The parent list for the specified commit.
     * 
     * 
     * @param parents
     *        The parent list for the specified commit.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public Commit withParents(java.util.Collection parents) {
        setParents(parents);
        return this;
    }
    /**
     * 
     * The message associated with the specified commit.
     * 
     * 
     * @param message
     *        The message associated with the specified commit.
     */
    public void setMessage(String message) {
        this.message = message;
    }
    /**
     * 
     * The message associated with the specified commit.
     * 
     * 
     * @return The message associated with the specified commit.
     */
    public String getMessage() {
        return this.message;
    }
    /**
     * 
     * The message associated with the specified commit.
     * 
     * 
     * @param message
     *        The message associated with the specified commit.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public Commit withMessage(String message) {
        setMessage(message);
        return this;
    }
    /**
     * 
     * Information about the author of the specified commit.
     * 
     * 
     * @param author
     *        Information about the author of the specified commit.
     */
    public void setAuthor(UserInfo author) {
        this.author = author;
    }
    /**
     * 
     * Information about the author of the specified commit.
     * 
     * 
     * @return Information about the author of the specified commit.
     */
    public UserInfo getAuthor() {
        return this.author;
    }
    /**
     * 
     * Information about the author of the specified commit.
     * 
     * 
     * @param author
     *        Information about the author of the specified commit.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public Commit withAuthor(UserInfo author) {
        setAuthor(author);
        return this;
    }
    /**
     * 
     * Information about the person who committed the specified commit, also
     * known as the committer. For more information about the difference between
     * an author and a committer in Git, see Viewing the Commit History
     * in Pro Git by Scott Chacon and Ben Straub.
     * 
     * 
     * @param committer
     *        Information about the person who committed the specified commit,
     *        also known as the committer. For more information about the
     *        difference between an author and a committer in Git, see Viewing the Commit
     *        History in Pro Git by Scott Chacon and Ben Straub.
     */
    public void setCommitter(UserInfo committer) {
        this.committer = committer;
    }
    /**
     * 
     * Information about the person who committed the specified commit, also
     * known as the committer. For more information about the difference between
     * an author and a committer in Git, see Viewing the Commit History
     * in Pro Git by Scott Chacon and Ben Straub.
     * 
     * 
     * @return Information about the person who committed the specified commit,
     *         also known as the committer. For more information about the
     *         difference between an author and a committer in Git, see Viewing the Commit
     *         History in Pro Git by Scott Chacon and Ben Straub.
     */
    public UserInfo getCommitter() {
        return this.committer;
    }
    /**
     * 
     * Information about the person who committed the specified commit, also
     * known as the committer. For more information about the difference between
     * an author and a committer in Git, see Viewing the Commit History
     * in Pro Git by Scott Chacon and Ben Straub.
     * 
     * 
     * @param committer
     *        Information about the person who committed the specified commit,
     *        also known as the committer. For more information about the
     *        difference between an author and a committer in Git, see Viewing the Commit
     *        History in Pro Git by Scott Chacon and Ben Straub.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public Commit withCommitter(UserInfo committer) {
        setCommitter(committer);
        return this;
    }
    /**
     * 
     * Any additional data associated with the specified commit.
     * 
     * 
     * @param additionalData
     *        Any additional data associated with the specified commit.
     */
    public void setAdditionalData(String additionalData) {
        this.additionalData = additionalData;
    }
    /**
     * 
     * Any additional data associated with the specified commit.
     * 
     * 
     * @return Any additional data associated with the specified commit.
     */
    public String getAdditionalData() {
        return this.additionalData;
    }
    /**
     * 
     * Any additional data associated with the specified commit.
     * 
     * 
     * @param additionalData
     *        Any additional data associated with the specified commit.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public Commit withAdditionalData(String additionalData) {
        setAdditionalData(additionalData);
        return this;
    }
    /**
     * Returns a string representation of this object; useful for testing and
     * debugging.
     *
     * @return A string representation of this object.
     *
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("{");
        if (getTreeId() != null)
            sb.append("TreeId: " + getTreeId() + ",");
        if (getParents() != null)
            sb.append("Parents: " + getParents() + ",");
        if (getMessage() != null)
            sb.append("Message: " + getMessage() + ",");
        if (getAuthor() != null)
            sb.append("Author: " + getAuthor() + ",");
        if (getCommitter() != null)
            sb.append("Committer: " + getCommitter() + ",");
        if (getAdditionalData() != null)
            sb.append("AdditionalData: " + getAdditionalData());
        sb.append("}");
        return sb.toString();
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (obj instanceof Commit == false)
            return false;
        Commit other = (Commit) obj;
        if (other.getTreeId() == null ^ this.getTreeId() == null)
            return false;
        if (other.getTreeId() != null
                && other.getTreeId().equals(this.getTreeId()) == false)
            return false;
        if (other.getParents() == null ^ this.getParents() == null)
            return false;
        if (other.getParents() != null
                && other.getParents().equals(this.getParents()) == false)
            return false;
        if (other.getMessage() == null ^ this.getMessage() == null)
            return false;
        if (other.getMessage() != null
                && other.getMessage().equals(this.getMessage()) == false)
            return false;
        if (other.getAuthor() == null ^ this.getAuthor() == null)
            return false;
        if (other.getAuthor() != null
                && other.getAuthor().equals(this.getAuthor()) == false)
            return false;
        if (other.getCommitter() == null ^ this.getCommitter() == null)
            return false;
        if (other.getCommitter() != null
                && other.getCommitter().equals(this.getCommitter()) == false)
            return false;
        if (other.getAdditionalData() == null
                ^ this.getAdditionalData() == null)
            return false;
        if (other.getAdditionalData() != null
                && other.getAdditionalData().equals(this.getAdditionalData()) == false)
            return false;
        return true;
    }
    @Override
    public int hashCode() {
        final int prime = 31;
        int hashCode = 1;
        hashCode = prime * hashCode
                + ((getTreeId() == null) ? 0 : getTreeId().hashCode());
        hashCode = prime * hashCode
                + ((getParents() == null) ? 0 : getParents().hashCode());
        hashCode = prime * hashCode
                + ((getMessage() == null) ? 0 : getMessage().hashCode());
        hashCode = prime * hashCode
                + ((getAuthor() == null) ? 0 : getAuthor().hashCode());
        hashCode = prime * hashCode
                + ((getCommitter() == null) ? 0 : getCommitter().hashCode());
        hashCode = prime
                * hashCode
                + ((getAdditionalData() == null) ? 0 : getAdditionalData()
                        .hashCode());
        return hashCode;
    }
    @Override
    public Commit clone() {
        try {
            return (Commit) super.clone();
        } catch (CloneNotSupportedException e) {
            throw new IllegalStateException(
                    "Got a CloneNotSupportedException from Object.clone() "
                            + "even though we're Cloneable!", e);
        }
    }
}