1 16 17 package org.apache.taglibs.standard.lang.jstl; 18 19 26 27 public class IntegerDivideOperator 28 extends BinaryOperator 29 { 30 34 public static final IntegerDivideOperator SINGLETON = 35 new IntegerDivideOperator (); 36 37 42 public IntegerDivideOperator () 43 { 44 } 45 46 53 public String getOperatorSymbol () 54 { 55 return "idiv"; 56 } 57 58 63 public Object apply (Object pLeft, 64 Object pRight, 65 Object pContext, 66 Logger pLogger) 67 throws ELException 68 { 69 if (pLeft == null && 70 pRight == null) { 71 if (pLogger.isLoggingWarning ()) { 72 pLogger.logWarning 73 (Constants.ARITH_OP_NULL, 74 getOperatorSymbol ()); 75 } 76 return PrimitiveObjects.getInteger (0); 77 } 78 79 long left = 80 Coercions.coerceToPrimitiveNumber (pLeft, Long .class, pLogger). 81 longValue (); 82 long right = 83 Coercions.coerceToPrimitiveNumber (pRight, Long .class, pLogger). 84 longValue (); 85 86 try { 87 return PrimitiveObjects.getLong (left / right); 88 } 89 catch (Exception exc) { 90 if (pLogger.isLoggingError ()) { 91 pLogger.logError 92 (Constants.ARITH_ERROR, 93 getOperatorSymbol (), 94 "" + left, 95 "" + right); 96 } 97 return PrimitiveObjects.getInteger (0); 98 } 99 } 100 101 } 103 | Popular Tags |