/*
Wenity v1.5 - a Zenity clone written in Java
Copyright (c) 2012, 2013 Karoly Kalman http://kksw.zzl.org/
This file is part of Wenity v1.5.
Wenity v1.5 is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Wenity v1.5 is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Wenity v1.5. If not, see <http://www.gnu.org/licenses/>.
*/
package wenity.modules.common;
import wenity.Constants;
final public class ModuleResponse
{
private enum ModuleResponseStatus
{
CANCELLED,
ERROR,
OK,
}
private final String result;
private final ModuleResponseStatus status;
private final boolean createResponseFile;
private ModuleResponse (final String result, final ModuleResponseStatus status, final boolean createResponseFile)
{
this.result = result;
this.status = status;
this.createResponseFile = createResponseFile;
}
public boolean isValid ()
{
return status == ModuleResponseStatus.OK;
}
public boolean isCanceled ()
{
return status == ModuleResponseStatus.CANCELLED;
}
public boolean isError ()
{
return status == ModuleResponseStatus.ERROR;
}
public boolean createsResponseFile ()
{
return createResponseFile;
}
public String getResultAsString ()
{
return result;
}
public int getResultAsInt ()
{
return Integer.parseInt (result);
}
@Override
public String toString ()
{
return "ModuleResponse{" +
"result='" + result + '\'' +
", status=" + status +
", createResponseFile=" + createResponseFile +
'}';
}
@Deprecated
public static ModuleResponse newErrorResponse ()
{ // use an exception instead of this
return new ModuleResponse (Constants.EXIT_STATUS_APP_ERROR_STR, ModuleResponseStatus.ERROR, false);
}
public static ModuleResponse newCancelResponse ()
{
return new ModuleResponse (Constants.EXIT_STATUS_USER_CANCEL_STR, ModuleResponseStatus.CANCELLED, false);
}
public static ModuleResponse newResponse (final String result)
{
return new ModuleResponse (result, ModuleResponseStatus.OK, false);
}
public static ModuleResponse newResponse (final int result)
{
return new ModuleResponse (Integer.toString (result), ModuleResponseStatus.OK, false);
}
public static ModuleResponse newFileResponse (final String result)
{
assert result != null;
return new ModuleResponse (result, ModuleResponseStatus.OK, true);
}
public static ModuleResponse newFileResponse (final int result)
{
return new ModuleResponse (Integer.toString (result), ModuleResponseStatus.OK, true);
}
}