org.eigenbase.oj.rex
Interface OJRexImplementor

All Known Implementing Classes:
FarragoOJRexBinaryExpressionImplementor, FarragoOJRexBuiltinImplementor, FarragoOJRexCaseImplementor, FarragoOJRexCastImplementor, FarragoOJRexColumnListImplementor, FarragoOJRexContextVariableImplementor, FarragoOJRexImplementor, FarragoOJRexNextValueImplementor, FarragoOJRexNullTestImplementor, FarragoOJRexReinterpretImplementor, FarragoOJRexRowImplementor, FarragoOJRexSimilarLikeImplementor, FarragoOJRexStaticMethodImplementor, FarragoOJRexTruthTestImplementor, FarragoOJRexUnaryExpressionImplementor, FarragoUserDefinedRoutine, OJRexBinaryExpressionImplementor, OJRexCastImplementor, OJRexIgnoredCallImplementor, OJRexUnaryExpressionImplementor

public interface OJRexImplementor

OJRexImplementor translates a call to a particular operator to OpenJava code.

Implementors are held in a OJRexImplementorTable.

Version:
$Id: //open/dev/farrago/src/org/eigenbase/oj/rex/OJRexImplementor.java#9 $
Author:
John V. Sichi

Method Summary
 boolean canImplement(RexCall call)
          Tests whether it is possible to implement a call.
 Expression implement(RexToOJTranslator translator, RexCall call, Expression[] operands)
          Implements a single RexCall.
 

Method Detail

implement

Expression implement(RexToOJTranslator translator,
                     RexCall call,
                     Expression[] operands)
Implements a single RexCall.

Parameters:
translator - provides translation context
call - the call to be translated
operands - call's operands, which have already been translated independently

canImplement

boolean canImplement(RexCall call)
Tests whether it is possible to implement a call.

Parameters:
call - the call for which translation is being considered
Returns:
whether the call can be implemented