Global and local variable environment. The April XSLT draft introduces global and local variables. The Env class contains those bindings.
Because this class exists only to support XSL, it makes a number of assumptions that would be invalid for a typical API. Specifically, the variable names must be interned strings, i.e. variable matching uses '==', not equals.
Local variables are handled like a stack. They are pushed and popped as necessary. The top variables shadow bottom variables.
In other words, although the API somewhat resembles a HashMap, it can't be used as a generic hash map.