package org.tmatesoft.svn.core.wc2;
import org.tmatesoft.svn.core.SVNErrorCode;
/**
* Represents cleanup operation. Recursively cleans up the working copy, removing locks and resuming
* unfinished operations.
*
* <code>Target</code> should represent working copy path.
*
* <p/>
* If you ever get a "working copy locked" error, use this method to remove
* stale locks and get your working copy into a usable state again.
*
* <p>
* This method operates only on working copies and does not open any network
* connection.
*
* <p/>
* {@link #run()} method throws {@link org.tmatesoft.svn.core.SVNException} if one of the following is true:
* <ul>
* <li>exception with {@link SVNErrorCode#ILLEGAL_TARGET} error code
* - if <code>target</code> is URL
* <li>exception with {@link SVNErrorCode#WC_NOT_WORKING_COPY} error code
* - if <code>target</code> is not under version control
* </ul>
*
* @author TMate Software Ltd.
* @version 1.7
*/
public class SvnCleanup extends SvnOperation<Void> {
private boolean deleteWCProperties;
protected SvnCleanup(SvnOperationFactory factory) {
super(factory);
}
/**
* Gets whether or not DAV specific <code>"svn:wc:"</code> properties
* should be removed from the working copy
*
* @return <code>true</code> if properties will be removed, otherwise <code>false</code>
*/
public boolean isDeleteWCProperties() {
return deleteWCProperties;
}
/**
* Sets whether or not DAV specific <code">"svn:wc:"</code> properties
* should be removed from the working copy
*
* @param deleteWCProperties <code>true</code> if properties will be removed, otherwise <code>false</code>
*/
public void setDeleteWCProperties(boolean deleteWCProperties) {
this.deleteWCProperties = deleteWCProperties;
}
/**
* Gets whether the operation changes working copy
* @return <code>true</code> if the operation changes the working copy, otherwise <code>false</code>
*/
@Override
public boolean isChangesWorkingCopy() {
return true;
}
}