/*
* Copyright 2009-2012 Amazon Technologies, Inc.
*
* 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://aws.amazon.com/apache2.0
*
* This file 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.amazonaws.eclipse.ec2;
/**
* Represents the results of an attempt to copy a local file to a remote host.
*/
public class RemoteFileCopyResults {
/** The local file being copied */
private final String localFile;
/** The remote destination file */
private final String remoteFile;
/** True if the file was successfully copied to the remote location */
private boolean succeeded;
/** An optional error message if the remote file copy was not successful */
private String errorMessage;
/** An optional exception describing why this attempt failed */
private Exception error;
/**
* An optional string containing the external output from the copy command
* such as any error messages from the command used for the copy
*/
private String externalOutput;
/**
* Creates a new RemoteFileCopyResults object describing the results of
* copying the specified local file to the specified remote file location.
*
* @param localFile
* The local file being copied.
* @param remoteFile
* The remote file location.
*/
public RemoteFileCopyResults(String localFile, String remoteFile) {
this.localFile = localFile;
this.remoteFile = remoteFile;
}
/**
* @return The local file location.
*/
public String getLocalFile() {
return localFile;
}
/**
* @return The remote file location.
*/
public String getRemoteFile() {
return remoteFile;
}
/**
* @param errorMessage
* the error message describing how this remote file copy failed.
*/
public void setErrorMessage(String errorMessage) {
this.errorMessage = errorMessage;
}
/**
* @return the error message describing how this remote file copy attempt
* failed.
*/
public String getErrorMessage() {
if (externalOutput == null || externalOutput.trim().length() == 0) {
return errorMessage;
}
return errorMessage + ":\n\t" + externalOutput;
}
/**
* @param wasSuccessful
* True if the file was successfully copied to the remote file
* location.
*/
public void setSucceeded(boolean wasSuccessful) {
this.succeeded = wasSuccessful;
}
/**
* @return True if the file was successfully copied to the remote file
* location.
*/
public boolean isSucceeded() {
return succeeded;
}
/**
* @param error the error to set
*/
public void setError(Exception error) {
this.error = error;
}
/**
* @return the error
*/
public Exception getError() {
return error;
}
/**
* @param externalOutput
* The command output from the attempt to copy the file to the
* remote location.
*/
public void setExternalOutput(String externalOutput) {
this.externalOutput = externalOutput;
}
}