package org.tmatesoft.svn.core.wc2; import org.tmatesoft.svn.core.SVNCommitInfo; import org.tmatesoft.svn.core.SVNErrorCode; import org.tmatesoft.svn.core.wc.ISVNEventHandler; import org.tmatesoft.svn.core.wc.SVNEventAction; /** * Represents delete operation. Deletes items from a repository. * * <p/> * All <code>targets</code> should be URLs, representing repository locations to be removed. * URLs can be from multiple repositories. * * <p/> * <code>commitHandler</code> will be asked for a commit log message. * * <p/> * If the caller's {@link ISVNEventHandler event handler} is not <code>null</code> and if the commit succeeds, the handler * will be called with {@link SVNEventAction#COMMIT_COMPLETED} event action. * * <p/> * {@link #run()} method returns {@link SVNCommitInfo} information on a new revision as the result of the commit. * * {@link #run()} throws {@link org.tmatesoft.svn.core.SVNException} in the following cases: * <ul> * <li/>exception with {@link SVNErrorCode#RA_ILLEGAL_URL} error code * - if cannot compute common root url for <code>targets</code>, * <code>targets</code> can can refer to different repositories * <li/>exception with {@link SVNErrorCode#CLIENT_PROPERTY_NAME} error code * - if there is standard Subversion property among revision properties * <li/>exception with {@link SVNErrorCode#FS_NOT_FOUND} error code * - if some of the <code>targets</code> does not exist * <li/>exception with {@link SVNErrorCode#RA_ILLEGAL_URL} error code * - if some of the <code>targets</code> is not within a repository * </ul> * * @author TMate Software Ltd. * @version 1.7 */ public class SvnRemoteDelete extends AbstractSvnCommit { protected SvnRemoteDelete(SvnOperationFactory factory) { super(factory); } @Override protected int getMaximumTargetsCount() { return Integer.MAX_VALUE; } /** * 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 false; } }