Class OnEmpty

  • Direct Known Subclasses:
    OnEmpty.ReturnEmptyString, OnEmpty.ReturnNull, OnEmpty.UnwindAndJump

    public abstract class OnEmpty
    extends java.lang.Object
    The OnEmpty class represents an action to be taken by the bytecode generator when compiling an expression to return a "primitive" (unboxed) value such as a double float int long or String (treated as primitive for this purpose). There are a number of defined subclasses and these are known to users of the class; it is not possible to introduce new subclasses without careful examination of existing code.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  OnEmpty.ReturnEmptyString
      The ReturnNull subclass indicates that when an expression evaluates to the empty sequence, the value should be returned as a zero-length string.
      static class  OnEmpty.ReturnNull
      The ReturnNull subclass indicates that when an expression evaluates to the empty sequence, the value should be returned as a Java null.
      static class  OnEmpty.UnwindAndJump
      The UnwindAndJump subclass causes the code generator, when an expression evaluates to the empty sequence, to generate a "goto" instruction to a defined label; but before executing the jump, the stack will be unwound to a known position.
    • Constructor Summary

      Constructors 
      Constructor Description
      OnEmpty()  
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      abstract void generate​(Generator ga)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • RETURN_EMPTY_STRING

        public static final OnEmpty RETURN_EMPTY_STRING
      • RETURN_NULL

        public static final OnEmpty RETURN_NULL
    • Constructor Detail

      • OnEmpty

        public OnEmpty()
    • Method Detail

      • generate

        public abstract void generate​(Generator ga)