/*
* WPCleaner: A tool to help on Wikipedia maintenance tasks.
* Copyright (C) 2013 Nicolas Vervelle
*
* See README.txt file for licensing information.
*/
package org.wikipediacleaner.api.data;
import org.wikipediacleaner.api.constants.EnumLoginResult;
/**
* Class containing the information about the login result.
*/
public class LoginResult {
private EnumLoginResult loginResult;
private String details;
private String wait;
/**
* Create a correct login result.
*
* @return Login result.
*/
static public LoginResult createCorrectLogin() {
return new LoginResult(EnumLoginResult.SUCCESS, null, null);
}
/**
* Create a login result to indicate that a token is needed.
*
* @param token Token.
* @return Login result.
*/
static public LoginResult createNeedTokenLogin(String token) {
return new LoginResult(EnumLoginResult.NEED_TOKEN, token, null);
}
/**
* Create an error login result.
*
* @param errorText Text error.
* @param details Details of the error.
* @param wait Wait text.
* @return Error.
*/
static public LoginResult createErrorLogin(
String errorText, String details, String wait) {
EnumLoginResult loginResult = EnumLoginResult.getEnumByCode(errorText);
return new LoginResult(loginResult, details, wait);
}
private LoginResult(EnumLoginResult loginResult, String details, String wait) {
this.loginResult = loginResult;
this.details = details;
this.wait = wait;
}
/**
* @return Flag indicating if login is successful.
*/
public boolean isLoginSuccessful() {
if (loginResult != null) {
return loginResult.isOk();
}
return false;
}
/**
* @return Flag indicating if token is needed.
*/
public boolean isTokenNeeded() {
if (loginResult != null) {
return (loginResult == EnumLoginResult.NEED_TOKEN);
}
return false;
}
public String getDetails() {
return details;
}
public String getWait() {
return wait;
}
@Override
public String toString() {
return ((loginResult != null) ? loginResult.getText() : "") +
((details != null) ? " - " + details : "");
}
}