Class/Object

com.swoval.files

CachedDirectoryImpl

Related Docs: object CachedDirectoryImpl | package files

Permalink

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.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. CachedDirectoryImpl
  2. CachedDirectory
  3. DirectoryDataView
  4. DirectoryView
  5. FileTreeDataView
  6. FileTreeView
  7. AutoCloseable
  8. UpdatableFileTreeDataView
  9. AnyRef
  10. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new CachedDirectoryImpl(typedPath: TypedPath, converter: Converter[T], depth: Int, filter: Filter[_ >: TypedPath], followLinks: Boolean)

    Permalink
  2. new CachedDirectoryImpl(typedPath: TypedPath, converter: Converter[T], depth: Int, filter: Filter[_ >: TypedPath], followLinks: Boolean, fileTreeView: FileTreeView)

    Permalink

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. def close(): Unit

    Permalink

    Catch any exceptions in close.

    Catch any exceptions in close.

    Definition Classes
    CachedDirectoryImplCachedDirectory → AutoCloseable
  7. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  8. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  9. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  11. def getEntry(): Entry[T]

    Permalink

    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
    CachedDirectoryImplCachedDirectoryDirectoryDataView
  12. def getMaxDepth(): Int

    Permalink

    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 is 0, it should include all of the subdirectories and files in the path. When the value is 1, 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 is Integer.MAX_VALUE, all children of the path are included.

    returns

    the maximum depth of subdirectory children to include.

    Definition Classes
    CachedDirectoryImplDirectoryView
  13. def getPath(): Path

    Permalink

    Return the path of the root directory.

    Return the path of the root directory.

    returns

    the path of the root directory.

    Definition Classes
    CachedDirectoryImplDirectoryView
  14. def getTypedPath(): TypedPath

    Permalink

    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
    CachedDirectoryImplDirectoryView
  15. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  16. def init(): CachedDirectoryImpl[T]

    Permalink
  17. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  18. def list(path: Path, maxDepth: Int, filter: Filter[_ >: TypedPath]): List[TypedPath]

    Permalink

    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
    CachedDirectoryImplCachedDirectoryDirectoryDataViewFileTreeDataViewFileTreeView
  19. def list(maxDepth: Int, filter: Filter[_ >: TypedPath]): List[TypedPath]

    Permalink

    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
    CachedDirectoryImplCachedDirectoryDirectoryDataViewDirectoryView
  20. def listEntries(maxDepth: Int, filter: Filter[_ >: Entry[T]]): List[Entry[T]]

    Permalink

    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
    CachedDirectoryImplCachedDirectoryDirectoryDataView
  21. def listEntries(path: Path, maxDepth: Int, filter: Filter[_ >: Entry[T]]): List[Entry[T]]

    Permalink

    List all of the files for the path that are accepted by the filter.

    List all of the files for the path that are accepted by the filter.

    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
    CachedDirectoryImplCachedDirectoryDirectoryDataViewFileTreeDataView
  22. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  23. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  24. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  25. def remove(path: Path): List[Entry[T]]

    Permalink

    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
    CachedDirectoryImplUpdatableFileTreeDataView
  26. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  27. def toString(): String

    Permalink
    Definition Classes
    CachedDirectoryImpl → AnyRef → Any
  28. def update(typedPath: TypedPath, rescanDirectoriesOnUpdate: Boolean): Updates[T]

    Permalink

    Updates the CachedDirectory entry for a particular typed typedPath.

    Updates the CachedDirectory entry for a particular typed typedPath.

    typedPath

    the typedPath to update

    rescanDirectoriesOnUpdate

    if true, rescan the entire subtree for this directory. This can be very expensive.

    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
    CachedDirectoryImplUpdatableFileTreeDataView
  29. def update(typedPath: TypedPath): Updates[T]

    Permalink

    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
    CachedDirectoryImplUpdatableFileTreeDataView
  30. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  31. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  32. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from CachedDirectory[T]

Inherited from DirectoryDataView[T]

Inherited from DirectoryView

Inherited from FileTreeDataView[T]

Inherited from FileTreeView

Inherited from AutoCloseable

Inherited from UpdatableFileTreeDataView[T]

Inherited from AnyRef

Inherited from Any

Ungrouped