net.sf.farrago.ojrex
Class FarragoOJRexImplementor

java.lang.Object
  extended by net.sf.farrago.ojrex.FarragoOJRexImplementor
All Implemented Interfaces:
OJRexImplementor
Direct Known Subclasses:
FarragoOJRexBinaryExpressionImplementor, FarragoOJRexBuiltinImplementor, FarragoOJRexCaseImplementor, FarragoOJRexCastImplementor, FarragoOJRexColumnListImplementor, FarragoOJRexNextValueImplementor, FarragoOJRexNullTestImplementor, FarragoOJRexReinterpretImplementor, FarragoOJRexRowImplementor, FarragoOJRexSimilarLikeImplementor, FarragoOJRexStaticMethodImplementor, FarragoOJRexTruthTestImplementor, FarragoOJRexUnaryExpressionImplementor

public abstract class FarragoOJRexImplementor
extends Object
implements OJRexImplementor

FarragoOJRexImplementor refines OJRexImplementor to provide Farrago-specific context.

Version:
$Id: //open/dev/farrago/src/net/sf/farrago/ojrex/FarragoOJRexImplementor.java#12 $
Author:
John V. Sichi

Constructor Summary
FarragoOJRexImplementor()
           
 
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.
abstract  Expression implementFarrago(FarragoRexToOJTranslator translator, RexCall call, Expression[] operands)
          Refined version of OJRexImplementor.implement(org.eigenbase.oj.rex.RexToOJTranslator, org.eigenbase.rex.RexCall, openjava.ptree.Expression[]).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FarragoOJRexImplementor

public FarragoOJRexImplementor()
Method Detail

implement

public Expression implement(RexToOJTranslator translator,
                            RexCall call,
                            Expression[] operands)
Description copied from interface: OJRexImplementor
Implements a single RexCall.

Specified by:
implement in interface OJRexImplementor
Parameters:
translator - provides translation context
call - the call to be translated
operands - call's operands, which have already been translated independently

implementFarrago

public abstract Expression implementFarrago(FarragoRexToOJTranslator translator,
                                            RexCall call,
                                            Expression[] operands)
Refined version of OJRexImplementor.implement(org.eigenbase.oj.rex.RexToOJTranslator, org.eigenbase.rex.RexCall, openjava.ptree.Expression[]).

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

canImplement

public boolean canImplement(RexCall call)
Description copied from interface: OJRexImplementor
Tests whether it is possible to implement a call.

Specified by:
canImplement in interface OJRexImplementor
Parameters:
call - the call for which translation is being considered
Returns:
whether the call can be implemented