/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.embedded.ssh.internal;
import java.io.File;
import java.io.IOException;
import de.rcenvironment.core.embedded.ssh.api.ScpContext;
import de.rcenvironment.core.utils.common.StringUtils;
import de.rcenvironment.core.utils.common.TempFileServiceAccess;
/**
* Default {@link ScpContext} implementation.
*
* @author Robert Mischke
*/
public class ScpContextImpl implements ScpContext {
private String authorizedUsername;
private String virtualScpRootPath;
private File localRootPath;
public ScpContextImpl(String username, String virtualRootPath) throws IOException {
this.authorizedUsername = username;
this.virtualScpRootPath = virtualRootPath;
this.localRootPath = TempFileServiceAccess.getInstance().createManagedTempDir("scp");
}
@Override
public String getAuthorizedUsername() {
return authorizedUsername;
}
public void setAuthorizedUsername(String accountName) {
this.authorizedUsername = accountName;
}
@Override
public String getVirtualScpRootPath() {
return virtualScpRootPath;
}
public void setVirtualScpRootPath(String virtualScpRootPath) {
this.virtualScpRootPath = virtualScpRootPath;
}
@Override
public File getLocalRootPath() {
return localRootPath;
}
public void setLocalRootPath(File localScpRootPath) {
this.localRootPath = localScpRootPath;
}
/**
* Deletes the local temporary root directory.
*
* @throws IOException if deletion fails
*/
public void dispose() throws IOException {
TempFileServiceAccess.getInstance().disposeManagedTempDirOrFile(localRootPath);
}
@Override
public String toString() {
return StringUtils.format("User='%s', SCP root path='%s', local root dir='%s'", authorizedUsername, virtualScpRootPath,
localRootPath);
}
}