package com.l7tech.gateway.api;

import java.util.ArrayList;
import java.util.Collection;
import org.jetbrains.annotations.NotNull;

public abstract class ReferenceBuilder<I, R extends Reference<I>> {
   protected final R reference;
   private static final String[] a;

   public ReferenceBuilder(@NotNull R var1) {
      if (var1 == null) {
         a(0);
      }

      super();
      this.reference = (R)var1;
   }

   public ReferenceBuilder(String var1, String var2, @NotNull R var3) {
      if (var3 == null) {
         a(1);
      }

      this((R)var3);
      var3.setName(var1);
      var3.setType(var2);
   }

   public ReferenceBuilder(String var1, String var2, String var3, @NotNull R var4) {
      if (var4 == null) {
         a(2);
      }

      this(var1, var3, (R)var4);
      var4.setId(var2);
   }

   @NotNull
   public R build() {
      try {
         if (this.reference == null) {
            a(3);
         }

         return this.reference;
      } catch (IllegalArgumentException var1) {
         throw var1;
      }
   }

   public ReferenceBuilder<I, R> setContent(I var1) {
      this.reference.setContent((I)var1);
      return this;
   }

   public ReferenceBuilder<I, R> addLink(@NotNull Link var1) {
      try {
         if (var1 == null) {
            a(4);
         }
      } catch (IllegalArgumentException var2) {
         throw var2;
      }

      try {
         if (this.reference.getLinks() == null) {
            this.reference.setLinks(new ArrayList<>());
         }
      } catch (IllegalArgumentException var3) {
         throw var3;
      }

      this.reference.getLinks().add(var1);
      return this;
   }

   public ReferenceBuilder<I, R> addLinks(@NotNull Collection<Link> var1) {
      try {
         if (var1 == null) {
            a(5);
         }
      } catch (IllegalArgumentException var2) {
         throw var2;
      }

      try {
         if (this.reference.getLinks() == null) {
            this.reference.setLinks(new ArrayList<>());
         }
      } catch (IllegalArgumentException var3) {
         throw var3;
      }

      this.reference.getLinks().addAll(var1);
      return this;
   }

   static {
      String[] var5 = new String[11];
      int var3 = 0;
      String var2 = "\u0007Y\u000e,K4L\u0016Y>4N\u000f<T4L\u0001\u001c\u000e&Kqb;S\u001c\u0007L=NUL\t;X<G\u0001Y\u001ai\u001etQR\u001c\u0007/\u0019tQ[\u0019\u001biT$Q\u0001\u001c\u0006&Mq@\u0010\u001c\u0006<U=\u0007\u0014X\f\u0005P?I'\u0016S\u0005fUfV\u0010_\u0000f^0V\u0010K\t0\u00160R\u001c\u0013:,_4P\u0010R\u000b,{$K\u0019X\r;\u0005\u0017I\u0001%]*5r\u0007=w$N\u0019\u001c\u0005,M9M\u0011\u001cM:\u0017tQUQ\u001d:MqL\u001aHH;\\%W\u0007RH'L=N\u0005\u0019U\u0006\"J\b\u0014X\f\u0005P?I\u0006'\u0016S\u0005fUfV\u0010_\u0000f^0V\u0010K\t0\u00160R\u001c\u0013:,_4P\u0010R\u000b,{$K\u0019X\r;";
      int var4 = "\u0007Y\u000e,K4L\u0016Y>4N\u000f<T4L\u0001\u001c\u000e&Kqb;S\u001c\u0007L=NUL\t;X<G\u0001Y\u001ai\u001etQR\u001c\u0007/\u0019tQ[\u0019\u001biT$Q\u0001\u001c\u0006&Mq@\u0010\u001c\u0006<U=\u0007\u0014X\f\u0005P?I'\u0016S\u0005fUfV\u0010_\u0000f^0V\u0010K\t0\u00160R\u001c\u0013:,_4P\u0010R\u000b,{$K\u0019X\r;\u0005\u0017I\u0001%]*5r\u0007=w$N\u0019\u001c\u0005,M9M\u0011\u001cM:\u0017tQUQ\u001d:MqL\u001aHH;\\%W\u0007RH'L=N\u0005\u0019U\u0006\"J\b\u0014X\f\u0005P?I\u0006'\u0016S\u0005fUfV\u0010_\u0000f^0V\u0010K\t0\u00160R\u001c\u0013:,_4P\u0010R\u000b,{$K\u0019X\r;"
         .length();
      char var1 = '\t';
      int var7 = -1;

      label24:
      while (true) {
         String var10000 = var2.substring(++var7, var7 + var1);
         byte var10001 = -1;

         while (true) {
            String var12 = a(a(var10000));
            switch (var10001) {
               case 0:
                  var5[var3++] = var12;
                  if ((var7 += var1) >= var4) {
                     a = var5;
                     return;
                  }

                  var1 = var2.charAt(var7);
                  break;
               default:
                  var5[var3++] = var12;
                  if ((var7 += var1) < var4) {
                     var1 = var2.charAt(var7);
                     continue label24;
                  }

                  var2 = "\u0019U\u0006\"\u0006IU\u0006 Mo";
                  var4 = "\u0019U\u0006\"\u0006IU\u0006 Mo".length();
                  var1 = 4;
                  var7 = -1;
            }

            var10000 = var2.substring(++var7, var7 + var1);
            var10001 = 0;
         }
      }
   }

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

      return var10000;
   }

   private static String a(char[] var0) {
      int var10002 = var0.length;
      char[] var10001 = var0;
      int var10000 = var10002;

      for (int var1 = 0; var10000 > var1; var1++) {
         var10001[var1] = (char)(var10001[var1] ^ switch (var1 % 7) {
            case 0 -> 117;
            case 1 -> 60;
            case 2 -> 104;
            case 3 -> 73;
            case 4 -> 57;
            case 5 -> 81;
            default -> 34;
         });
      }

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