package com.l7tech.gateway.common.jdbc;

import java.util.List;
import java.util.Map;

public class JdbcUtil {
   public static final String CALL;
   public static final String EXEC;
   public static final String FUNC;
   public static final String INSERT;
   public static final String UPDATE;
   public static final String DELETE;
   public static final String EMPTY_STRING = "";
   public static final String XML_RESULT_COL_OPEN;
   public static final String XML_RESULT_COL_CLOSE;
   public static final String XML_RESULT_ROW_OPEN;
   public static final String XML_RESULT_ROW_CLOSE;
   public static final String XML_CDATA_TAG_OPEN;
   public static final String XML_CDATA_TAG_CLOSE;
   public static final String XML_NULL_VALUE;
   private static final String[] a;

   public static String getName(String var0) {
      StringBuffer var1 = new StringBuffer();
      boolean var2 = false;

      for (char var6 : var0.toCharArray()) {
         if (var6 != ' ' && var6 != '(' && var6 != '"' && var6 != '\'') {
            if (var2) {
               var1.append(var6);
            }
         } else {
            if (var2) {
               break;
            }

            var2 = true;
         }
      }

      return var1.toString().trim();
   }

   public static boolean isStoredProcedure(String var0) {
      String var10000 = var0.toLowerCase();
      String[] var1 = a;
      return var10000.startsWith(var1[17]) || var0.toLowerCase().startsWith(var1[11]) || var0.toLowerCase().startsWith(var1[6]);
   }

   public static boolean isDMLQuery(String var0) {
      String var10000 = var0.toLowerCase();
      String[] var1 = a;
      return var10000.startsWith(var1[5]) || var0.toLowerCase().startsWith(var1[26]) || var0.toLowerCase().startsWith(var1[3]);
   }

   public static void buildXmlResultString(Map<String, List<Object>> var0, StringBuilder var1) {
      int var2 = 0;

      for (String var4 : var0.keySet()) {
         if (var0.get(var4) != null) {
            var2 = ((List)var0.get(var4)).toArray().length;
            break;
         }
      }

      StringBuilder var16 = new StringBuilder();

      for (int var17 = 0; var17 < var2; var17++) {
         String[] var15 = a;
         var16.append(var15[10]);

         for (String var6 : var0.keySet()) {
            List var7 = (List)var0.get(var6);
            Object var8 = null;
            if (var7 != null && var17 < var7.size()) {
               var8 = ((List)var0.get(var6)).get(var17);
            }

            String var9 = "";
            if (var8 != null) {
               if (!(var8 instanceof byte[])) {
                  String var10000 = var8.getClass().getName();
                  var15 = a;
                  var9 = var15[28] + var10000 + "\"";
               } else {
                  var15 = a;
                  var9 = var15[14];
                  StringBuilder var10 = new StringBuilder();

                  for (byte var14 : (byte[])var8) {
                     var15 = a;
                     var10.append(String.format(var15[29], var14));
                  }

                  var8 = var10.toString();
               }
            }

            var15 = a;
            var16.append(var15[20] + var6 + var15[24] + var9 + ">");
            if (var8 != null) {
               var16.append(handleSpecialXmlChar(var8));
            } else {
               var15 = a;
               var16.append(var15[2]);
            }

            var15 = a;
            var16.append(var15[23]);
         }

         var16.append(a[0]);
      }

      var1.append(var16);
   }

   public static Object handleSpecialXmlChar(Object var0) {
      if (!(var0 instanceof String)) {
         return var0;
      }

      String var1 = var0.toString();
      String[] var3 = a;
      if (var1.startsWith(var3[13]) || var1.indexOf(62) < 0 && var1.indexOf(60) < 0 && var1.indexOf(38) < 0) {
         return var1;
      }

      var3 = a;
      StringBuilder var2 = new StringBuilder(var3[19]);
      var2.append(var1);
      var2.append(var3[27]);
      return var2.toString();
   }

   static {
      String[] var5 = new String[30];
      int var3 = 0;
      String var2 = "\u001e0is \f\u0017Mh\u001b\t\u001eS\u0012.pU\nN?\u0010\u001e>~\u0007\u000ew1cDk\u0011\u0006z8\u007f!\u0006FzI!>S\u0010\u001e>~\u0007\u000ew1cDk\u0011\u0006z8\u007f!\u0006KqV!8B\u0004DjK'\u0004Gg@'\n\u001e0is \f\u0017Mh\u001b\t\u001eS\u0012.pD\nU!\t\u001eS\u0012.pD\nU!\u0004Gg@'\u0006WoA%>S\t\u001e>~\u0007\u000ew1cD\u0017VfU!w\u0014\u000fCiDj&W\u000bE1G=>S>\u007f=\u0004A~I(\u0003\u007fB\u001b\u0004A~I(\u0006FzI!>S\t\u001e>~\u0007\u000ew1cD\u0010\u001eS\u0012.pU\nN?\u0005*+[\u0000\u001f=\u0004DjK'\u0006KqV!8B\n\u001e0is \f\u0006Ms\u001b\u0002\u0000?\n\u001e0is \f\u0006Ms\u001b\u0006WoA%>S\u0003\u007fB\u001b";
      int var4 = "\u001e0is \f\u0017Mh\u001b\t\u001eS\u0012.pU\nN?\u0010\u001e>~\u0007\u000ew1cDk\u0011\u0006z8\u007f!\u0006FzI!>S\u0010\u001e>~\u0007\u000ew1cDk\u0011\u0006z8\u007f!\u0006KqV!8B\u0004DjK'\u0004Gg@'\n\u001e0is \f\u0017Mh\u001b\t\u001eS\u0012.pD\nU!\t\u001eS\u0012.pD\nU!\u0004Gg@'\u0006WoA%>S\t\u001e>~\u0007\u000ew1cD\u0017VfU!w\u0014\u000fCiDj&W\u000bE1G=>S>\u007f=\u0004A~I(\u0003\u007fB\u001b\u0004A~I(\u0006FzI!>S\t\u001e>~\u0007\u000ew1cD\u0010\u001eS\u0012.pU\nN?\u0005*+[\u0000\u001f=\u0004DjK'\u0006KqV!8B\n\u001e0is \f\u0006Ms\u001b\u0002\u0000?\n\u001e0is \f\u0006Ms\u001b\u0006WoA%>S\u0003\u007fB\u001b"
         .length();
      char var1 = '\n';
      int var7 = -1;

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

         while (true) {
            String var8 = a(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     a = var5;
                     String[] var9 = a;
                     XML_NULL_VALUE = a[4];
                     FUNC = var9[21];
                     XML_RESULT_COL_CLOSE = var9[25];
                     CALL = var9[15];
                     XML_CDATA_TAG_OPEN = var9[19];
                     XML_RESULT_ROW_OPEN = var9[9];
                     INSERT = var9[22];
                     XML_RESULT_ROW_CLOSE = var9[8];
                     XML_CDATA_TAG_CLOSE = var9[16];
                     EXEC = var9[7];
                     XML_RESULT_COL_OPEN = var9[1];
                     DELETE = var9[18];
                     UPDATE = var9[12];
                     return;
                  }

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

                  var2 = "Cs@4b\u0001\u0005\u0012:\u0002\t\u007f";
                  var4 = "Cs@4b\u0001\u0005\u0012:\u0002\t\u007f".length();
                  var1 = 6;
                  var7 = -1;
            }

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

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

      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 -> 45;
            case 1 -> 16;
            case 2 -> 42;
            case 3 -> 75;
            case 4 -> 69;
            case 5 -> 57;
            default -> 106;
         });
      }

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