package com.rincliu.library.common.persistence.rootmanager.container; import com.rincliu.library.common.persistence.rootmanager.utils.RootUtils; /** * This class is used to store a root operation result which contains the * result of execution and details information. * * @author Chris Jiang */ public class Result { /* members */ private String message; private int statusCode; public String getMessage() { return message; } public int getStatusCode() { return statusCode; } public Boolean getResult() { RootUtils.Log("Status Code is " + statusCode); if (statusCode == 0) { return true; } else if (statusCode <= 100) { return true; } else { return false; } } private Result() { } public static ResultBuilder newBuilder() { return new ResultBuilder(); } public static class ResultBuilder { private ResultEnum inEnum = null; public ResultBuilder setCommandSuccess() { inEnum = ResultEnum.RUNCOMMAND_SUCCESS; return this; } public ResultBuilder setCommandFailedTimeout() { inEnum = ResultEnum.RUNCOMMAND_FAILED_TIMEOUT; return this; } public ResultBuilder setCommandFailedDenied() { inEnum = ResultEnum.RUNCOMMAND_FAILED_DENIED; return this; } public ResultBuilder setCommandFailedInterrupted() { inEnum = ResultEnum.RUNCOMMAND_FAILED_INTERRUPTED; return this; } public ResultBuilder setCommandFailed() { inEnum = ResultEnum.RUNCOMMAND_FAILED; return this; } public ResultBuilder setInstallSuccess() { inEnum = ResultEnum.INSTALL_SUCCESS; return this; } public ResultBuilder setInsallFailedNoSpace() { inEnum = ResultEnum.INSTALL_FAILED_NOSPACE; return this; } public ResultBuilder setInstallFailedWrongContainer() { inEnum = ResultEnum.INSTALL_FAILED_WRONGCONTAINER; return this; } public ResultBuilder setInstallFailedWrongCer() { inEnum = ResultEnum.INSTALL_FAILED_WRONGCER; return this; } public ResultBuilder setInstallFailed() { inEnum = ResultEnum.INSTALL_FIALED; return this; } public ResultBuilder setUninstallSuccess() { inEnum = ResultEnum.UNINSTALL_SUCCESS; return this; } public ResultBuilder setUninstallFailed() { inEnum = ResultEnum.UNINSTALL_SUCCESS; return this; } public ResultBuilder setFailed() { inEnum = ResultEnum.FAILED; return this; } public ResultBuilder setCustomMessage(String customMessage) { inEnum = ResultEnum.CUSTOM; inEnum.setCustomMessage(customMessage); return this; } public Result build() { if (inEnum == null) { throw new IllegalStateException( "Get a empty or null error message during command execution, can not generate result object"); } Result re = new Result(); re.message = inEnum.getMessage(); re.statusCode = inEnum.getStatusCode(); return re; } } public enum ResultEnum { RUNCOMMAND_SUCCESS(90, "Command Executed Successfully"), RUNCOMMAND_FAILED_TIMEOUT(401, "Run Command Timeout"), RUNCOMMAND_FAILED_DENIED( 402, "Run Command Permission Denied"), RUNCOMMAND_FAILED_INTERRUPTED(403, "Run Command Interrupted"), RUNCOMMAND_FAILED( 409, "Run Command Failed"), INSTALL_SUCCESS(80, "Application installed Successfully"), INSTALL_FAILED_NOSPACE(404, "Install Failed because of no enough space"), INSTALL_FAILED_WRONGCONTAINER(405, "Install Failed Wrong container"), INSTALL_FAILED_WRONGCER(406, "Install Failed Wrong Cer or version"), INSTALL_FIALED( 407, "Install Failed"), UNINSTALL_SUCCESS(70, "Application uninstall Successfully"), UNINSTALL_FAILED(408, "Uninstall App Failed"), FAILED(409, "Illegal Parameters or State"), CUSTOM(0, ""); private int statusCode; private String message; private ResultEnum(int sc, String msg) { statusCode = sc; message = msg; } public void setCustomMessage(String customMessage) { message = customMessage; } public String getMessage() { return message; } public int getStatusCode() { return statusCode; } } }