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
- All Implemented Interfaces:
Comparable<Path>,Iterable<Path>,Path,Watchable,WithFileAttributeCache,WithFileAttributes
An
SftpPath that can cache SftpClient.Attributes.-
Field Summary
Fields inherited from class org.apache.sshd.common.file.util.BasePath
names, root -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidcacheAttributes(boolean doCache) SftpPathinstances can cache SFTPSftpClient.Attributes.Retrieves theSftpClient.Attributesof this object, if it has any.voidsetAttributes(SftpClient.Attributes attributes) Sets the attributes.<T> TwithAttributeCache(org.apache.sshd.common.util.io.functors.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
-
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
WithFileAttributeCache.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:
-
setAttributes
Description copied from interface:WithFileAttributeCacheSets the attributes.- Specified by:
setAttributesin interfaceWithFileAttributeCache- Parameters:
attributes-SftpClient.Attributesto set
-
getAttributes
Description copied from interface:WithFileAttributesRetrieves theSftpClient.Attributesof this object, if it has any.- Specified by:
getAttributesin interfaceWithFileAttributes- Overrides:
getAttributesin classSftpPath- Returns:
- the
SftpClient.Attributesornullif there are none
-
withAttributeCache
public <T> T withAttributeCache(org.apache.sshd.common.util.io.functors.IOFunction<Path, T> operation) throws IOExceptionDescription copied from interface:WithFileAttributeCachePerforms 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 toWithFileAttributeCache.withAttributeCache(IOFunction)may be nested. The cache is cleared at the start and at the end of the outermost invocation.- Specified by:
withAttributeCachein interfaceWithFileAttributeCache- 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
-