package com.l7tech.server.util;

import com.l7tech.gateway.common.audit.Audit;
import com.l7tech.policy.variable.Syntax;
import com.l7tech.server.policy.variable.ExpandVariables;
import com.l7tech.util.Functions.UnaryThrows;
import com.l7tech.util.Functions.UnaryVoid;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;

class d implements UnaryThrows<Iterable<String>, String, RuntimeException> {
   final Map val$serverVariables;
   final Audit val$auditor;
   final Pattern val$splitPattern;
   final UnaryVoid val$callback;

   d(Map var1, Audit var2, Pattern var3, UnaryVoid var4) {
      this.val$serverVariables = var1;
      this.val$auditor = var2;
      this.val$splitPattern = var3;
      this.val$callback = var4;
   }

   public Iterable<String> call(String var1) throws RuntimeException {
      List var10000;
      label16: {
         try {
            if (!Syntax.validateStringOnlyReferencesVariables(var1)) {
               var10000 = new ArrayList<>(Arrays.asList(ExpandVariables.process(var1, this.val$serverVariables, this.val$auditor)));
               break label16;
            }
         } catch (RuntimeException var3) {
            throw a(var3);
         }

         var10000 = ExpandVariables.processNoFormat(var1, this.val$serverVariables, this.val$auditor);
      }

      List var2 = var10000;
      return ContextVariableUtils.getStringsFromList(var2, this.val$splitPattern, this.val$callback);
   }

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