Class CommitEditor
- All Implemented Interfaces:
ISVNEditor
public class CommitEditor extends JNIObject implements ISVNEditor
- Since:
- 1.9
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.subversion.javahl.ISVNEditor
ISVNEditor.GetNodeKindCallback, ISVNEditor.ProvideBaseCallback, ISVNEditor.ProvidePropsCallback
-
Field Summary
Fields Modifier and Type Field Description protected RemoteSession
session
Stores a reference to the session that created this editor. -
Constructor Summary
Constructors Modifier Constructor Description protected
CommitEditor(long cppAddr, RemoteSession session)
This constructor is called from the factory to get an instance. -
Method Summary
Modifier and Type Method Description void
abort()
Signal that the edit transmission was not successful.void
addAbsent(String relativePath, NodeKind kind, long replacesRevision)
Create an "absent" node of kindkind
atrelativePath
.void
addDirectory(String relativePath, Iterable<String> children, Map<String,byte[]> properties, long replacesRevision)
Create a new directory atrelativePath
.void
addFile(String relativePath, Checksum checksum, InputStream contents, Map<String,byte[]> properties, long replacesRevision)
Create a new file atrelativePath
.void
addSymlink(String relativePath, String target, Map<String,byte[]> properties, long replacesRevision)
Note: Not implemented.void
alterDirectory(String relativePath, long revision, Iterable<String> children, Map<String,byte[]> properties)
Alter the properties of the directory atrelativePath
.void
alterFile(String relativePath, long revision, Checksum checksum, InputStream contents, Map<String,byte[]> properties)
Alter the contents and/or the properties of the file atrelativePath
withrevision
as its expected revision.void
alterSymlink(String relativePath, long revision, String target, Map<String,byte[]> properties)
Note: Not implemented.void
complete()
Signal that the edit has been completed successfully.void
copy(String sourceRelativePath, long sourceRevision, String destinationRelativePath, long replacesRevision)
Move the node atsourceRelativePath
todestinationRelativePath
.void
delete(String relativePath, long revision)
Delete the existing node atrelativePath
, expected to be identical to revisionrevision
of that path.void
dispose()
Release the native peer (should not depend on finalize), and abort the edit if it has not been completed yet.void
finalize()
void
move(String sourceRelativePath, long sourceRevision, String destinationRelativePath, long replacesRevision)
Move the node atsourceRelativePath
todestinationRelativePath
.
-
Field Details
-
session
Stores a reference to the session that created this editor.
-
-
Constructor Details
-
CommitEditor
This constructor is called from the factory to get an instance.
-
-
Method Details
-
dispose
public void dispose()Description copied from interface:ISVNEditor
Release the native peer (should not depend on finalize), and abort the edit if it has not been completed yet.- Specified by:
dispose
in interfaceISVNEditor
-
addDirectory
public void addDirectory(String relativePath, Iterable<String> children, Map<String,byte[]> properties, long replacesRevision) throws ClientExceptionDescription copied from interface:ISVNEditor
Create a new directory atrelativePath
. The immediate parent ofrelativePath
is expected to exist.For descriptions of
properties
andreplacesRevision
, see #addFile().A complete listing of the immediate children of
relativePath
that will be added subsequently is given inchildren
.children
is a collection of const strings, each giving the basename of an immediate child. It is an error to passnull
forchildren
; use an empty collection to indicate that the new directory will have no children.- Specified by:
addDirectory
in interfaceISVNEditor
- Throws:
ClientException
-
addFile
public void addFile(String relativePath, Checksum checksum, InputStream contents, Map<String,byte[]> properties, long replacesRevision) throws ClientExceptionDescription copied from interface:ISVNEditor
Create a new file atrelativePath
. The immediate parent ofrelativePath
is expected to exist.The file's contents are specified in
contents
which has a checksum matchingchecksum
. Both values must be non-null
.Set the properties of the new file to
properties
. If no properties are being set on the new file,properties
must be empty. It is an error to passnull
forproperties
.If this add is expected to replace a previously existing file, symlink or directory at
relativePath
, the revision number of the node to be replaced must be given inreplacesRevision
. Otherwise,replacesRevision
must be Revision.SVN_INVALID_REVNUM.Note: It is not allowed to call a "delete" followed by an "add" on the same path. Instead, an "add" with
replacesRevision
set accordingly must be used.Note: The
contents
stream's lifetime must not extend beyond the scope of this function. An implementation must close the stream after consuming its contents.- Specified by:
addFile
in interfaceISVNEditor
- Throws:
ClientException
-
addSymlink
public void addSymlink(String relativePath, String target, Map<String,byte[]> properties, long replacesRevision) throws ClientExceptionNote: Not implemented.- Specified by:
addSymlink
in interfaceISVNEditor
- Throws:
ClientException
-
addAbsent
public void addAbsent(String relativePath, NodeKind kind, long replacesRevision) throws ClientExceptionDescription copied from interface:ISVNEditor
Create an "absent" node of kindkind
atrelativePath
. The immediate parent ofrelativePath
is expected to exist. For a description ofreplacesRevision
, see #addFile().- Specified by:
addAbsent
in interfaceISVNEditor
- Throws:
ClientException
-
alterDirectory
public void alterDirectory(String relativePath, long revision, Iterable<String> children, Map<String,byte[]> properties) throws ClientExceptionDescription copied from interface:ISVNEditor
Alter the properties of the directory atrelativePath
.revision
specifies the revision at which the receiver should expect to find this node. That is,relativePath
at the start of the whole edit andrelativePath
atrevision
must lie within the same node-rev (aka location history segment). This information may be used to catch an attempt to alter and out-of-date directory. If the directory does not have a corresponding revision in the repository (e.g. it has not yet been committed), thenrevision
should be Revision.SVN_INVALID_REVNUM.If any changes to the set of children will be made in the future of the edit drive, then
children
must specify the resulting set of children. See #addDirectory() for the format ofchildren
. If not changes will be made, then NULL may be specified.For a description of
properties
, see #addFile(). If no changes to the properties will be made (ie. only future changes to the set of children), thenproperties
may benull
.- Specified by:
alterDirectory
in interfaceISVNEditor
- Throws:
ClientException
-
alterFile
public void alterFile(String relativePath, long revision, Checksum checksum, InputStream contents, Map<String,byte[]> properties) throws ClientExceptionDescription copied from interface:ISVNEditor
Alter the contents and/or the properties of the file atrelativePath
withrevision
as its expected revision. See #alterDirectory() for more information aboutrevision
.If
contents
is non-null
, then the stream will be copied to the file, and its checksum must matchchecksum
(which must also be non-null
). Ifcontents
isnull
, thenchecksum
must also benull
, and no change will be applied to the file's contents.If
properties
is non-null
, then the properties will be applied.For a description of
checksum
andcontents
, see #addFile().This function allows
properties
to benull
, but the parameter is otherwise described by #addFile().Note: The
contents
stream's lifetime must not extend beyond the scope of this function. An implementation must close the stream after consuming its contents.- Specified by:
alterFile
in interfaceISVNEditor
- Throws:
ClientException
-
alterSymlink
public void alterSymlink(String relativePath, long revision, String target, Map<String,byte[]> properties) throws ClientExceptionNote: Not implemented.- Specified by:
alterSymlink
in interfaceISVNEditor
- Throws:
ClientException
-
delete
Description copied from interface:ISVNEditor
Delete the existing node atrelativePath
, expected to be identical to revisionrevision
of that path.- Specified by:
delete
in interfaceISVNEditor
- Throws:
ClientException
-
copy
public void copy(String sourceRelativePath, long sourceRevision, String destinationRelativePath, long replacesRevision) throws ClientExceptionDescription copied from interface:ISVNEditor
Move the node atsourceRelativePath
todestinationRelativePath
.For a description of
replacesRevision
, see #addFile().Note: See the general instructions on paths for this API. Sice the
sourceRelativePath
argument must generally be able to reference any node in the repository, the implication is that the editor's root must be the repository root.- Specified by:
copy
in interfaceISVNEditor
- Throws:
ClientException
-
move
public void move(String sourceRelativePath, long sourceRevision, String destinationRelativePath, long replacesRevision) throws ClientExceptionDescription copied from interface:ISVNEditor
Move the node atsourceRelativePath
todestinationRelativePath
.sourceRevision
specifies the revision at which the receiver should expect to find this node. That is,sourceRelativePath
at the start of the whole edit andsourceRelativePath
atsourceRevision
must lie within the same node-rev (aka history-segment). This is just like the #delete().For a description of
replacesRevision
, see #addFile().- Specified by:
move
in interfaceISVNEditor
- Throws:
ClientException
-
complete
Description copied from interface:ISVNEditor
Signal that the edit has been completed successfully. After this method is called, the editor is considered closed.- Specified by:
complete
in interfaceISVNEditor
- Throws:
ClientException
-
abort
Description copied from interface:ISVNEditor
Signal that the edit transmission was not successful. After this method is called, the editor is considered closed.- Specified by:
abort
in interfaceISVNEditor
- Throws:
ClientException
-
finalize
-