SFTPException.java :  » App » sshtunnel » com » trilead » ssh2 » Android Open Source

Android Open Source » App » sshtunnel 
sshtunnel » com » trilead » ssh2 » SFTPException.java
package com.trilead.ssh2;

import java.io.IOException;

import com.trilead.ssh2.sftp.ErrorCodes;

/**
 * Used in combination with the SFTPv3Client. This exception wraps error
 * messages sent by the SFTP server.
 * 
 * @author Christian Plattner, plattner@trilead.com
 * @version $Id: SFTPException.java,v 1.1 2007/10/15 12:49:56 cplattne Exp $
 */

public class SFTPException extends IOException {
  private static final long serialVersionUID = 578654644222421811L;

  private static String constructMessage(String s, int errorCode) {
    String[] detail = ErrorCodes.getDescription(errorCode);

    if (detail == null)
      return s + " (UNKNOW SFTP ERROR CODE)";

    return s + " (" + detail[0] + ": " + detail[1] + ")";
  }
  private final String sftpErrorMessage;

  private final int sftpErrorCode;

  SFTPException(String msg, int errorCode) {
    super(constructMessage(msg, errorCode));
    sftpErrorMessage = msg;
    sftpErrorCode = errorCode;
  }

  /**
   * Get the error code sent by the server.
   * 
   * @return an error code as defined in the SFTP specs.
   */
  public int getServerErrorCode() {
    return sftpErrorCode;
  }

  /**
   * Get the symbolic name of the error code as given in the SFTP specs.
   * 
   * @return e.g., "SSH_FX_INVALID_FILENAME".
   */
  public String getServerErrorCodeSymbol() {
    String[] detail = ErrorCodes.getDescription(sftpErrorCode);

    if (detail == null)
      return "UNKNOW SFTP ERROR CODE " + sftpErrorCode;

    return detail[0];
  }

  /**
   * Get the description of the error code as given in the SFTP specs.
   * 
   * @return e.g., "The filename is not valid."
   */
  public String getServerErrorCodeVerbose() {
    String[] detail = ErrorCodes.getDescription(sftpErrorCode);

    if (detail == null)
      return "The error code " + sftpErrorCode + " is unknown.";

    return detail[1];
  }

  /**
   * Get the error message sent by the server. Often, this message does not
   * help a lot (e.g., "failure").
   * 
   * @return the plain string as sent by the server.
   */
  public String getServerErrorMessage() {
    return sftpErrorMessage;
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.