if (apply) {
  void doApply(Stylesheet stylesheet, QName mode,             Node context, int pos, int len,             Node parent, Node nextSibling)    throws TransformerException  {    boolean apply = global || !stylesheet.bindings.containsKey(name, global);    if (apply)      {        // push the variable context        stylesheet.bindings.push(global);        // set the variable        Object value = getValue(stylesheet, mode, context, pos, len);        if (value != null)          {            stylesheet.bindings.set(name, value, global);          }      }    // variable and param don't process children as such    // all subsequent instructions are processed with that variable context    if (next != null)      {        next.apply(stylesheet, mode,                   context, pos, len,                   parent, nextSibling);      }    if (apply)      {        // pop the variable context        stylesheet.bindings.pop(global);      }  }