/*
* ====================================================================
* 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.io;
import org.tmatesoft.svn.core.SVNErrorMessage;
import org.tmatesoft.svn.core.SVNException;
import org.tmatesoft.svn.core.SVNLock;
/**
* The <b>ISVNLockHandler</b> interface is used to provide some extra
* processing of locked/unlocked paths.
*
* @version 1.3
* @author TMate Software Ltd.
* @since 1.2
* @see SVNRepository#lock(java.util.Map, String, boolean, ISVNLockHandler)
* @see SVNRepository#unlock(java.util.Map, boolean, ISVNLockHandler)
*/
public interface ISVNLockHandler {
/**
* Handles the path locked.
*
* @param path a file path relative to the repository
* root directory
* @param lock the lock set on this <code>path</code>
* @param error if not <span class="javakeyword">null</code> then
* it's an error message object for an error occurred
* while trying to lock an entry, in this case
* <code>lock</code> may be <span class="javakeyword">null</code>
* @throws SVNException
*/
public void handleLock(String path, SVNLock lock, SVNErrorMessage error) throws SVNException;
/**
* Handles the path unlocked.
*
* @param path a file path relative to the repository
* root directory
* @param lock the lock released from this <code>path</code>
* @param error if not <span class="javakeyword">null</code> then
* it's an exception occurred while trying to unlock
* the <code>path</code>, in this case <code>lock</code>
* may be <span class="javakeyword">null</code>
* @throws SVNException
*/
public void handleUnlock(String path, SVNLock lock, SVNErrorMessage error) throws SVNException;
}