Class InFixToPostFix

java.lang.Object
org.apache.log4j.rule.InFixToPostFix

public class InFixToPostFix extends Object
A helper class which converts infix expressions to postfix expressions Currently grouping is supported, as well as all of the Rules supported by RuleFactory Supports grouping via parens, mult-word operands using single or double quotes, and these operators: ! NOT operator != NOT EQUALS operator == EQUALS operator ~= CASE-INSENSITIVE equals operator || OR operator invalid input: '&'invalid input: '&' AND operator like REGEXP operator exists NOT NULL operator invalid input: '&lt' LESS THAN operator invalid input: '&gt' GREATER THAN operator invalid input: '&lt'= LESS THAN EQUALS operator invalid input: '&gt'= GREATER THAN EQUALS operator
  • Field Details

    • precedenceMap

      private static final Map precedenceMap
      Precedence map.
    • operators

      private static final List operators
      Operators.
  • Constructor Details

    • InFixToPostFix

      public InFixToPostFix()
  • Method Details

    • convert

      public String convert(String expression)
      Convert in-fix expression to post-fix.
      Parameters:
      expression - in-fix expression.
      Returns:
      post-fix expression.
    • isOperand

      public static boolean isOperand(String s)
      Evaluates whether symbol is operand.
      Parameters:
      s - symbol.
      Returns:
      true if operand.
    • precedes

      boolean precedes(String s1, String s2)
      Determines whether one symbol precedes another.
      Parameters:
      s1 - symbol 1
      s2 - symbol 2
      Returns:
      true if symbol 1 precedes symbol 2
    • infixToPostFix

      String infixToPostFix(InFixToPostFix.CustomTokenizer tokenizer)
      convert in-fix expression to post-fix.
      Parameters:
      tokenizer - tokenizer.
      Returns:
      post-fix expression.