Skip to content

Commit

Permalink
#3 refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
oleg-cherednik committed Oct 28, 2024
1 parent e95d482 commit ff71c91
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,10 @@ public final class EntryMetadataOutputStream extends OutputStream {
private static final String COMPRESSED_DATA =
EntryMetadataOutputStream.class.getSimpleName() + ".entryCompressedDataOffs";

protected final ZipEntry zipEntry;
private final Checksum checksum = new CRC32();

private final ZipEntry zipEntry;
private final DataOutput out;
private final Checksum checksum = new CRC32();

private long uncompressedSize;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,32 +35,30 @@
public abstract class EncryptedEntryOutputStream extends OutputStream {

protected final ZipEntry zipEntry;
protected final DataOutput out;
private final DataOutput out;
protected final EncoderDataOutput encoderDataOutput;
protected final EntryMetadataOutputStream emos;

public static EncryptedEntryOutputStream create(ZipEntry zipEntry, DataOutput out) throws IOException {
public static EncryptedEntryOutputStream create(ZipEntry zipEntry,
DataOutput out,
EncoderDataOutput encoderDataOutput) throws IOException {
CompressionMethod compressionMethod = zipEntry.getCompressionMethod();
zipEntry.setDiskNo(out.getDiskNo());

if (compressionMethod == CompressionMethod.STORE)
return new StoreEntryOutputStream(zipEntry, out, createEncoderDataOutput(zipEntry, out));
return new StoreEntryOutputStream(zipEntry, out, encoderDataOutput);
if (compressionMethod == CompressionMethod.DEFLATE)
return new DeflateEntryOutputStream(zipEntry, out, createEncoderDataOutput(zipEntry, out));
return new DeflateEntryOutputStream(zipEntry, out, encoderDataOutput);
if (compressionMethod == CompressionMethod.BZIP2)
return new Bzip2EntryOutputStream(zipEntry, out, createEncoderDataOutput(zipEntry, out));
return new Bzip2EntryOutputStream(zipEntry, out, encoderDataOutput);
if (compressionMethod == CompressionMethod.LZMA)
return new LzmaEntryOutputStream(zipEntry, out, createEncoderDataOutput(zipEntry, out));
return new LzmaEntryOutputStream(zipEntry, out, encoderDataOutput);
if (compressionMethod == CompressionMethod.ZSTD)
return new ZstdEntryOutputStream(zipEntry, out, createEncoderDataOutput(zipEntry, out));
return new ZstdEntryOutputStream(zipEntry, out, encoderDataOutput);

throw new Zip4jvmException("Compression '%s' is not supported", compressionMethod);
}

private static EncoderDataOutput createEncoderDataOutput(ZipEntry zipEntry, DataOutput out) {
return new EncoderDataOutput(zipEntry.createEncoder(), out);
}

protected EncryptedEntryOutputStream(ZipEntry zipEntry, DataOutput out, EncoderDataOutput encoderDataOutput) {
this.zipEntry = zipEntry;
this.out = out;
Expand Down Expand Up @@ -94,6 +92,6 @@ public void close() throws IOException {

@Override
public String toString() {
return out.toString();
return emos.toString();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
package ru.olegcherednik.zip4jvm.io.writers;

import ru.olegcherednik.zip4jvm.io.out.data.DataOutput;
import ru.olegcherednik.zip4jvm.io.out.data.EncoderDataOutput;
import ru.olegcherednik.zip4jvm.io.out.entry.encrypted.EncryptedEntryOutputStream;
import ru.olegcherednik.zip4jvm.model.entry.ZipEntry;
import ru.olegcherednik.zip4jvm.utils.ZipUtils;
Expand All @@ -39,7 +40,8 @@ public final class ZipEntryWriter implements Writer {

@Override
public void write(DataOutput out) throws IOException {
EncryptedEntryOutputStream eos = EncryptedEntryOutputStream.create(zipEntry, out);
EncoderDataOutput encoderDataOutput = new EncoderDataOutput(zipEntry.createEncoder(), out);
EncryptedEntryOutputStream eos = EncryptedEntryOutputStream.create(zipEntry, out, encoderDataOutput);

eos.writeLocalFileHeader();
eos.writeEncryptionHeader();
Expand Down

0 comments on commit ff71c91

Please sign in to comment.