package com.l7tech.gateway.common;

import com.l7tech.gateway.common.audit.Audit;
import com.l7tech.gateway.common.audit.CommonMessages;
import com.l7tech.policy.variable.Syntax.SyntaxErrorHandler;
import com.l7tech.util.ExceptionUtils;
import java.text.MessageFormat;

public class DefaultSyntaxErrorHandler implements SyntaxErrorHandler {
   private final Audit a;

   public DefaultSyntaxErrorHandler(Audit var1) {
      this.a = var1;
   }

   public String handleSuspiciousToString(String var1, String var2) {
      this.a.logAndAudit(CommonMessages.TEMPLATE_SUSPICIOUS_TOSTRING, var1, var2);
      return MessageFormat.format(CommonMessages.TEMPLATE_SUSPICIOUS_TOSTRING.getMessage(), var1, var2);
   }

   public String handleSubscriptOutOfRange(int var1, String var2, int var3) {
      this.a.logAndAudit(CommonMessages.TEMPLATE_SUBSCRIPT_OUTOFRANGE, Integer.toString(var1), var2, Integer.toString(var3));
      return MessageFormat.format(CommonMessages.TEMPLATE_SUBSCRIPT_OUTOFRANGE.getMessage(), Integer.toString(var1), var2, Integer.toString(var3));
   }

   public String handleBadVariable(String var1) {
      this.a.logAndAudit(CommonMessages.TEMPLATE_UNSUPPORTED_VARIABLE, var1);
      return MessageFormat.format(CommonMessages.TEMPLATE_UNSUPPORTED_VARIABLE.getMessage(), var1);
   }

   public String handleBadVariable(String var1, Throwable var2) {
      this.a.logAndAudit(CommonMessages.TEMPLATE_UNSUPPORTED_VARIABLE_WITH_EXCEPTION, new String[]{var1, ExceptionUtils.getMessage(var2)}, var2);
      return MessageFormat.format(CommonMessages.TEMPLATE_UNSUPPORTED_VARIABLE.getMessage(), var1, ExceptionUtils.getMessage(var2));
   }
}
