com.saxonica.bytecode
Class CastableToUnionCompiler

java.lang.Object
  extended by com.saxonica.bytecode.ExpressionCompiler
      extended by com.saxonica.bytecode.ToBooleanCompiler
          extended by com.saxonica.bytecode.CastableToUnionCompiler

public class CastableToUnionCompiler
extends ToBooleanCompiler

Generate bytecode for evaluation of a CastableToUnion


Constructor Summary
CastableToUnionCompiler()
           
 
Method Summary
 void compileToBoolean(CompilerService compiler, Expression expression)
          Generate bytecode to evaluate the expression as a boolean Precondition: none.
 void generateMethod(CompilerService compiler, Expression expression, org.objectweb.asm.ClassVisitor cv)
          This method generates the method effectiveBooleanValue, returning a boolean.
 
Methods inherited from class com.saxonica.bytecode.ToBooleanCompiler
compileToItem, compileToIterator, compileToPush
 
Methods inherited from class com.saxonica.bytecode.ExpressionCompiler
allocateStatic, compileItemFromInt, compileItemFromString, compileToLoop, compileToPrimitive, getConfiguration, handleEmptyStringResult, setConfiguration, throwXPathException, throwXPathException, unboxItem, verify, visitAnnotation, visitLineNumber
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CastableToUnionCompiler

public CastableToUnionCompiler()
Method Detail

compileToBoolean

public void compileToBoolean(CompilerService compiler,
                             Expression expression)
                      throws CannotCompileException
Description copied from class: ExpressionCompiler
Generate bytecode to evaluate the expression as a boolean Precondition: none. Postcondition: at execution time, the stack contains an integer (0=false, 1=true) representing the result of the expression

Specified by:
compileToBoolean in class ExpressionCompiler
Parameters:
compiler - the compiler service
expression - the expression to be compiled
Throws:
CannotCompileException

generateMethod

public void generateMethod(CompilerService compiler,
                           Expression expression,
                           org.objectweb.asm.ClassVisitor cv)
This method generates the method effectiveBooleanValue, returning a boolean. The reason for doing this is the try-catch block clears the stack when we want to recover from an exception

Overrides:
generateMethod in class ExpressionCompiler


Copyright (c) 2004-2011 Saxonica Limited. All rights reserved.