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
-
-
Constructor Summary
Constructors Constructor Description SftpPathImpl(SftpFileSystem fileSystem, String root, List<String> names)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected 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.SftpClient.AttributesgetAttributes()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, org.apache.sshd.common.util.io.functors.IOFunction<Path,T> operation)Performs the given operation with attribute caching, if the givenPathcan cache attributes, otherwise simply executes the operation.<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
toRealPath
-
Methods 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, toUri
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Constructor Detail
-
SftpPathImpl
public SftpPathImpl(SftpFileSystem fileSystem, String root, List<String> names)
-
-
Method Detail
-
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:
withAttributeCache(Path, IOFunction)
-
cacheAttributes
public void cacheAttributes(SftpClient.Attributes attributes)
Sets the cached attributes to the argument if thisSftpPathinstance is currently caching attributes. Otherwise a no-op.- Parameters:
attributes- theSftpClient.Attributesto cache
-
setAttributes
public void setAttributes(SftpClient.Attributes attributes)
Unconditionally set the cached attributes, whether or not this instance's attribute cache is enabled.- Parameters:
attributes- theSftpClient.Attributesto cache
-
getAttributes
public SftpClient.Attributes 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
public <T> T withAttributeCache(org.apache.sshd.common.util.io.functors.IOFunction<Path,T> operation) throws IOException
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
public static <T> T withAttributeCache(Path path, org.apache.sshd.common.util.io.functors.IOFunction<Path,T> operation) throws IOException
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:
withAttributeCache(IOFunction)
-
-