trait FileTreeRepository[+T] extends Observable[T] with FileTreeDataView[T] with AutoCloseable
Monitors registered directories for file changes. A typical implementation will keep an in memory cache of the file system that can be queried in FileTreeRepository#listEntries. The FileTreeRepository#register method adds monitoring for a particular cache. A filter may be provided so that the cache doesn't waste memory on files the user doesn't care about. The cache may be shared across a code base so there additional apis for adding filters or changing the recursive property of a directory.
- T
the type of the FileTreeDataView.Entry.values.
- Alphabetic
- By Inheritance
- FileTreeRepository
- FileTreeDataView
- FileTreeView
- Observable
- AutoCloseable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
- abstract def addObserver(observer: Observer[T]): Int
Add callbacks to be invoked on file events.
Add callbacks to be invoked on file events.
- observer
the callbacks to invoke
- returns
a handle to the callback.
- Definition Classes
- Observable
- abstract def close(): Unit
- Definition Classes
- AutoCloseable
- Annotations
- @throws(classOf[java.lang.Exception])
- abstract def list(path: Path, maxDepth: Int, filter: (TypedPath) ⇒ Boolean): Seq[TypedPath]
List the contents of the current directory.
List the contents of the current directory.
- path
the path to list
- maxDepth
controls the depth of children of the path to include in the results. When maxDepth is -1, list should only return the TypedPath for this directory. For non-negative values, list should return only entries whose relativized path has
maxDepth - 1the children of the path should be included in the result, but none of the children of any of the subdirectories should be included.
- filter
only return files accepted by the filter
- returns
a sequence of TypedPaths.
- Definition Classes
- FileTreeView
- abstract def listEntries(path: Path, maxDepth: Int, filter: (Entry[T]) ⇒ Boolean): Seq[Entry[T]]
List the contents of the current directory where each returned FileTreeDataView.Entry has a data value associated with it.
List the contents of the current directory where each returned FileTreeDataView.Entry has a data value associated with it.
- path
the path to list
- maxDepth
controls the depth of children of the path to include in the results. When maxDepth is -1, listEntries should only return the TypedPath for this directory. For non-negative values, listEntries should return only entries whose relativized path has
maxDepth - 1when maxDepth is zero, all of the children of the path should be included in the result, but none of the children of any of the subdirectories should be included.
- filter
only return files accepted by the filter
- returns
a sequence of FileTreeDataView.Entry instances.
- Definition Classes
- FileTreeDataView
- abstract def register(path: Path, maxDepth: Int): Either[IOException, Boolean]
Register a directory for monitoring
Register a directory for monitoring
- path
the path to list
- maxDepth
controls how the depth of children of the registered path to consider. When maxDepth is -1, then the repository should only monitor the path itself. When it is zero, the the repository should monitor the path and its direct children. For values greater than zero,
- returns
an Either that is a Right when register has no errors and a Left if an IOException is thrown while registering the path. The result should be true if the path has never been previously registered or if the recursive flag flips from false to true.
- abstract def removeObserver(handle: Int): Unit
Removes a callback that was added via addObserver
Removes a callback that was added via addObserver
- handle
The handle returned by addObserver
- Definition Classes
- Observable
- abstract def unregister(path: Path): Unit
Remove a path from monitoring.
Remove a path from monitoring.
- path
the path to stop monitoring
Concrete 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(classOf[java.lang.CloneNotSupportedException])
- 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 hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- 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()
- final def synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws(classOf[java.lang.InterruptedException])