Class ChangeSetPerformer<I extends ArchiveInputStream<E>,O extends ArchiveOutputStream<E>,E extends ArchiveEntry>
java.lang.Object
org.apache.commons.compress.changes.ChangeSetPerformer<I,O,E>
- Type Parameters:
I
- TheArchiveInputStream
type.O
- TheArchiveOutputStream
type.E
- TheArchiveEntry
type, must be compatible between the inputI
and outputO
stream types.
public class ChangeSetPerformer<I extends ArchiveInputStream<E>,O extends ArchiveOutputStream<E>,E extends ArchiveEntry>
extends Object
Performs ChangeSet operations on a stream. This class is thread safe and can be used multiple times. It operates on a copy of the ChangeSet. If the ChangeSet
changes, a new Performer must be created.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static interface
Abstracts getting entries and streams for archive entries.private static final class
private static final class
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionChangeSetPerformer
(ChangeSet<E> changeSet) Constructs a ChangeSetPerformer with the changes from this ChangeSet -
Method Summary
Modifier and TypeMethodDescriptionprivate void
copyStream
(InputStream inputStream, O outputStream, E archiveEntry) Copies the ArchiveEntry to the Output streamprivate boolean
isDeletedLater
(Set<Change<E>> workingSet, E entry) Checks if an ArchiveEntry is deleted later in the ChangeSet.Performs all changes collected in this ChangeSet on the input stream and streams the result to the output stream.Performs all changes collected in this ChangeSet on the ZipFile and streams the result to the output stream.private ChangeSetResults
perform
(ChangeSetPerformer.ArchiveEntryIterator<E> entryIterator, O outputStream) Performs all changes collected in this ChangeSet on the input entries and streams the result to the output stream.
-
Field Details
-
changes
-
-
Constructor Details
-
ChangeSetPerformer
Constructs a ChangeSetPerformer with the changes from this ChangeSet- Parameters:
changeSet
- the ChangeSet which operations are used for performing
-
-
Method Details
-
copyStream
Copies the ArchiveEntry to the Output stream- Parameters:
inputStream
- the stream to read the data fromoutputStream
- the stream to write the data toarchiveEntry
- the entry to write- Throws:
IOException
- if data cannot be read or written
-
isDeletedLater
Checks if an ArchiveEntry is deleted later in the ChangeSet. This is necessary if a file is added with this ChangeSet, but later became deleted in the same set.- Parameters:
entry
- the entry to check- Returns:
- true, if this entry has a deletion change later, false otherwise
-
perform
private ChangeSetResults perform(ChangeSetPerformer.ArchiveEntryIterator<E> entryIterator, O outputStream) throws IOException Performs all changes collected in this ChangeSet on the input entries and streams the result to the output stream. This method finishes the stream, no other entries should be added after that.- Parameters:
entryIterator
- the entries to perform the changes onoutputStream
- the resulting OutputStream with all modifications- Returns:
- the results of this operation
- Throws:
IOException
- if a read/write error occurs
-
perform
Performs all changes collected in this ChangeSet on the input stream and streams the result to the output stream. Perform may be called more than once. This method finishes the stream, no other entries should be added after that.- Parameters:
inputStream
- the InputStream to perform the changes onoutputStream
- the resulting OutputStream with all modifications- Returns:
- the results of this operation
- Throws:
IOException
- if a read/write error occurs
-
perform
Performs all changes collected in this ChangeSet on the ZipFile and streams the result to the output stream. Perform may be called more than once. This method finishes the stream, no other entries should be added after that.- Parameters:
zipFile
- the ZipFile to perform the changes onoutputStream
- the resulting OutputStream with all modifications- Returns:
- the results of this operation
- Throws:
IOException
- if a read/write error occurs- Since:
- 1.5
-