code: public Map getAsMap() {
          if (mMap != null) {
              return mMap;
          } else {
              Map m = convertToMap();
              if (!isMutable()) {
                  mMap = m;
              }
              return m;
          }
      }
docs: Converts the MapSource to a Map.  If the map is not mutable, this
  is cached