Class SftpRemotePathChannel

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, java.nio.channels.ByteChannel, java.nio.channels.Channel, java.nio.channels.GatheringByteChannel, java.nio.channels.InterruptibleChannel, java.nio.channels.ReadableByteChannel, java.nio.channels.ScatteringByteChannel, java.nio.channels.SeekableByteChannel, java.nio.channels.WritableByteChannel

    public class SftpRemotePathChannel
    extends java.nio.channels.FileChannel
    • Nested Class Summary

      • Nested classes/interfaces inherited from class java.nio.channels.FileChannel

        java.nio.channels.FileChannel.MapMode
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void beginBlocking​(java.lang.Object actionHint)  
      protected long doRead​(java.util.Collection<? extends java.nio.ByteBuffer> buffers, long position)  
      protected long doWrite​(java.util.Collection<? extends java.nio.ByteBuffer> buffers, long position)  
      protected void endBlocking​(java.lang.Object actionHint, boolean completed)  
      private void ensureOpen​(java.util.Collection<SftpClient.OpenMode> reqModes)
      Checks that the channel is open and that its current mode contains at least one of the required ones
      void force​(boolean metaData)  
      java.lang.String getRemotePath()  
      protected void implCloseChannel()  
      java.nio.channels.FileLock lock​(long position, long size, boolean shared)  
      java.nio.MappedByteBuffer map​(java.nio.channels.FileChannel.MapMode mode, long position, long size)  
      long position()  
      java.nio.channels.FileChannel position​(long newPosition)  
      int read​(java.nio.ByteBuffer dst)  
      long read​(java.nio.ByteBuffer[] dsts, int offset, int length)  
      int read​(java.nio.ByteBuffer dst, long position)  
      long size()  
      java.lang.String toString()  
      long transferFrom​(java.nio.channels.ReadableByteChannel src, long position, long count)  
      long transferTo​(long position, long count, java.nio.channels.WritableByteChannel target)  
      java.nio.channels.FileChannel truncate​(long size)  
      java.nio.channels.FileLock tryLock​(long position, long size, boolean shared)  
      int write​(java.nio.ByteBuffer src)  
      long write​(java.nio.ByteBuffer[] srcs, int offset, int length)  
      int write​(java.nio.ByteBuffer src, long position)  
      • Methods inherited from class java.nio.channels.FileChannel

        lock, open, open, read, tryLock, write
      • Methods inherited from class java.nio.channels.spi.AbstractInterruptibleChannel

        begin, close, end, isOpen
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.nio.channels.Channel

        isOpen
    • Field Detail

      • log

        protected final org.slf4j.Logger log
      • closeOnExit

        protected final boolean closeOnExit
      • lock

        protected final java.lang.Object lock
      • posTracker

        protected final java.util.concurrent.atomic.AtomicLong posTracker
      • blockingThreadHolder

        protected final java.util.concurrent.atomic.AtomicReference<java.lang.Thread> blockingThreadHolder
      • path

        private final java.lang.String path
    • Constructor Detail

      • SftpRemotePathChannel

        public SftpRemotePathChannel​(java.lang.String path,
                                     SftpClient sftp,
                                     boolean closeOnExit,
                                     java.util.Collection<SftpClient.OpenMode> modes)
                              throws java.io.IOException
        Throws:
        java.io.IOException
    • Method Detail

      • getRemotePath

        public java.lang.String getRemotePath()
      • read

        public int read​(java.nio.ByteBuffer dst)
                 throws java.io.IOException
        Specified by:
        read in interface java.nio.channels.ReadableByteChannel
        Specified by:
        read in interface java.nio.channels.SeekableByteChannel
        Specified by:
        read in class java.nio.channels.FileChannel
        Throws:
        java.io.IOException
      • read

        public int read​(java.nio.ByteBuffer dst,
                        long position)
                 throws java.io.IOException
        Specified by:
        read in class java.nio.channels.FileChannel
        Throws:
        java.io.IOException
      • read

        public long read​(java.nio.ByteBuffer[] dsts,
                         int offset,
                         int length)
                  throws java.io.IOException
        Specified by:
        read in interface java.nio.channels.ScatteringByteChannel
        Specified by:
        read in class java.nio.channels.FileChannel
        Throws:
        java.io.IOException
      • doRead

        protected long doRead​(java.util.Collection<? extends java.nio.ByteBuffer> buffers,
                              long position)
                       throws java.io.IOException
        Throws:
        java.io.IOException
      • write

        public int write​(java.nio.ByteBuffer src)
                  throws java.io.IOException
        Specified by:
        write in interface java.nio.channels.SeekableByteChannel
        Specified by:
        write in interface java.nio.channels.WritableByteChannel
        Specified by:
        write in class java.nio.channels.FileChannel
        Throws:
        java.io.IOException
      • write

        public int write​(java.nio.ByteBuffer src,
                         long position)
                  throws java.io.IOException
        Specified by:
        write in class java.nio.channels.FileChannel
        Throws:
        java.io.IOException
      • write

        public long write​(java.nio.ByteBuffer[] srcs,
                          int offset,
                          int length)
                   throws java.io.IOException
        Specified by:
        write in interface java.nio.channels.GatheringByteChannel
        Specified by:
        write in class java.nio.channels.FileChannel
        Throws:
        java.io.IOException
      • doWrite

        protected long doWrite​(java.util.Collection<? extends java.nio.ByteBuffer> buffers,
                               long position)
                        throws java.io.IOException
        Throws:
        java.io.IOException
      • position

        public long position()
                      throws java.io.IOException
        Specified by:
        position in interface java.nio.channels.SeekableByteChannel
        Specified by:
        position in class java.nio.channels.FileChannel
        Throws:
        java.io.IOException
      • position

        public java.nio.channels.FileChannel position​(long newPosition)
                                               throws java.io.IOException
        Specified by:
        position in interface java.nio.channels.SeekableByteChannel
        Specified by:
        position in class java.nio.channels.FileChannel
        Throws:
        java.io.IOException
      • size

        public long size()
                  throws java.io.IOException
        Specified by:
        size in interface java.nio.channels.SeekableByteChannel
        Specified by:
        size in class java.nio.channels.FileChannel
        Throws:
        java.io.IOException
      • truncate

        public java.nio.channels.FileChannel truncate​(long size)
                                               throws java.io.IOException
        Specified by:
        truncate in interface java.nio.channels.SeekableByteChannel
        Specified by:
        truncate in class java.nio.channels.FileChannel
        Throws:
        java.io.IOException
      • force

        public void force​(boolean metaData)
                   throws java.io.IOException
        Specified by:
        force in class java.nio.channels.FileChannel
        Throws:
        java.io.IOException
      • transferTo

        public long transferTo​(long position,
                               long count,
                               java.nio.channels.WritableByteChannel target)
                        throws java.io.IOException
        Specified by:
        transferTo in class java.nio.channels.FileChannel
        Throws:
        java.io.IOException
      • transferFrom

        public long transferFrom​(java.nio.channels.ReadableByteChannel src,
                                 long position,
                                 long count)
                          throws java.io.IOException
        Specified by:
        transferFrom in class java.nio.channels.FileChannel
        Throws:
        java.io.IOException
      • map

        public java.nio.MappedByteBuffer map​(java.nio.channels.FileChannel.MapMode mode,
                                             long position,
                                             long size)
                                      throws java.io.IOException
        Specified by:
        map in class java.nio.channels.FileChannel
        Throws:
        java.io.IOException
      • lock

        public java.nio.channels.FileLock lock​(long position,
                                               long size,
                                               boolean shared)
                                        throws java.io.IOException
        Specified by:
        lock in class java.nio.channels.FileChannel
        Throws:
        java.io.IOException
      • tryLock

        public java.nio.channels.FileLock tryLock​(long position,
                                                  long size,
                                                  boolean shared)
                                           throws java.io.IOException
        Specified by:
        tryLock in class java.nio.channels.FileChannel
        Throws:
        java.io.IOException
      • implCloseChannel

        protected void implCloseChannel()
                                 throws java.io.IOException
        Specified by:
        implCloseChannel in class java.nio.channels.spi.AbstractInterruptibleChannel
        Throws:
        java.io.IOException
      • beginBlocking

        protected void beginBlocking​(java.lang.Object actionHint)
      • endBlocking

        protected void endBlocking​(java.lang.Object actionHint,
                                   boolean completed)
                            throws java.nio.channels.AsynchronousCloseException
        Throws:
        java.nio.channels.AsynchronousCloseException
      • ensureOpen

        private void ensureOpen​(java.util.Collection<SftpClient.OpenMode> reqModes)
                         throws java.io.IOException
        Checks that the channel is open and that its current mode contains at least one of the required ones
        Parameters:
        reqModes - The required modes - ignored if null/empty
        Throws:
        java.io.IOException - If channel not open or the required modes are not satisfied
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object