/*
* ====================================================================
* Copyright (c) 2004-2012 TMate Software Ltd. All rights reserved.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at http://svnkit.com/license.html
* If newer versions of this license are posted there, you may use a
* newer version instead, at your option.
* ====================================================================
*/
package org.tmatesoft.svn.core.wc;
import java.io.File;
/**
* ISVNCommitParameters is the interface for parameters
* which set behaviour for a commit operation that touches
* still versioned files or dirs that are somehow missing.
*
* <p>
* To bring your commit parameters into usage, simply pass them to
* a committer object, for example, to
* {@link SVNCommitClient#setCommitParameters(ISVNCommitParameters) SVNCommitClient}.
*
* @version 1.3
* @author TMate Software Ltd.
* @since 1.2
* @see DefaultSVNCommitParameters
*/
public interface ISVNCommitParameters {
/**
* A constant that defines a file/dir missing situation as an
* error, commit should fail.
*/
public static final Action ERROR = new Action();
/**
* A constant that instructs a commit operation to skip a
* missing item. So, the item is not committed.
*/
public static final Action SKIP = new Action();
/**
* A constant that instructs a commit operation to force
* a deletion of a missing item. Although the item may be not
* scheduled for deletion (only missing in filesystem) it will
* be deleted from version control.
*/
public static final Action DELETE = new Action();
/**
* Returns the action a commit operation should undertake
* if there's a missing file under commit scope that is not however
* scheduled for deletion.
*
* @param file a missing file
* @return an action that must be one of
* the constants defined in the interface
*/
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 <span class="javakeyword">true</span> 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 <span class="javakeyword">true</span> if file should be deleted after commit
*/
public boolean onFileDeletion(File file);
/**
* This class is simply used to define an action a commit
* operation should undertake in case of a missing file/directory.
*
* @version 1.1
* @author TMate Software Ltd.
*/
public static class Action {
private Action() {
}
}
}