001 package railo.runtime.sql.exp.op; 002 003 import railo.runtime.sql.exp.Expression; 004 import railo.runtime.sql.exp.ExpressionSupport; 005 006 public class Operation2 extends ExpressionSupport implements Operation { 007 008 private Expression left; 009 private Expression right; 010 private int operator; 011 012 013 public Operation2(Expression left, Expression right,int operator) { 014 this.left=left; 015 this.right=right; 016 this.operator=operator; 017 } 018 019 020 public static String toString(int operator) { 021 switch(operator) { 022 case Operation.OPERATION2_DIVIDE: return "/"; 023 case Operation.OPERATION2_MINUS: return "-"; 024 case Operation.OPERATION2_MULTIPLY: return "*"; 025 case Operation.OPERATION2_PLUS: return "+"; 026 case Operation.OPERATION2_EXP: return "^"; 027 case Operation.OPERATION2_MOD: return "%"; 028 029 case Operation.OPERATION2_AND: return "and"; 030 case Operation.OPERATION2_OR: return "or"; 031 case Operation.OPERATION2_XOR: return "xor"; 032 033 case Operation.OPERATION2_EQ: return "="; 034 case Operation.OPERATION2_GT: return ">"; 035 case Operation.OPERATION2_GTE: return "=>"; 036 case Operation.OPERATION2_LT: return "<"; 037 case Operation.OPERATION2_LTE: return "<="; 038 case Operation.OPERATION2_LTGT: return "<>"; 039 case Operation.OPERATION2_NEQ: return "!="; 040 case Operation.OPERATION2_NOT_LIKE: return "not like"; 041 case Operation.OPERATION2_LIKE: return "like"; 042 043 case Operation.OPERATION1_PLUS: return "+"; 044 case Operation.OPERATION1_MINUS: return "-"; 045 case Operation.OPERATION1_NOT: return "not"; 046 case Operation.OPERATION1_IS_NOT_NULL: return "is not null"; 047 case Operation.OPERATION1_IS_NULL: return "is null"; 048 } 049 return null; 050 } 051 052 053 public String toString(boolean noAlias) { 054 if(noAlias || getIndex()==0)return left.toString(true)+" "+toString(operator)+" "+right.toString(true); 055 return toString(true)+" as "+getAlias(); 056 } 057 058 059 /** 060 * @return the left 061 */ 062 public Expression getLeft() { 063 return left; 064 } 065 066 067 /** 068 * @return the operator 069 */ 070 public int getOperator() { 071 return operator; 072 } 073 074 075 /** 076 * @return the right 077 */ 078 public Expression getRight() { 079 return right; 080 } 081 082 }