class CachedDirectoryImpl[T <: AnyRef] extends CachedDirectory[T]
Provides a mutable in-memory cache of files and subdirectories with basic CRUD functionality. The CachedDirectory can be fully recursive as the subdirectories are themselves stored as recursive (when the CachedDirectory is initialized without the recursive toggle, the subdirectories are stored as Entry instances. The primary use case is the implementation of FileTreeRepository and NioPathWatcher. Directly handling CachedDirectory instances is discouraged because it is inherently mutable so it's better to let the FileTreeRepository manage it and query the cache rather than CachedDirectory directly.
The CachedDirectory should cache all of the files and subdirectories up the maximum depth. A
maximum depth of zero means that the CachedDirectory should cache the subdirectories, but not
traverse them. A depth < 0 means that it should not cache any files or subdirectories
within the directory. In the event that a loop is created by symlinks, the CachedDirectory will
include the symlink that completes the loop, but will not descend further (inducing a loop).
- T
the cache value type.
- Alphabetic
- By Inheritance
- CachedDirectoryImpl
- CachedDirectory
- DirectoryDataView
- DirectoryView
- FileTreeDataView
- FileTreeView
- AutoCloseable
- UpdatableFileTreeDataView
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
def
close(): Unit
Catch any exceptions in close.
Catch any exceptions in close.
- Definition Classes
- CachedDirectoryImpl → CachedDirectory → AutoCloseable
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
getEntry(): Entry[T]
Returns the FileTreeDataViews.Entry associated with the path specified by CachedDirectory.getPath.
Returns the FileTreeDataViews.Entry associated with the path specified by CachedDirectory.getPath.
- returns
the entry
- Definition Classes
- CachedDirectoryImpl → CachedDirectory → DirectoryDataView
-
def
getMaxDepth(): Int
Returns the maximum depth of children of subdirectories to include below the path specified by DirectoryView.getTypedPath.
Returns the maximum depth of children of subdirectories to include below the path specified by DirectoryView.getTypedPath. For example, when the value is
-1, then the DirectoryView should include only itself. When the value is0, it should include all of the subdirectories and files in the path. When the value is1, it should include all of the subdirectories and files in the path and all of the subdirectories and files in the immediate subdirectories of the path, but not the children of these nested subdirectories. When the value isInteger.MAX_VALUE, all children of the path are included.- returns
the maximum depth of subdirectory children to include.
- Definition Classes
- CachedDirectoryImpl → DirectoryView
-
def
getPath(): Path
Return the path of the root directory.
Return the path of the root directory.
- returns
the path of the root directory.
- Definition Classes
- CachedDirectoryImpl → DirectoryView
-
def
getTypedPath(): TypedPath
Return the typed path of the root directory.
Return the typed path of the root directory.
- returns
the typed path of the root directory.
- Definition Classes
- CachedDirectoryImpl → DirectoryView
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def init(): CachedDirectoryImpl[T]
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
list(path: Path, maxDepth: Int, filter: Filter[_ >: TypedPath]): List[TypedPath]
List all of the files for the
path, returning only those files that are accepted by the provided filter.List all of the files for the
path, returning only those files that are accepted by the provided filter. Unlike FileTreeView, this implementation cannot throw an IOException because list should be using the cache and not performing IO.- path
the root path to list
- maxDepth
the maximum depth of subdirectories to query
- filter
include only paths accepted by the filter
- returns
a List of java.nio.file.Path instances accepted by the filter.
- Definition Classes
- CachedDirectoryImpl → CachedDirectory → DirectoryDataView → FileTreeDataView → FileTreeView
-
def
list(maxDepth: Int, filter: Filter[_ >: TypedPath]): List[TypedPath]
List all of the files in the root directory, returning only those files that are accepted by the provided filter.
List all of the files in the root directory, returning only those files that are accepted by the provided filter. Unlike FileTreeView, this implementation cannot throw an IOException because list should be using the cache and not performing IO.
- maxDepth
the maximum depth of subdirectories to query
- filter
include only paths accepted by the filter
- returns
a List of java.nio.file.Path instances accepted by the filter.
- Definition Classes
- CachedDirectoryImpl → CachedDirectory → DirectoryDataView → DirectoryView
-
def
listEntries(maxDepth: Int, filter: Filter[_ >: Entry[T]]): List[Entry[T]]
List the children of the path specified by CachedDirectory.getPath, excluding the entry for the path itself.
List the children of the path specified by CachedDirectory.getPath, excluding the entry for the path itself. When the maxDepth parameter is
-1, return just the entry for the path itself.- maxDepth
the maximum depth of children (see DirectoryView.getMaxDepth)
- filter
only include entries matching this filter
- returns
a list containing all of the entries included by the filter up to the max depth.
- Definition Classes
- CachedDirectoryImpl → CachedDirectory → DirectoryDataView
-
def
listEntries(path: Path, maxDepth: Int, filter: Filter[_ >: Entry[T]]): List[Entry[T]]
List all of the files for the
paththat are accepted by thefilter.List all of the files for the
paththat are accepted by thefilter.- path
the path to list. If this is a file, returns a list containing the Entry for the file or an empty list if the file is not monitored by the path.
- maxDepth
the maximum depth of subdirectories to return
- filter
include only paths accepted by this
- returns
a List of Entry instances accepted by the filter. The list will be empty if the path is not a subdirectory of this CachedDirectory or if it is a subdirectory, but the CachedDirectory was created without the recursive flag.
- Definition Classes
- CachedDirectoryImpl → CachedDirectory → DirectoryDataView → FileTreeDataView
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
remove(path: Path): List[Entry[T]]
Remove a path from the directory.
Remove a path from the directory.
- path
the path to remove
- returns
a List containing the Entry instances for the removed path. The result also contains the cache entries for any children of the path when the path is a non-empty directory.
- Definition Classes
- CachedDirectoryImpl → UpdatableFileTreeDataView
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- CachedDirectoryImpl → AnyRef → Any
- val typedPath: TypedPath
-
def
update(typedPath: TypedPath): Updates[T]
Updates the CachedDirectory entry for a particular typed typedPath.
Updates the CachedDirectory entry for a particular typed typedPath.
- typedPath
the typedPath to update
- returns
a list of updates for the typedPath. When the typedPath is new, the updates have the oldCachedPath field set to null and will contain all of the children of the new typedPath when it is a directory. For an existing typedPath, the List contains a single Updates that contains the previous and new Entry. traversing the directory.
- Definition Classes
- CachedDirectoryImpl → UpdatableFileTreeDataView
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )