/******************************************************************************* * Copyright (c) 2012-2017 Codenvy, S.A. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Codenvy, S.A. - initial API and implementation *******************************************************************************/ package org.eclipse.che.api.git.shared; import java.util.List; import org.eclipse.che.dto.shared.DTO; /** * Describe single commit. * * @author andrew00x */ @DTO public interface Revision { /** Parameter which shows that this revision is a fake revision (i.e. TO for Exception). */ boolean isFake(); /** Represents whether this revision is a fake revision. */ void setFake(boolean fake); /** Returns the branch name from witch this commit was performed. */ String getBranch(); /** Set branch name from witch this commit was performed */ void setBranch(String branch); /** * Create a {@link Revision} object based on a given branch name. * * @param branch * branch name * @return a {@link Revision} object that contains information about revision */ Revision withBranch(String branch); /** Returns the commit id. */ String getId(); /** Set commit id. */ void setId(String id); /** * Create a {@link Revision} object based on a given commit id. * * @param id * commit id * @return a {@link Revision} object that contains information about revision */ Revision withId(String id); /** Returns the commit message. */ String getMessage(); /** Set commit message. */ void setMessage(String message); /** * Create a {@link Revision} object based on a given commit message. * * @param message * commit message * @return a {@link Revision} object that contains information about revision */ Revision withMessage(String message); /** Returns the commit time. */ long getCommitTime(); /** Set commit time. */ void setCommitTime(long time); /** * Create a {@link Revision} object based on a given commit time. * * @param time * commit time * @return a {@link Revision} object that contains information about revision */ Revision withCommitTime(long time); /** Returns the GitUser object which represents the committer. */ GitUser getCommitter(); /** Set GitUser object which represents the committer. */ void setCommitter(GitUser committer); /** * Create a {@link Revision} object based on a given GitUser object which represents the committer * * @param committer * GitUser object which represents the committer * @return a {@link Revision} object that contains information about revision */ Revision withCommitter(GitUser committer); /** Returns the commit author. */ GitUser getAuthor(); /** Set GitUser object which represents the commit author. */ void setAuthor(GitUser author); /** * Create a {@link Revision} object based on a given GitUser object which represents the commit author * * @param author * GitUser object which represents the commit author * @return a {@link Revision} object that contains information about revision */ Revision withAuthor(GitUser author); /** Returns the branches where this commit is present. */ List<Branch> getBranches(); /** Set branches where this commit is present. */ void setBranches(List<Branch> branches); /** * Create a {@link Revision} object based on a given list of branches where this commit is present * * @param branches * a list of branches where this commit is present * @return a {@link Revision} object that contains information about revision */ Revision withBranches(List<Branch> branches); /** Returns a list of DiffCommitFile objects, which describes the changes in the commit files. */ List<DiffCommitFile> getDiffCommitFile(); /** Set a list of DiffCommitFile objects, which describes the changes in the commit files. */ void setDiffCommitFile(List<DiffCommitFile> diffCommitFiles); /** * Create a {@link Revision} object based on a given list of DiffCommitFile objects, which describes the changes in the commit files * * @param diffCommitFiles * a list of DiffCommitFile objects, which describes the changes in the commit files * @return a {@link Revision} object that contains information about revision */ Revision withDiffCommitFile(List<DiffCommitFile> diffCommitFiles); /** Returns the commit parents. */ List<String> getCommitParent(); /** Set the commit parents. */ void setCommitParent(List<String> commitParents); /** * Create a {@link Revision} object based on a given list of commit parents * * @param commitParents * a list of commit parents * @return a {@link Revision} object that contains information about revision */ Revision withCommitParent(List<String> commitParents); }