code: @Nullable
    public final String getQualifiedName() {
      switch (token) {
        case NAME:
          String name = getString();
          return name.isEmpty() ? null : name;
        case GETPROP:
          StringBuilder builder = getQualifiedNameForGetProp(0);
          return builder != null ? builder.toString() : null;
        case THIS:
          return "this";
        case SUPER:
          return "super";
        default:
          return null;
      }
    }
docs: This function takes a set of GETPROP nodes and produces a string that is each property
  separated by dots. If the node ultimately under the left sub-tree is not a simple name, this is
  not a valid qualified name.
  
  @return a null if this is not a qualified name, or a dot-separated string of the name and
  properties.