/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package br.uff.ic.oceano.core.tools.vcs; import br.uff.ic.oceano.core.exception.VCSException; import br.uff.ic.oceano.core.model.SoftwareProject; import br.uff.ic.oceano.core.model.ProjectUser; import br.uff.ic.oceano.core.tools.*; import br.uff.ic.oceano.core.model.Revision; import java.io.File; import java.util.Calendar; import java.util.Set; /** * * @author DanCastellani */ public interface VCS extends Tool { public Revision doCheckout(Revision configuration, ProjectUser projectUser, boolean createDirectory) throws VCSException; public Long doCheckout(File createdFileToworkspace, ProjectUser projectUser) throws VCSException; public Revision doUpdate(Revision configuration, ProjectUser projectUser, boolean updateFilderName) throws VCSException; public void doCopyTo(String pathWorkspace, ProjectUser projectUser, String urlTarget) throws VCSException; public Long doCommit(String pathWorkspace, ProjectUser projectUserChanged, String commitMessage) throws VCSException; public Long doSwitchTo(String pathWorkspace, ProjectUser projectUserChanged, String urlTarget) throws VCSException; public void doFullRevert(File[] paths)throws VCSException; public Set<Revision> getRevisions(SoftwareProject project, ProjectUser projectUser) throws VCSException; public Long getNumberOfHEADRevision(ProjectUser projectUser) throws VCSException; /** * * @param project * @param projectUser * @param date * @return the last revision made until this date. * @throws VCSException */ public Revision getRevision(SoftwareProject project, ProjectUser projectUser, Calendar calendar) throws VCSException; /** * Return revision number revisionNumber, if it exists. * @param project * @param projectUser * @param revisionNumber * @return * @throws VCSException */ public Revision getRevision(SoftwareProject project, ProjectUser projectUser, Long revisionNumber) throws VCSException; }