net.sf.farrago.fennel.calc
Class CalcRexImplementorTableImpl.AddCharSetNameInstrImplementor

java.lang.Object
  extended by net.sf.farrago.fennel.calc.CalcRexImplementorTableImpl.AbstractCalcRexImplementor
      extended by net.sf.farrago.fennel.calc.CalcRexImplementorTableImpl.InstrDefImplementor
          extended by net.sf.farrago.fennel.calc.CalcRexImplementorTableImpl.AddCharSetNameInstrImplementor
All Implemented Interfaces:
CalcRexImplementor
Enclosing class:
CalcRexImplementorTableImpl

private static class CalcRexImplementorTableImpl.AddCharSetNameInstrImplementor
extends CalcRexImplementorTableImpl.InstrDefImplementor

A Class that gets a specified operand of a call and retrieves its charset name and add it as a vc literal to the program. This of course assumes the operand is a chartype. If this is not the case an assert is fired.


Field Summary
(package private)  int operand
           
 
Fields inherited from class net.sf.farrago.fennel.calc.CalcRexImplementorTableImpl.InstrDefImplementor
instr
 
Constructor Summary
CalcRexImplementorTableImpl.AddCharSetNameInstrImplementor(String extCall, int regCount, int operand)
           
 
Method Summary
protected  List<CalcReg> makeRegList(RexToCalcTranslator translator, RexCall call)
          Creates the list of registers which will be arguments to the instruction call.
 
Methods inherited from class net.sf.farrago.fennel.calc.CalcRexImplementorTableImpl.InstrDefImplementor
implement
 
Methods inherited from class net.sf.farrago.fennel.calc.CalcRexImplementorTableImpl.AbstractCalcRexImplementor
canImplement
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

operand

int operand
Constructor Detail

CalcRexImplementorTableImpl.AddCharSetNameInstrImplementor

CalcRexImplementorTableImpl.AddCharSetNameInstrImplementor(String extCall,
                                                           int regCount,
                                                           int operand)
Method Detail

makeRegList

protected List<CalcReg> makeRegList(RexToCalcTranslator translator,
                                    RexCall call)
Description copied from class: CalcRexImplementorTableImpl.InstrDefImplementor
Creates the list of registers which will be arguments to the instruction call. i.e implment all the operands of the call and create a result register for the call.

The 0th argument is assumed to hold the result of the call.

Overrides:
makeRegList in class CalcRexImplementorTableImpl.InstrDefImplementor
"Precondition:"
SqlTypeUtil.inCharFamily(call.operands[operand].getType())