Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright (C) 2014 Philip Helger (www.helger.com) philip[at]helger[dot]com Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
 package com.helger.webbasics.ssh.generic.sftp;
 
 import java.util.List;
 
 
 
 
 {
   private static final Logger s_aLogger = LoggerFactory.getLogger (SftpConnector.class);
   private ChannelSftp m_aChannel;
 
   public SftpConnector (@Nonnull final String sHostname)
   {
     this (new SftpConnectionDestination (sHostname));
   }
 
   public SftpConnector (@Nonnull final String sHostnamefinal int nPort)
   {
     this (new SftpConnectionDestination (sHostnamenPort));
   }
 
   public SftpConnector (@Nonnull final ISftpConnectionDestination aDestination)
   {
     if (aDestination == null)
       throw new NullPointerException ("destination");
      = aDestination;
   }
 
   @Nonnull
   {
     return ;
   }
 
   @Nullable
   public ChannelSftp getHandle ()
   {
     return ;
   }
 
   @Nonnull
   public EChange openConnection (@Nonnull final IAuthCredentials aCredentials)
   {
     // already open?
     if (isConnectionOpen ())
       return .;
 
     // open connection
      = .openConnection (aCredentials);
     return EChange.valueOf (isConnectionOpen ());
   }
 
   @Nonnull
   public EChange closeConnection ()
   {
     {
        = null;
       return .;
     }
 
     return .;
   }
 
   public boolean isConnectionOpen ()
   {
    return  != null;
  }
  public ESuccess getData (@Nonnull final String sFilename, @Nonnull final OutputStream aOS)
  {
    try
    {
      if ( != null)
        try
        {
          .get (sFilenameaOS);
          .info ("Successfully got data '" + sFilename + "'");
          return .;
        }
        catch (final SftpException ex)
        {
          .error ("Error in get data '" + sFilename + "'"ex);
        }
      return .;
    }
    finally
    {
      StreamUtils.close (aOS);
    }
  }
  public ESuccess putData (@Nonnull final String sFilename, @Nonnull final InputStream aIS)
  {
    try
    {
      if ( != null)
        try
        {
          .put (aISsFilename);
          .info ("Successfully put data '" + sFilename + "'");
          return .;
        }
        catch (final SftpException ex)
        {
          .error ("Error putting data '" + sFilename + "'"ex);
        }
      return .;
    }
    finally
    {
      StreamUtils.close (aIS);
    }
  }
  public ESuccess changeWorkingDirectory (@Nonnull final String sDirectory)
  {
    if ( != null)
      try
      {
        .cd (sDirectory);
        .info ("Successfully changed directory to '" + sDirectory + "'");
        return .;
      }
      catch (final SftpException ex)
      {
        .error ("Error changing directory to '" + sDirectory + "'"ex);
      }
    return .;
  }
  {
    return changeWorkingDirectory ("..");
  }
  public ESuccess deleteFile (@Nonnull final String sFilename)
  {
    if ( != null)
      try
      {
        .rm (sFilename);
        .info ("Successfully deleted file '" + sFilename + "'");
        return .;
      }
      catch (final SftpException ex)
      {
        .error ("Error deleting file '" + sFilename + "'"ex);
      }
    return .;
  }
  public ESuccess listFiles (@Nullable final IFilter <ChannelSftp.LsEntryaFilter,
                             @Nonnull final List <ChannelSftp.LsEntryaTargetList)
  {
    if (aTargetList == null)
      throw new NullPointerException ("targetList");
    if ( != null)
    {
      try
      {
        final Vector <?> aFiles = .ls (".");
        for (final Object aFile : aFiles)
        {
          final ChannelSftp.LsEntry aEntry = (ChannelSftp.LsEntryaFile;
          if (aFilter == null || aFilter.matchesFilter (aEntry))
            aTargetList.add (aEntry);
        }
        .info ("Successfully listed " + aTargetList.size () + " files");
        return .;
      }
      catch (final SftpException ex)
      {
        .error ("Error listing files"ex);
      }
    }
    return .;
  }
New to GrepCode? Check out our FAQ X