# Package org.tmatesoft.svn.core.io

This package provides a low-level API for direct interacting with a Subversion repository on the SVN protocol level.

See: Description

Interface Summary
Interface | Description
--- | ---
ISVNConnectionListener | The ISVNConnectionListener is an interface for listeners which are invoked by `SVNRepository` when its connection is opened or closed.
ISVNDeltaConsumer | The ISVNDeltaConsumer interface is implemented by receivers of diff windows.
ISVNEditor | The ISVNEditor interface is used by SVNRepository to update versioned files/dirs, check out files/dirs from a repository, commit changes to a repository, take status of files/dirs, get differences between files.
ISVNFileCheckoutTarget | The ISVNFileCheckoutTarget interface is used in the `SVNRepository.checkoutFiles(long, String[], ISVNFileCheckoutTarget)` method to receive versioned file data from the repository.
ISVNFileRevisionHandler | The ISVNFileRevisionHandler interface should be implemented for handling information about file revisions - that is file path, properties, revision properties against a particular revision.
ISVNLocationEntryHandler | This public interface should be implemented for using within `SVNRepository.getLocations(String, long, long[], ISVNLocationEntryHandler)`.
ISVNLocationSegmentHandler | The ISVNLocationSegmentHandler is an interface for location segment handlers which is used in the `SVNRepository.getLocationSegments(String, long, long, long, ISVNLocationSegmentHandler)` method.
ISVNLockHandler | The ISVNLockHandler interface is used to provide some extra processing of locked/unlocked paths.
ISVNReplayHandler | The ISVNReplayHandler is used in `SVNRepository.replayRange(long, long, long, boolean, ISVNReplayHandler)` to provide and editor for replaying a revision.
ISVNReporter | The ISVNReporter interface provides methods to describe the state of local paths in order to get the differences in revisions between those local paths and what is actually in the repository.
ISVNReporterBaton | The ISVNReporterBaton interface should be implemented by callers of update, checkout, etc. operations of SVNRepository drivers in order to describe the state of local items.
ISVNSession | The ISVNSession interface provides some extra handling operations over SVNRepository objects.
ISVNTunnelProvider | The ISVNTunnelProvider is the interface for providers of tunnel command lines matching a specific `"svn+xxx"` tunnel scheme.
ISVNWorkspaceMediator | The ISVNWorkspaceMediator interface is used for temporary data storage (mainly instructions and new text data for deltas) as well as for caching and getting some kind of wcprops.

Class Summary
Class | Description
--- | ---
SVNCapability | This class contains enumeration that describes the repository capabilities or, in other words, features that the repository may be capable of.
SVNFileRevision | The SVNFileRevision class represents information on what path a file is located at (in a repository) in a particular revision, contains file properties and revision properties for that revision.
SVNLocationEntry | The SVNLocationEntry represents a mapping of a path to its revision.
SVNLocationSegment | The SVNLocationSegment is a representation of a segment of an object's version history with an emphasis on the object's location in the repository as of various revisions.
SVNRepository | The abstract class SVNRepository provides an interface for protocol specific drivers used for direct working with a Subversion repository.
SVNRepositoryFactory | SVNRepositoryFactory is an abstract factory that is responsible for creating an appropriate SVNRepository driver specific for the protocol to use.

## Package org.tmatesoft.svn.core.io Description

This package provides a low-level API for direct interacting with a Subversion repository on the SVN protocol level. The main class which manages all the repository access related work is SVNRepository. This class provides a developer a flexible interface which allows the developer not only to perform all basic SVN commands (such as checkout, commit, update, etc.) but to control those commands as well relying upon developer's implementations of ISVNReporter,ISVNEditor and other interfaces which are accepted by most of major methods of SVNRepository.

In the first place SVNRepository as well as the entire low-level API is intended for customizing developer's work with an SVN repository. So it has not the concept of Working Copy in its functionality.