package com.l7tech.server.service.resolution;

import com.l7tech.objectmodel.Goid;
import java.util.HashSet;
import java.util.Set;
import java.util.regex.Pattern;

class f {
   private final String a;
   private Goid b;
   private Set<f> c;
   private static final String e;

   public f() {
      this(null);
   }

   public f(String var1) {
      this.a = var1;
   }

   public boolean isWildcard() {
      return false;
   }

   public String getWord() {
      return this.a;
   }

   public Pattern getPattern() {
      return null;
   }

   public Goid getGoid() {
      return this.b;
   }

   public void setGoid(Goid var1) {
      this.b = var1;
   }

   public boolean hasChildren() {
      return this.c != null && !this.c.isEmpty();
   }

   public boolean hasNoChildren() {
      return !this.hasChildren();
   }

   public Set<f> getChildren() {
      return this.c;
   }

   public void addChild(f var1) {
      if (this.c == null) {
         this.c = new HashSet<>();
      }

      this.c.add(var1);
   }

   public void removeChild(f var1) {
      if (this.hasChildren()) {
         this.c.remove(var1);
      }
   }

   public f getChildContaining(String var1) {
      if (this.hasNoChildren()) {
         return null;
      }

      for (f var3 : this.c) {
         if (var3.getWord().equals(var1)) {
            return var3;
         }
      }

      return null;
   }

   public boolean wasInsertedAsLeaf() {
      return null != this.b;
   }

   @Override
   public String toString() {
      return (this.a != null ? this.a : "/") + (this.b != null ? e + this.b : "");
   }

   static {
      String var10002 = a(20, a("1\u0019"));
      byte var10001 = -1;
      e = var10002;
   }

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

      return var10000;
   }

   private static String a(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 -> 5;
            case 1 -> 46;
            case 2 -> 121;
            case 3 -> 112;
            case 4 -> 35;
            case 5 -> 40;
            default -> 37;
         });
      }

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