Package org.apache.sshd.sftp.client.impl
Class SftpPathImpl
java.lang.Object
org.apache.sshd.common.file.util.BasePath<SftpPath,SftpFileSystem>
org.apache.sshd.sftp.client.fs.SftpPath
org.apache.sshd.sftp.client.impl.SftpPathImpl
An
SftpPath that can cache SftpClient.Attributes.-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidcacheAttributes(boolean doCache) SftpPathinstances can cache SFTPSftpClient.Attributes.voidcacheAttributes(SftpClient.Attributes attributes) Sets the cached attributes to the argument if thisSftpPathinstance is currently caching attributes.Retrieves the cachedSftpClient.Attributesof thisSftpPath, if it has any.voidsetAttributes(SftpClient.Attributes attributes) Unconditionally set the cached attributes, whether or not this instance's attribute cache is enabled.static <T> TwithAttributeCache(Path path, IOFunction<Path, T> operation) Performs the given operation with attribute caching, if the givenPathcan cache attributes, otherwise simply executes the operation.<T> TwithAttributeCache(IOFunction<Path, T> operation) Performs the given operation with attribute caching.Methods inherited from class org.apache.sshd.sftp.client.fs.SftpPath
toRealPathMethods inherited from class org.apache.sshd.common.file.util.BasePath
asString, asT, calculatedHashCode, checkPath, compare, compareTo, create, create, create, endsWith, endsWith, endsWith, equals, getFileName, getFileSystem, getName, getNameCount, getParent, getRoot, hashCode, isAbsolute, isNormal, iterator, normalize, register, register, relativize, resolve, resolve, resolveSibling, resolveSibling, startsWith, startsWith, startsWith, subpath, toAbsolutePath, toFile, toString, toUriMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
attributes
-
cachingLevel
private int cachingLevel
-
-
Constructor Details
-
SftpPathImpl
-
-
Method Details
-
cacheAttributes
protected void cacheAttributes(boolean doCache) SftpPathinstances can cache SFTPSftpClient.Attributes. Caching can be enabled by passingtrue. If theSftpPathinstance is already caching attributes, a counter is increased only. To disable caching, passfalse, which decreases the counter. The cache is cleared when the counter reaches zero again.Each call of
cacheAttributes(true)must be matched by a call tocacheAttributes(false). Such call pairs can be nested; caching is enabled for the duration of the outermost such pair. The outermost call passingtrueclears any possibly already cached attributes so that the next attempt to read remote attributes will fetch them anew.Client code should use
withAttributeCache(Path, IOFunction), which ensures the above condition.- Parameters:
doCache- whether to start caching (increasing the cache level) or to stop caching (decreasing the cache level)- See Also:
-
cacheAttributes
Sets the cached attributes to the argument if thisSftpPathinstance is currently caching attributes. Otherwise a no-op.- Parameters:
attributes- theSftpClient.Attributesto cache
-
setAttributes
Unconditionally set the cached attributes, whether or not this instance's attribute cache is enabled.- Parameters:
attributes- theSftpClient.Attributesto cache
-
getAttributes
Description copied from class:SftpPathRetrieves the cachedSftpClient.Attributesof thisSftpPath, if it has any.- Overrides:
getAttributesin classSftpPath- Returns:
- the cached
SftpClient.Attributesornullif there are none cached
-
withAttributeCache
Performs the given operation with attribute caching. IfSftpClient.Attributesare fetched by the operation, they will be cached and subsequently these cached attributes will be re-used for thisSftpPathinstance throughout the operation. Calls towithAttributeCache(IOFunction)may be nested. The cache is cleared at the start and at the end of the outermost invocation.- Type Parameters:
T- result type of theoperation- Parameters:
operation- to perform; may returnnullif it has no result- Returns:
- the result of the
operation - Throws:
IOException- if thrown by theoperation
-
withAttributeCache
Performs the given operation with attribute caching, if the givenPathcan cache attributes, otherwise simply executes the operation.- Type Parameters:
T- result type of theoperation- Parameters:
path-Pathto operate onoperation- to perform; may returnnullif it has no result- Returns:
- the result of the
operation - Throws:
IOException- if thrown by theoperation- See Also:
-