package com.l7tech.common.io;

import com.l7tech.util.ResourceUtils;
import java.io.IOException;
import java.io.OutputStream;
import java.util.logging.Logger;

public class HexLoggingOutputStream extends OutputStream {
   private final HexLogger a;
   private final OutputStream b;

   public HexLoggingOutputStream(String var1, Logger var2, OutputStream var3) {
      this(new HexLogger(var2, var1), var3);
   }

   @Override
   public void close() throws IOException {
      try {
         this.b.close();
      } finally {
         ResourceUtils.closeQuietly(this.a);
      }
   }

   @Override
   public void flush() throws IOException {
      this.b.flush();
   }

   @Override
   public void write(byte[] var1) throws IOException {
      try {
         if (this.a()) {
            this.a(var1, 0, var1.length);
         }
      } catch (IOException var2) {
         throw a(var2);
      }

      this.b.write(var1);
   }

   @Override
   public void write(byte[] var1, int var2, int var3) throws IOException {
      try {
         if (this.a()) {
            this.a(var1, var2, var3);
         }
      } catch (IOException var4) {
         throw a(var4);
      }

      this.b.write(var1, var2, var3);
   }

   @Override
   public void write(int var1) throws IOException {
      try {
         if (this.a()) {
            this.a(new byte[]{(byte)var1}, 0, 1);
         }
      } catch (IOException var2) {
         throw a(var2);
      }

      this.b.write(var1);
   }

   protected HexLoggingOutputStream(HexLogger var1, OutputStream var2) {
      this.a = var1;
      this.b = var2;
   }

   private boolean a() {
      return this.a.traceEnabled();
   }

   private void a(byte[] var1, int var2, int var3) throws IOException {
      this.a.trace(var1, var2, var3);
   }

   private static IOException a(IOException var0) {
      return var0;
   }
}
