public interface ResourceId
extends java.io.Serializable
ResourceId is hierarchical and composed of a sequence of directory and file name
 elements separated by a special separator or delimiter.
 
ResourceIds are created using FileSystems. The two primary
 mechanisms are:
 
FileSystems.match(java.util.List), which takes a list of String resource
       names or globs, queries the FileSystem for resources matching these specifications,
       and returns a MatchResult for each glob. This is typically used when reading from
       files.
   FileSystems.matchNewResource(String, boolean), which takes a String full
       resource name and type (file or directory) and generates a FileSystem-specific
       ResourceId for that resource. This call does not verify the presence or absence of
       that resource in the file system. This call is typically used when creating new directories
       or files to generate ResourceIds for resources that may not yet exist.
 | Modifier and Type | Method and Description | 
|---|---|
| ResourceId | getCurrentDirectory()Returns the  ResourceIdthat represents the current directory of thisResourceId. | 
| @Nullable java.lang.String | getFilename()Returns the name of the file or directory denoted by this  ResourceId. | 
| java.lang.String | getScheme()Get the scheme which defines the namespace of the  ResourceId. | 
| boolean | isDirectory()Returns  trueif thisResourceIdrepresents a directory, false otherwise. | 
| ResourceId | resolve(java.lang.String other,
       ResolveOptions resolveOptions)Returns a child  ResourceIdunderthis. | 
| java.lang.String | toString()Returns the string representation of this  ResourceId. | 
ResourceId resolve(java.lang.String other, ResolveOptions resolveOptions)
ResourceId under this.
 In order to write file system agnostic code, callers should not include delimiters in other, and should use ResolveOptions.StandardResolveOptions to specify whether to resolve a file or a
 directory.
 
For example:
 ResourceId homeDir = ...;
 ResourceId tempOutput = homeDir
     .resolve("tempDir", StandardResolveOptions.RESOLVE_DIRECTORY)
     .resolve("output", StandardResolveOptions.RESOLVE_FILE);
 This ResourceId should represents a directory.
 
It is up to each file system to resolve in their own way.
Resolving special characters:
resourceId.resolve("..", StandardResolveOptions.RESOLVE_DIRECTORY) returns the
       parent directory of this ResourceId.
   resourceId.resolve("*", StandardResolveOptions.RESOLVE_FILE) returns a ResourceId which matches all files in this ResourceId.
   resourceId.resolve("*", StandardResolveOptions.RESOLVE_DIRECTORY) returns a
       ResourceId which matches all directories in this ResourceId.
 java.lang.IllegalStateException - if this ResourceId is not a directory.java.lang.IllegalArgumentException - if other contains illegal characters or is an illegal
     name. It is recommended that callers use common characters, such as [_a-zA-Z0-9.-],
     in other.ResourceId getCurrentDirectory()
ResourceId that represents the current directory of this ResourceId.
 If it is already a directory, trivially returns this.
java.lang.String getScheme()
ResourceId.
 The scheme is required to follow URI scheme syntax. See RFC 2396
@Nullable java.lang.String getFilename()
ResourceId. The file name is
 the farthest element from the root in the directory hierarchy.boolean isDirectory()
true if this ResourceId represents a directory, false otherwise.java.lang.String toString()
ResourceId.
 The corresponding FileSystem.match(java.util.List<java.lang.String>) is required to accept this string representation.
toString in class java.lang.Object