package org.tmatesoft.svn.core.wc2;
import java.io.File;
/**
* Interface describes the parameters defining behavior for the commit operation
* that touches still versioned files or directories that are somehow missing.
*
* <p>
* To bring your commit parameters into usage, simply pass them to
* a committer object, for example, to
* {@link SvnCommit#setCommitParameters(ISvnCommitParameters) SvnCommit}.
*
* @author TMate Software Ltd.
* @version 1.7
*/
public interface ISvnCommitParameters {
/**
* Describes an instruction that operation should take if it meets unversioned or missing item.
* This can be:
* <ul>
* <li>DELETE - operation should force a deletion of the item. Although the item may be not
* scheduled for deletion (only missing in filesystem) it will
* be deleted from version control.
* <li>ERROR - Commit should fail and error should be reported.
* <li>SKIP - Item should not be committed.
* </ul>
*
* @author TMate Software Ltd.
* @version 1.7
*/
public enum Action {
DELETE,
ERROR,
SKIP,
}
public Action onMissingFile(File file);
/**
* Returns the action a commit operation should undertake
* if there's a missing directory under commit scope that is not
* however scheduled for deletion.
*
* @param file a missing directory
* @return an action that must be one of
* the constants defined in the interface
*/
public Action onMissingDirectory(File file);
/**
* Instructs whether to remove the local <code>directory</code> after commit or not.
*
* @param directory working copy directory
* @return <code>true</code> if directory should be deleted after commit
*/
public boolean onDirectoryDeletion(File directory);
/**
* Instructs whether to remove the local <code>file</code> after commit or not.
*
* @param file working copy file
* @return <code>true</code> if file should be deleted after commit
*/
public boolean onFileDeletion(File file);
}