1 16 17 package org.apache.taglibs.standard.lang.jstl; 18 19 import java.util.List ; 20 import java.util.Map ; 21 22 31 32 public class UnaryOperatorExpression 33 extends Expression 34 { 35 40 UnaryOperator mOperator; 41 public UnaryOperator getOperator () 42 { return mOperator; } 43 public void setOperator (UnaryOperator pOperator) 44 { mOperator = pOperator; } 45 46 49 List mOperators; 50 public List getOperators () 51 { return mOperators; } 52 public void setOperators (List pOperators) 53 { mOperators = pOperators; } 54 55 58 Expression mExpression; 59 public Expression getExpression () 60 { return mExpression; } 61 public void setExpression (Expression pExpression) 62 { mExpression = pExpression; } 63 64 69 public UnaryOperatorExpression (UnaryOperator pOperator, 70 List pOperators, 71 Expression pExpression) 72 { 73 mOperator = pOperator; 74 mOperators = pOperators; 75 mExpression = pExpression; 76 } 77 78 85 public String getExpressionString () 86 { 87 StringBuffer buf = new StringBuffer (); 88 buf.append ("("); 89 if (mOperator != null) { 90 buf.append (mOperator.getOperatorSymbol ()); 91 buf.append (" "); 92 } 93 else { 94 for (int i = 0; i < mOperators.size (); i++) { 95 UnaryOperator operator = (UnaryOperator) mOperators.get (i); 96 buf.append (operator.getOperatorSymbol ()); 97 buf.append (" "); 98 } 99 } 100 buf.append (mExpression.getExpressionString ()); 101 buf.append (")"); 102 return buf.toString (); 103 } 104 105 110 public Object evaluate (Object pContext, 111 VariableResolver pResolver, 112 Map functions, 113 String defaultPrefix, 114 Logger pLogger) 115 throws ELException 116 { 117 Object value = mExpression.evaluate (pContext, pResolver, functions, 118 defaultPrefix, pLogger); 119 if (mOperator != null) { 120 value = mOperator.apply (value, pContext, pLogger); 121 } 122 else { 123 for (int i = mOperators.size () - 1; i >= 0; i--) { 124 UnaryOperator operator = (UnaryOperator) mOperators.get (i); 125 value = operator.apply (value, pContext, pLogger); 126 } 127 } 128 return value; 129 } 130 131 } 133 | Popular Tags |