/*******************************************************************************
* Copyright (c) 2012-2017 Codenvy, S.A.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Codenvy, S.A. - initial API and implementation
*******************************************************************************/
package org.eclipse.che.plugin.machine.ssh.jsch;
import com.jcraft.jsch.UserInfo;
/**
* Implementation of {@link UserInfo}.
*
* @author Alexander Garagatyi
*/
public class JschUserInfoImpl implements UserInfo {
private final String password;
private final boolean promptPassword;
private final String passphrase;
private final boolean promptPassphrase;
private final boolean promptYesNo;
private JschUserInfoImpl(String password,
boolean promptPassword,
String passphrase,
boolean promptPassphrase,
boolean promptYesNo) {
this.password = password;
this.promptPassword = promptPassword;
this.passphrase = passphrase;
this.promptPassphrase = promptPassphrase;
this.promptYesNo = promptYesNo;
}
public static JschUserInfoImplBuilder builder() {
return new JschUserInfoImplBuilder();
}
@Override
public String getPassphrase() {
return passphrase;
}
@Override
public String getPassword() {
return password;
}
@Override
public boolean promptPassword(String message) {
return promptPassword;
}
@Override
public boolean promptPassphrase(String message) {
return promptPassphrase;
}
@Override
public boolean promptYesNo(String message) {
return promptYesNo;
}
@Override
public void showMessage(String message) {}
public static class JschUserInfoImplBuilder {
private String password;
private String passphrase;
private boolean promptPassword;
private boolean promptPassphrase;
private boolean promptYesNo;
private JschUserInfoImplBuilder() {}
public JschUserInfoImpl build() {
return new JschUserInfoImpl(password, promptPassword, passphrase, promptPassphrase, promptYesNo);
}
public JschUserInfoImplBuilder password(String password) {
this.password = password;
return this;
}
public JschUserInfoImplBuilder passphrase(String passphrase) {
this.passphrase = passphrase;
return this;
}
public JschUserInfoImplBuilder promptPassword(boolean promptPassword) {
this.promptPassword = promptPassword;
return this;
}
public JschUserInfoImplBuilder promptPassphrase(boolean promptPassphrase) {
this.promptPassphrase = promptPassphrase;
return this;
}
public JschUserInfoImplBuilder promptYesNo(boolean promptYesNo) {
this.promptYesNo = promptYesNo;
return this;
}
}
}