package com.breeze.query; import java.util.HashMap; import java.util.List; import com.breeze.util.StringFns; public class Operator { public static final HashMap<String, Operator>_opMap = new HashMap<String, Operator>(); public static Operator Any = new Operator("any,some", OperatorType.AnyAll); public static Operator All = new Operator("all,every", OperatorType.AnyAll); public static Operator And = new Operator("and,&&", OperatorType.AndOr); public static Operator Or = new Operator("or,||", OperatorType.AndOr); public static Operator Not = new Operator("not,!", OperatorType.Unary); public static BinaryOperator Equals = new BinaryOperator("eq,=="); public static BinaryOperator NotEquals = new BinaryOperator("ne,!="); public static BinaryOperator LessThan = new BinaryOperator("lt,<"); public static BinaryOperator LessThanOrEqual = new BinaryOperator("le,<="); public static BinaryOperator GreaterThan = new BinaryOperator("gt,>"); public static BinaryOperator GreaterThanOrEqual = new BinaryOperator("ge,>="); public static BinaryOperator StartsWith = new BinaryOperator("startswith"); public static BinaryOperator EndsWith = new BinaryOperator("endswith"); public static BinaryOperator Contains = new BinaryOperator("contains"); public static BinaryOperator In = new BinaryOperator("in"); public List<String> _aliases; public String _name; public OperatorType _type; public static Operator fromString(String op) { return _opMap.get(op.toLowerCase()); } public Operator(String aliases, OperatorType type) { _aliases = StringFns.ToList(aliases); _name = _aliases.get(0); _type = type; AddOperator(this); } public OperatorType getType() { return _type; } public String getName() { return _name; } private static void AddOperator(Operator op) { for (String opName: op._aliases) { _opMap.put(opName.toLowerCase(), op); } } }