package com.l7tech.gateway.common.audit;

import com.l7tech.objectmodel.imp.PersistentEntityImp;
import com.l7tech.util.DeserializeSafe;
import jakarta.persistence.CollectionTable;
import jakarta.persistence.Column;
import jakarta.persistence.ElementCollection;
import jakarta.persistence.Entity;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.Transient;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.Serializable;
import java.io.StringWriter;
import org.hibernate.annotations.IndexColumn;
import org.hibernate.annotations.Proxy;

@Entity
@Proxy(lazy = false)
@Table(name = "audit_detail")
@DeserializeSafe
public class AuditDetail extends PersistentEntityImp implements Serializable, Comparable {
   private transient AuditRecord auditRecord;
   private String auditGuid;
   private long time;
   private int messageId;
   private String[] params;
   private int componentId;
   private String exception;
   private int ordinal;
   private static final long serialVersionUID = -683284228393791540L;
   private static final String b;

   public AuditDetail(AuditDetailMessage var1) {
      this(var1, null, (Throwable)null);
   }

   public AuditDetail(AuditDetailMessage var1, String var2) {
      this(var1, var2 == null ? null : new String[]{var2}, null);
   }

   public AuditDetail(AuditDetailMessage var1, String var2, String var3) {
      this(var1, var2 == null && var3 == null ? null : new String[]{var2, var3}, null);
   }

   public AuditDetail(AuditDetailMessage var1, String... var2) {
      this(var1, var2, null);
   }

   public AuditDetail(AuditDetailMessage var1, String[] var2, Throwable var3) {
      this.time = System.currentTimeMillis();
      this.messageId = var1.getId();
      this.params = var2;
      if (var3 != null) {
         StringWriter var4 = new StringWriter(4096);
         var3.printStackTrace(new PrintWriter(var4));
         this.exception = var4.toString();
      }
   }

   @ManyToOne
   @JoinColumn(name = "audit_goid")
   public AuditRecord getAuditRecord() {
      return this.auditRecord;
   }

   public void setAuditRecord(AuditRecord var1) {
      this.auditRecord = var1;
   }

   @Column(name = "time")
   public long getTime() {
      return this.time;
   }

   @Column(name = "message_id")
   public int getMessageId() {
      return this.messageId;
   }

   @Transient
   public String getAuditGuid() {
      return this.auditGuid;
   }

   @Column(name = "ordinal")
   public int getOrdinal() {
      return this.ordinal;
   }

   @ElementCollection
   @CollectionTable(name = "audit_detail_params", joinColumns = @JoinColumn(name = "audit_detail_goid"))
   @IndexColumn(name = "position")
   @Column(name = "value")
   public String[] getParams() {
      return this.params;
   }

   public void setAuditGuid(String var1) {
      this.auditGuid = var1;
   }

   @Column(name = "exception_message")
   public String getException() {
      return this.exception;
   }

   @Column(name = "component_id")
   public int getComponentId() {
      return this.componentId;
   }

   public void setOrdinal(int var1) {
      this.ordinal = var1;
   }

   @Deprecated
   public AuditDetail() {
   }

   @Deprecated
   public void setComponentId(int var1) {
      this.componentId = var1;
   }

   @Deprecated
   public void setTime(long var1) {
      this.time = var1;
   }

   @Deprecated
   public void setMessageId(int var1) {
      this.messageId = var1;
   }

   @Deprecated
   public void setParams(String[] var1) {
      this.params = var1;
   }

   @Deprecated
   public void setException(String var1) {
      this.exception = var1;
   }

   @Override
   public boolean equals(Object param1) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: aload 0
      // 001: aload 1
      // 002: if_acmpne 00b
      // 005: bipush 1
      // 006: ireturn
      // 007: invokestatic com/l7tech/gateway/common/audit/AuditDetail.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 00a: athrow
      // 00b: aload 1
      // 00c: ifnull 021
      // 00f: aload 0
      // 010: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
      // 013: aload 1
      // 014: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
      // 017: if_acmpeq 027
      // 01a: goto 021
      // 01d: invokestatic com/l7tech/gateway/common/audit/AuditDetail.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 020: athrow
      // 021: bipush 0
      // 022: ireturn
      // 023: invokestatic com/l7tech/gateway/common/audit/AuditDetail.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 026: athrow
      // 027: aload 0
      // 028: aload 1
      // 029: invokespecial com/l7tech/objectmodel/imp/PersistentEntityImp.equals (Ljava/lang/Object;)Z
      // 02c: ifne 035
      // 02f: bipush 0
      // 030: ireturn
      // 031: invokestatic com/l7tech/gateway/common/audit/AuditDetail.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 034: athrow
      // 035: aload 1
      // 036: checkcast com/l7tech/gateway/common/audit/AuditDetail
      // 039: astore 2
      // 03a: aload 0
      // 03b: getfield com/l7tech/gateway/common/audit/AuditDetail.auditGuid Ljava/lang/String;
      // 03e: ifnull 05d
      // 041: aload 0
      // 042: getfield com/l7tech/gateway/common/audit/AuditDetail.auditGuid Ljava/lang/String;
      // 045: aload 2
      // 046: getfield com/l7tech/gateway/common/audit/AuditDetail.auditGuid Ljava/lang/String;
      // 049: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 04c: ifne 06a
      // 04f: goto 056
      // 052: invokestatic com/l7tech/gateway/common/audit/AuditDetail.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 055: athrow
      // 056: goto 064
      // 059: invokestatic com/l7tech/gateway/common/audit/AuditDetail.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 05c: athrow
      // 05d: aload 2
      // 05e: getfield com/l7tech/gateway/common/audit/AuditDetail.auditGuid Ljava/lang/String;
      // 061: ifnull 06a
      // 064: bipush 0
      // 065: ireturn
      // 066: invokestatic com/l7tech/gateway/common/audit/AuditDetail.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 069: athrow
      // 06a: aload 0
      // 06b: getfield com/l7tech/gateway/common/audit/AuditDetail.componentId I
      // 06e: aload 2
      // 06f: getfield com/l7tech/gateway/common/audit/AuditDetail.componentId I
      // 072: if_icmpeq 07b
      // 075: bipush 0
      // 076: ireturn
      // 077: invokestatic com/l7tech/gateway/common/audit/AuditDetail.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 07a: athrow
      // 07b: aload 0
      // 07c: getfield com/l7tech/gateway/common/audit/AuditDetail.messageId I
      // 07f: aload 2
      // 080: getfield com/l7tech/gateway/common/audit/AuditDetail.messageId I
      // 083: if_icmpeq 08c
      // 086: bipush 0
      // 087: ireturn
      // 088: invokestatic com/l7tech/gateway/common/audit/AuditDetail.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 08b: athrow
      // 08c: aload 0
      // 08d: getfield com/l7tech/gateway/common/audit/AuditDetail.ordinal I
      // 090: aload 2
      // 091: getfield com/l7tech/gateway/common/audit/AuditDetail.ordinal I
      // 094: if_icmpeq 09d
      // 097: bipush 0
      // 098: ireturn
      // 099: invokestatic com/l7tech/gateway/common/audit/AuditDetail.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 09c: athrow
      // 09d: aload 0
      // 09e: getfield com/l7tech/gateway/common/audit/AuditDetail.time J
      // 0a1: aload 2
      // 0a2: getfield com/l7tech/gateway/common/audit/AuditDetail.time J
      // 0a5: lcmp
      // 0a6: ifeq 0af
      // 0a9: bipush 0
      // 0aa: ireturn
      // 0ab: invokestatic com/l7tech/gateway/common/audit/AuditDetail.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0ae: athrow
      // 0af: aload 0
      // 0b0: getfield com/l7tech/gateway/common/audit/AuditDetail.auditRecord Lcom/l7tech/gateway/common/audit/AuditRecord;
      // 0b3: ifnull 0d2
      // 0b6: aload 0
      // 0b7: getfield com/l7tech/gateway/common/audit/AuditDetail.auditRecord Lcom/l7tech/gateway/common/audit/AuditRecord;
      // 0ba: aload 2
      // 0bb: getfield com/l7tech/gateway/common/audit/AuditDetail.auditRecord Lcom/l7tech/gateway/common/audit/AuditRecord;
      // 0be: invokevirtual com/l7tech/gateway/common/audit/AuditRecord.equals (Ljava/lang/Object;)Z
      // 0c1: ifne 0df
      // 0c4: goto 0cb
      // 0c7: invokestatic com/l7tech/gateway/common/audit/AuditDetail.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0ca: athrow
      // 0cb: goto 0d9
      // 0ce: invokestatic com/l7tech/gateway/common/audit/AuditDetail.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0d1: athrow
      // 0d2: aload 2
      // 0d3: getfield com/l7tech/gateway/common/audit/AuditDetail.auditRecord Lcom/l7tech/gateway/common/audit/AuditRecord;
      // 0d6: ifnull 0df
      // 0d9: bipush 0
      // 0da: ireturn
      // 0db: invokestatic com/l7tech/gateway/common/audit/AuditDetail.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0de: athrow
      // 0df: aload 0
      // 0e0: getfield com/l7tech/gateway/common/audit/AuditDetail.exception Ljava/lang/String;
      // 0e3: ifnull 102
      // 0e6: aload 0
      // 0e7: getfield com/l7tech/gateway/common/audit/AuditDetail.exception Ljava/lang/String;
      // 0ea: aload 2
      // 0eb: getfield com/l7tech/gateway/common/audit/AuditDetail.exception Ljava/lang/String;
      // 0ee: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0f1: ifne 10f
      // 0f4: goto 0fb
      // 0f7: invokestatic com/l7tech/gateway/common/audit/AuditDetail.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0fa: athrow
      // 0fb: goto 109
      // 0fe: invokestatic com/l7tech/gateway/common/audit/AuditDetail.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 101: athrow
      // 102: aload 2
      // 103: getfield com/l7tech/gateway/common/audit/AuditDetail.exception Ljava/lang/String;
      // 106: ifnull 10f
      // 109: bipush 0
      // 10a: ireturn
      // 10b: invokestatic com/l7tech/gateway/common/audit/AuditDetail.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 10e: athrow
      // 10f: aload 0
      // 110: getfield com/l7tech/gateway/common/audit/AuditDetail.params [Ljava/lang/String;
      // 113: aload 2
      // 114: getfield com/l7tech/gateway/common/audit/AuditDetail.params [Ljava/lang/String;
      // 117: invokestatic java/util/Arrays.equals ([Ljava/lang/Object;[Ljava/lang/Object;)Z
      // 11a: ifne 123
      // 11d: bipush 0
      // 11e: ireturn
      // 11f: invokestatic com/l7tech/gateway/common/audit/AuditDetail.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 122: athrow
      // 123: bipush 1
      // 124: ireturn
      // try (0 -> 5): 5 java/lang/RuntimeException
      // try (7 -> 14): 15 java/lang/RuntimeException
      // try (9 -> 19): 19 java/lang/RuntimeException
      // try (21 -> 27): 27 java/lang/RuntimeException
      // try (32 -> 41): 42 java/lang/RuntimeException
      // try (35 -> 45): 45 java/lang/RuntimeException
      // try (47 -> 52): 52 java/lang/RuntimeException
      // try (54 -> 61): 61 java/lang/RuntimeException
      // try (63 -> 70): 70 java/lang/RuntimeException
      // try (72 -> 79): 79 java/lang/RuntimeException
      // try (81 -> 89): 89 java/lang/RuntimeException
      // try (91 -> 100): 101 java/lang/RuntimeException
      // try (94 -> 104): 104 java/lang/RuntimeException
      // try (106 -> 111): 111 java/lang/RuntimeException
      // try (113 -> 122): 123 java/lang/RuntimeException
      // try (116 -> 126): 126 java/lang/RuntimeException
      // try (128 -> 133): 133 java/lang/RuntimeException
      // try (135 -> 143): 143 java/lang/RuntimeException
   }

   @Override
   public int hashCode() {
      int var1 = super.hashCode();

      int var10000;
      int var10001;
      label31: {
         try {
            var10000 = 29 * var1;
            if (this.auditGuid != null) {
               var10001 = this.auditGuid.hashCode();
               break label31;
            }
         } catch (RuntimeException var3) {
            throw a(var3);
         }

         var10001 = 0;
      }

      var1 = var10000 + var10001;
      var1 = 29 * var1 + (int)(this.time ^ this.time >>> 32);
      var1 = 29 * var1 + this.messageId;
      var1 = 29 * var1 + this.componentId;

      label23: {
         try {
            var10000 = 29 * var1;
            if (this.exception != null) {
               var10001 = this.exception.hashCode();
               break label23;
            }
         } catch (RuntimeException var2) {
            throw a(var2);
         }

         var10001 = 0;
      }

      var1 = var10000 + var10001;
      return 29 * var1 + this.ordinal;
   }

   public void serializeSignableProperties(OutputStream param1, boolean param2) throws IOException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 1
      // 01: aload 0
      // 02: getfield com/l7tech/gateway/common/audit/AuditDetail.messageId I
      // 05: invokestatic java/lang/Integer.toString (I)Ljava/lang/String;
      // 08: invokevirtual java/lang/String.getBytes ()[B
      // 0b: invokevirtual java/io/OutputStream.write ([B)V
      // 0e: aload 1
      // 0f: ldc "\\"
      // 11: invokevirtual java/lang/String.getBytes ()[B
      // 14: invokevirtual java/io/OutputStream.write ([B)V
      // 17: aload 1
      // 18: ldc ":"
      // 1a: invokevirtual java/lang/String.getBytes ()[B
      // 1d: invokevirtual java/io/OutputStream.write ([B)V
      // 20: iload 2
      // 21: ifeq 8f
      // 24: aload 0
      // 25: getfield com/l7tech/gateway/common/audit/AuditDetail.messageId I
      // 28: invokestatic com/l7tech/gateway/common/audit/MessagesUtil.getAuditDetailMessageByIdPre80 (I)Ljava/lang/String;
      // 2b: astore 3
      // 2c: new java/lang/StringBuffer
      // 2f: dup
      // 30: invokespecial java/lang/StringBuffer.<init> ()V
      // 33: astore 4
      // 35: aload 3
      // 36: ifnull 6b
      // 39: aload 0
      // 3a: getfield com/l7tech/gateway/common/audit/AuditDetail.params [Ljava/lang/String;
      // 3d: ifnull 6b
      // 40: goto 47
      // 43: invokestatic com/l7tech/gateway/common/audit/AuditDetail.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 46: athrow
      // 47: new java/text/MessageFormat
      // 4a: dup
      // 4b: aload 3
      // 4c: invokespecial java/text/MessageFormat.<init> (Ljava/lang/String;)V
      // 4f: astore 5
      // 51: aload 5
      // 53: aload 0
      // 54: getfield com/l7tech/gateway/common/audit/AuditDetail.params [Ljava/lang/String;
      // 57: aload 4
      // 59: new java/text/FieldPosition
      // 5c: dup
      // 5d: bipush 0
      // 5e: invokespecial java/text/FieldPosition.<init> (I)V
      // 61: invokevirtual java/text/MessageFormat.format ([Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
      // 64: pop
      // 65: aload 4
      // 67: invokevirtual java/lang/StringBuffer.toString ()Ljava/lang/String;
      // 6a: astore 3
      // 6b: aload 3
      // 6c: ifnull 8c
      // 6f: aload 3
      // 70: invokevirtual java/lang/String.length ()I
      // 73: ifle 8c
      // 76: goto 7d
      // 79: invokestatic com/l7tech/gateway/common/audit/AuditDetail.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 7c: athrow
      // 7d: aload 1
      // 7e: aload 3
      // 7f: invokevirtual java/lang/String.getBytes ()[B
      // 82: invokevirtual java/io/OutputStream.write ([B)V
      // 85: goto 8c
      // 88: invokestatic com/l7tech/gateway/common/audit/AuditDetail.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 8b: athrow
      // 8c: goto c7
      // 8f: aload 0
      // 90: getfield com/l7tech/gateway/common/audit/AuditDetail.params [Ljava/lang/String;
      // 93: ifnull c7
      // 96: aload 0
      // 97: getfield com/l7tech/gateway/common/audit/AuditDetail.params [Ljava/lang/String;
      // 9a: astore 3
      // 9b: aload 3
      // 9c: arraylength
      // 9d: istore 4
      // 9f: bipush 0
      // a0: istore 5
      // a2: iload 5
      // a4: iload 4
      // a6: if_icmpge c7
      // a9: aload 3
      // aa: iload 5
      // ac: aaload
      // ad: astore 6
      // af: aload 1
      // b0: aload 6
      // b2: invokevirtual java/lang/String.getBytes ()[B
      // b5: invokevirtual java/io/OutputStream.write ([B)V
      // b8: aload 1
      // b9: ldc ":"
      // bb: invokevirtual java/lang/String.getBytes ()[B
      // be: invokevirtual java/io/OutputStream.write ([B)V
      // c1: iinc 5 1
      // c4: goto a2
      // c7: return
      // try (24 -> 29): 30 java/io/IOException
      // try (50 -> 55): 56 java/io/IOException
      // try (52 -> 62): 63 java/io/IOException
   }

   @Override
   public int compareTo(Object var1) {
      try {
         if (this == var1) {
            return 0;
         }
      } catch (RuntimeException var3) {
         throw a(var3);
      }

      try {
         if (!(var1 instanceof AuditDetail)) {
            throw new RuntimeException(b + var1.getClass().getName() + "s");
         }
      } catch (RuntimeException var4) {
         throw a(var4);
      }

      AuditDetail var2 = (AuditDetail)var1;
      return this.getOrdinal() - var2.getOrdinal();
   }

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

   static {
      String var10002 = b(109, b("O\u007f\u001a`O{X\u0011dO#CwFWb\n`moR_d+%X{_ZcO!B~\u0016"));
      byte var10001 = -1;
      b = var10002;
   }

   private static char[] b(String var0) {
      char[] var10000 = var0.toCharArray();
      if (var10000.length < 2) {
         var10000[0] = (char)(var10000[0] ^ 91);
      }

      return var10000;
   }

   private static String b(int var0, char[] var1) {
      int var10003 = var1.length;
      int var10002 = var0;
      char[] var10001 = var1;
      int var10000 = var10003;

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 91;
            case 1 -> 125;
            case 2 -> 2;
            case 3 -> 45;
            case 4 -> 65;
            case 5 -> 119;
            default -> 91;
         });
      }

      return new String(var10001).intern();
   }
}
