/* * Decompiled with CFR 0.152. */ package com.ice.tar; import com.ice.tar.TarEntry; import com.ice.tar.TarOutputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.zip.GZIPOutputStream; /* * Illegal identifiers - consider using --renameillegalidents true */ public class TarGzOutputStream extends TarOutputStream { private TarOutputStream tos; private GZIPOutputStream gzip; private ByteArrayOutputStream bos; private TarEntry currentEntry; public void setDebug(boolean bl) { this.tos.setDebug(bl); } public void setBufferDebug(boolean bl) { this.tos.setBufferDebug(bl); } public void finish() throws IOException { if (this.currentEntry != null) { this.closeEntry(); } this.tos.finish(); } public void close() throws IOException { this.tos.close(); this.gzip.finish(); } public int getRecordSize() { return this.tos.getRecordSize(); } public void putNextEntry(TarEntry tarEntry) throws IOException { if (tarEntry.getSize() != 0L) { this.tos.putNextEntry(tarEntry); } else { this.currentEntry = tarEntry; } } public void closeEntry() throws IOException { if (this.currentEntry == null) { this.tos.closeEntry(); } else { this.currentEntry.setSize(this.bos.size()); this.tos.putNextEntry(this.currentEntry); this.bos.writeTo(this.tos); this.tos.closeEntry(); this.currentEntry = null; this.bos = new ByteArrayOutputStream(); } } public void write(int n) throws IOException { if (this.currentEntry == null) { this.tos.write(n); } else { this.bos.write(n); } } public void write(byte[] byArray) throws IOException { if (this.currentEntry == null) { this.tos.write(byArray); } else { this.bos.write(byArray); } } public void write(byte[] byArray, int n, int n2) throws IOException { if (this.currentEntry == null) { this.tos.write(byArray, n, n2); } else { this.bos.write(byArray, n, n2); } } private final /* synthetic */ void this() { this.tos = null; this.gzip = null; this.bos = null; this.currentEntry = null; } public TarGzOutputStream(OutputStream outputStream) throws IOException { super(null); this.this(); this.gzip = new GZIPOutputStream(outputStream); this.tos = new TarOutputStream(this.gzip); this.bos = new ByteArrayOutputStream(); } }