@Override
  public String toString() {
    if (displayName != null) {
      return MoreObjects.toStringHelper(this).addValue(displayName).toString();
    }
    MoreObjects.ToStringHelper helper =
        MoreObjects.toStringHelper(this)
            .add("pathType", pathType)
            .add("roots", roots)
            .add("supportedFeatures", supportedFeatures)
            .add("workingDirectory", workingDirectory);
    if (!nameDisplayNormalization.isEmpty()) {
      helper.add("nameDisplayNormalization", nameDisplayNormalization);
    }
    if (!nameCanonicalNormalization.isEmpty()) {
      helper.add("nameCanonicalNormalization", nameCanonicalNormalization);
    }
    helper
        .add("pathEqualityUsesCanonicalForm", pathEqualityUsesCanonicalForm)
        .add("blockSize", blockSize)
        .add("maxSize", maxSize);
    if (maxCacheSize != Builder.DEFAULT_MAX_CACHE_SIZE) {
      helper.add("maxCacheSize", maxCacheSize);
    }
    if (!attributeViews.isEmpty()) {
      helper.add("attributeViews", attributeViews);
    }
    if (!attributeProviders.isEmpty()) {
      helper.add("attributeProviders", attributeProviders);
    }
    if (!defaultAttributeValues.isEmpty()) {
      helper.add("defaultAttributeValues", defaultAttributeValues);
    }
    helper.add("fileTimeSource", fileTimeSource);
    if (watchServiceConfig != WatchServiceConfiguration.DEFAULT) {
      helper.add("watchServiceConfig", watchServiceConfig);
    }
    return helper.toString();
  }
Creates an immutable configuration object from the given builder.
jimfs/src/main/java/com/google/common/jimfs/Configuration.java