How do I fork three different cases depending on all the three states that Boolean property may have? Java code for this looks simple:

```
public class Foo {
  public Boolean getBool() { return null /* this would be dynamic in RL */; }
}

//  somewhere in the servlet code:
    if (foo.getBool() == null) {
      resp.getWriter().print("not yet set");
    } else if (foo.getBool()) {
      resp.getWriter().print("set to TRUE");
    } else {
      resp.getWriter().print("set to FALSE");
    }

```

Velocity seems to epically fail here, as the spec has no null literal and boolean/not-null equality checks are somewhat fungible for the sake of simplicity. Of course, there're two solutions to avoid this dilemma (see below), but is there some straightforward/cleaner way?

1. just add an extra getter to the Foo class, like so:

boolean isBoolSet() {return getBool() != null; }

and the VTL code would then be:

```
#if(!$foo.boolSet)
  not yet set  
#else
  #if($foo.bool)
    set to TRUE
  #else
    set to FALSE  
  #end
#end

```

1. fetch some null value, like so, 

Object getTheNull() {return null; }

and the VTL then would look like:

```
#if($foo.bool == $foo.theNull)
  not yet set  
#else
  #if($foo.bool)
    set to TRUE
  #else
    set to FALSE  
  #end
#end

```