1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 package org.apache.commons.el; 18 19 import javax.servlet.jsp.el.ELException; 20 21 /** 22 * 23 * <p>This is the superclass for all binary operators 24 * 25 * @author Nathan Abramson - Art Technology Group 26 * @version $Change: 181177 $$DateTime: 2001/06/26 08:45:09 $$Author: bayard $ 27 **/ 28 29 public abstract class BinaryOperator 30 { 31 //------------------------------------- 32 /** 33 * 34 * Constructor 35 **/ 36 public BinaryOperator () 37 { 38 } 39 40 //------------------------------------- 41 // Expression methods 42 //------------------------------------- 43 /** 44 * 45 * Returns the symbol representing the operator 46 **/ 47 public abstract String getOperatorSymbol (); 48 49 //------------------------------------- 50 /** 51 * 52 * Applies the operator to the given pair of values 53 **/ 54 public abstract Object apply (Object pLeft, 55 Object pRight) 56 throws ELException; 57 58 //------------------------------------- 59 /** 60 * 61 * Returns true if evaluation is necessary given the specified Left 62 * value. The And/OrOperators make use of this 63 **/ 64 public boolean shouldEvaluate (Object pLeft) 65 { 66 return true; 67 } 68 69 //------------------------------------- 70 /** 71 * 72 * Returns true if the operator expects its arguments to be coerced 73 * to Booleans. The And/Or operators set this to true. 74 **/ 75 public boolean shouldCoerceToBoolean () 76 { 77 return false; 78 } 79 80 //------------------------------------- 81 }