org.eigenbase.sql.type
Class SameOperandTypeChecker

java.lang.Object
  extended by org.eigenbase.sql.type.SameOperandTypeChecker
All Implemented Interfaces:
SqlOperandTypeChecker
Direct Known Subclasses:
ComparableOperandTypeChecker

public class SameOperandTypeChecker
extends Object
implements SqlOperandTypeChecker

Parameter type-checking strategy where all operand types must be the same.

Version:
$Id: //open/dev/farrago/src/org/eigenbase/sql/type/SameOperandTypeChecker.java#13 $
Author:
Wael Chatila

Field Summary
protected  int nOperands
           
 
Constructor Summary
SameOperandTypeChecker(int nOperands)
           
 
Method Summary
 boolean checkOperandTypes(SqlCallBinding callBinding, boolean throwOnFailure)
          Checks the types of all operands to an operator call.
 boolean checkOperandTypes(SqlOperatorBinding operatorBinding)
          Similar functionality to checkOperandTypes(SqlCallBinding, boolean), but not part of the interface, and cannot throw an error.
private  boolean checkOperandTypesImpl(SqlOperatorBinding operatorBinding, boolean throwOnFailure, SqlCallBinding callBinding)
           
 String getAllowedSignatures(SqlOperator op, String opName)
          Returns a string describing the allowed formal signatures of a call, e.g.
 SqlOperandCountRange getOperandCountRange()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

nOperands

protected final int nOperands
Constructor Detail

SameOperandTypeChecker

public SameOperandTypeChecker(int nOperands)
Method Detail

checkOperandTypes

public boolean checkOperandTypes(SqlCallBinding callBinding,
                                 boolean throwOnFailure)
Description copied from interface: SqlOperandTypeChecker
Checks the types of all operands to an operator call.

Specified by:
checkOperandTypes in interface SqlOperandTypeChecker
Parameters:
callBinding - description of the call to be checked
throwOnFailure - whether to throw an exception if check fails (otherwise returns false in that case)
Returns:
whether check succeeded

checkOperandTypesImpl

private boolean checkOperandTypesImpl(SqlOperatorBinding operatorBinding,
                                      boolean throwOnFailure,
                                      SqlCallBinding callBinding)

checkOperandTypes

public boolean checkOperandTypes(SqlOperatorBinding operatorBinding)
Similar functionality to checkOperandTypes(SqlCallBinding, boolean), but not part of the interface, and cannot throw an error.


getOperandCountRange

public SqlOperandCountRange getOperandCountRange()
Specified by:
getOperandCountRange in interface SqlOperandTypeChecker
Returns:
range of operand counts allowed in a call

getAllowedSignatures

public String getAllowedSignatures(SqlOperator op,
                                   String opName)
Description copied from interface: SqlOperandTypeChecker
Returns a string describing the allowed formal signatures of a call, e.g. "SUBSTR(VARCHAR, INTEGER, INTEGER)".

Specified by:
getAllowedSignatures in interface SqlOperandTypeChecker
Parameters:
op - the operator being checked
opName - name to use for the operator in case of aliasing
Returns:
generated string