/*
* ====================================================================
* 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 java.io.OutputStream;
import org.tmatesoft.svn.core.SVNException;
import org.tmatesoft.svn.core.SVNPropertyValue;
/**
* The <b>ISVNFileCheckoutTarget</b> interface is used in the {@link SVNRepository#checkoutFiles(long, String[], ISVNFileCheckoutTarget)}
* method to receive versioned file data from the repository.
*
* @version 1.3
* @author TMate Software Ltd.
* @since 1.2
*/
public interface ISVNFileCheckoutTarget {
/**
* Returns an output stream that will receive file contents of <code>path</code>.
*
* @param path file path relative to the location of an {@link SVNRepository} object
* @return output stream to receive file contents
* @throws SVNException
*/
public OutputStream getOutputStream(String path) throws SVNException;
/**
* Receives and handles a next file property. Since this handler is used in a checkout-kind operations only,
* the <code>value</code> can never be <span class="javakeyword">null</span>.
*
* @param path file path relative to the location of an {@link SVNRepository} object
* @param name property name
* @param value property value
* @throws SVNException
*/
public void filePropertyChanged(String path, String name, SVNPropertyValue value) throws SVNException;
}