package com.l7tech.server.policy.variable;

import com.l7tech.gateway.common.audit.AdminAuditRecord;
import com.l7tech.gateway.common.audit.AuditRecordUtils;
import com.l7tech.gateway.common.audit.MessageSummaryAuditRecord;
import com.l7tech.gateway.common.audit.SystemAuditRecord;
import com.l7tech.policy.variable.Syntax.SyntaxErrorHandler;
import com.l7tech.server.audit.AuditLookupSearchCriteria;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

public class AuditSearchCriteriaSelector implements ExpandVariables.Selector<AuditLookupSearchCriteria> {
   private static final Logger a;
   private static final Level[] b;
   private static final String[] c;

   public ExpandVariables.Selector.Selection select(String var1, AuditLookupSearchCriteria var2, String var3, SyntaxErrorHandler var4, boolean var5) {
      String[] var13 = c;
      if (var3.equals(var13[5])) {
         return new ExpandVariables.Selector.Selection(var2.getGuids() == null ? "" : var2.getGuids());
      }

      var13 = c;
      if (var3.equals(var13[4])) {
         return new ExpandVariables.Selector.Selection(var2.getMaxMessageSize());
      }

      if (var2.getCriteria() == null) {
         return null;
      }

      var13 = c;
      if (var3.equals(var13[1])) {
         long var16 = var2.getCriteria().fromTime.getTime();
         return new ExpandVariables.Selector.Selection(var16);
      }

      var13 = c;
      if (var3.equals(var13[8])) {
         long var15 = var2.getCriteria().toTime == null ? System.currentTimeMillis() : var2.getCriteria().toTime.getTime();
         return new ExpandVariables.Selector.Selection(var15);
      }

      var13 = c;
      if (var3.equals(var13[2])) {
         int var14 = var2.getCriteria().fromLevel == null ? Level.FINEST.intValue() : var2.getCriteria().fromLevel.intValue();
         int var7 = var2.getCriteria().toLevel == null ? Level.SEVERE.intValue() : var2.getCriteria().toLevel.intValue();
         ArrayList var8 = new ArrayList();
         if (var14 == var7) {
            var8.add(var14);
         } else {
            if (var14 > var7) {
               var13 = c;
               a.warning(var13[0] + var14 + var13[14] + var7);
               return null;
            }

            for (Level var12 : b) {
               if (var12.intValue() >= var14 && var12.intValue() <= var7) {
                  var8.add(var12.intValue());
               }
            }
         }

         return new ExpandVariables.Selector.Selection(var8);
      } else {
         var13 = c;
         if (var3.equals(var13[7])) {
            String var6;
            if (var2.getCriteria().recordClass == null) {
               var6 = "%";
            } else if (var2.getCriteria().recordClass.equals(MessageSummaryAuditRecord.class)) {
               var6 = AuditRecordUtils.TYPE_MESSAGE;
            } else if (var2.getCriteria().recordClass.equals(SystemAuditRecord.class)) {
               var6 = AuditRecordUtils.TYPE_SYSTEM;
            } else if (var2.getCriteria().recordClass.equals(AdminAuditRecord.class)) {
               var6 = AuditRecordUtils.TYPE_ADMIN;
            } else {
               var6 = "%";
            }

            return new ExpandVariables.Selector.Selection(var6);
         } else {
            var13 = c;
            if (var3.equals(var13[11])) {
               return new ExpandVariables.Selector.Selection(var2.getCriteria().nodeId == null ? "%" : var2.getCriteria().nodeId);
            } else {
               var13 = c;
               if (var3.equals(var13[16])) {
                  return new ExpandVariables.Selector.Selection(var2.getCriteria().serviceName == null ? "%" : var2.getCriteria().serviceName);
               } else {
                  var13 = c;
                  if (var3.equals(var13[17])) {
                     return new ExpandVariables.Selector.Selection(var2.getCriteria().userName == null ? "%" : var2.getCriteria().userName);
                  } else {
                     var13 = c;
                     if (var3.equals(var13[15])) {
                        return new ExpandVariables.Selector.Selection(var2.getCriteria().userIdOrDn == null ? "%" : var2.getCriteria().userIdOrDn);
                     } else {
                        var13 = c;
                        if (var3.equals(var13[6])) {
                           return new ExpandVariables.Selector.Selection(var2.getCriteria().entityClassName == null ? "%" : var2.getCriteria().entityClassName);
                        } else {
                           var13 = c;
                           if (var3.equals(var13[3])) {
                              return new ExpandVariables.Selector.Selection(var2.getCriteria().message == null ? "%" : var2.getCriteria().message);
                           } else {
                              var13 = c;
                              if (var3.equals(var13[10])) {
                                 return new ExpandVariables.Selector.Selection(var2.getCriteria().entityId == null ? "%" : var2.getCriteria().entityId);
                              } else {
                                 var13 = c;
                                 if (var3.equals(var13[12])) {
                                    return new ExpandVariables.Selector.Selection(var2.getCriteria().requestId == null ? "%" : var2.getCriteria().requestId);
                                 } else {
                                    var13 = c;
                                    if (var3.equals(var13[13])) {
                                       return new ExpandVariables.Selector.Selection(var2.getCriteria().messageId);
                                    } else {
                                       return var3.equals(c[9])
                                          ? new ExpandVariables.Selector.Selection(var2.getCriteria().operation == null ? "%" : var2.getCriteria().operation)
                                          : null;
                                    }
                                 }
                              }
                           }
                        }
                     }
                  }
               }
            }
         }
      }
   }

   @Override
   public Class<AuditLookupSearchCriteria> getContextObjectClass() {
      return AuditLookupSearchCriteria.class;
   }

   static {
      String[] var5 = new String[18];
      int var3 = 0;
      String var2 = "\u0002GUc,f|\u0001Y\u001a\u0007\t\\TZ\tno\u0006\bPLk\fp\u0007\tPI}\u0001do\u000e\tTBC\u0005py\u0005R_]\tyo\u0004\u0003@Sj\u000f\u0001[Ng\u0014zI\bTI}.bg\u0001\t\u0005@^g\u0014Ws\u0014P\u0007\tTBZ\tno\t\u000bE_|\u0001wc\u000b[\b\u0001[Ng\u0014zC\u0000\u0006\nZ^k)g\t\u0016PK{\u0005p~-Q\t\tPI}\u0001do-Q$D\\I.\u000el~DYUy\u0005q*\r[\u001ax\u0001o\u007f\u0001\u0015Nf\u0001m*\u0010Zvk\u0016ffD\n\u0011F_|)gE\u0016qT";
      int var4 = "\u0002GUc,f|\u0001Y\u001a\u0007\t\\TZ\tno\u0006\bPLk\fp\u0007\tPI}\u0001do\u000e\tTBC\u0005py\u0005R_]\tyo\u0004\u0003@Sj\u000f\u0001[Ng\u0014zI\bTI}.bg\u0001\t\u0005@^g\u0014Ws\u0014P\u0007\tTBZ\tno\t\u000bE_|\u0001wc\u000b[\b\u0001[Ng\u0014zC\u0000\u0006\nZ^k)g\t\u0016PK{\u0005p~-Q\t\tPI}\u0001do-Q$D\\I.\u000el~DYUy\u0005q*\r[\u001ax\u0001o\u007f\u0001\u0015Nf\u0001m*\u0010Zvk\u0016ffD\n\u0011F_|)gE\u0016qT"
         .length();
      char var1 = '\n';
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 5;
         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) {
                     c = var5;
                     a = Logger.getLogger(AuditSearchCriteriaSelector.class.getName());
                     b = new Level[]{Level.FINEST, Level.FINER, Level.FINE, Level.CONFIG, Level.INFO, Level.WARNING, Level.SEVERE};
                     return;
                  }

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

                  var2 = "\u000eIQa\u0010yv3MNr\b\b_Fe7{~\u0018";
                  var4 = "\u000eIQa\u0010yv3MNr\b\b_Fe7{~\u0018".length();
                  var1 = 11;
                  var7 = -1;
            }

            var10000 = 28;
            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] ^ 15);
      }

      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 -> 97;
            case 1 -> 48;
            case 2 -> 63;
            case 3 -> 11;
            case 4 -> 101;
            case 5 -> 6;
            default -> 15;
         });
      }

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