class UnixPathType extends PathType {

  /** Unix path type. */
  static final PathType INSTANCE = new UnixPathType();

  private UnixPathType() {
    super(false, '/');
  }

  @Override
  public ParseResult parsePath(String path) {
    if (path.isEmpty()) {
      return emptyPath();
    }

    checkValid(path);

    String root = path.startsWith("/") ? "/" : null;
    return new ParseResult(root, splitter().split(path));
  }

  private static void checkValid(String path) {<FILL_FUNCTION_BODY>}

  @Override
  public String toString(@Nullable String root, Iterable<String> names) {
    StringBuilder builder = new StringBuilder();
    if (root != null) {
      builder.append(root);
    }
    joiner().appendTo(builder, names);
    return builder.toString();
  }

  @Override
  public String toUriPath(String root, Iterable<String> names, boolean directory) {
    StringBuilder builder = new StringBuilder();
    for (String name : names) {
      builder.append('/').append(name);
    }

    if (directory || builder.length() == 0) {
      builder.append('/');
    }
    return builder.toString();
  }

  @Override
  public ParseResult parseUriPath(String uriPath) {
    checkArgument(uriPath.startsWith("/"), "uriPath (%s) must start with /", uriPath);
    return parsePath(uriPath);
  }
}

    int nulIndex = path.indexOf('\0');
    if (nulIndex != -1) {
      throw new InvalidPathException(path, "nul character not allowed", nulIndex);
    }
  
<methods>public final boolean allowsMultipleRoots() ,public final com.google.common.jimfs.PathType.ParseResult fromUri(java.net.URI) ,public final java.lang.String getOtherSeparators() ,public final java.lang.String getSeparator() ,public final Joiner joiner() ,public abstract com.google.common.jimfs.PathType.ParseResult parsePath(java.lang.String) ,public final Splitter splitter() ,public java.lang.String toString() ,public abstract java.lang.String toString(java.lang.String, Iterable<java.lang.String>) ,public final java.net.URI toUri(java.net.URI, java.lang.String, Iterable<java.lang.String>, boolean) ,public static com.google.common.jimfs.PathType unix() ,public static com.google.common.jimfs.PathType windows() <variables>private final non-sealed boolean allowsMultipleRoots,private final non-sealed Joiner joiner,private final non-sealed java.lang.String otherSeparators,private static final char[] regexReservedChars,private final non-sealed java.lang.String separator,private final non-sealed Splitter splitter