All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.izforge.izpack.installer.CompileResult Maven / Gradle / Ivy

/*
 * IzPack - Copyright 2001-2008 Julien Ponge, All Rights Reserved.
 * 
 * http://izpack.org/
 * http://izpack.codehaus.org/
 * 
 * Copyright 2003 Tino Schwarze
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *     http://www.apache.org/licenses/LICENSE-2.0
 *     
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.izforge.izpack.installer;

import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.List;

/**
 * This class describes the result of the compilation.
 * 

* This class is here because error handling is not straight-forward with regard to compilation. *

* The error condition consists of an error message, the full command line which failed to execute * plus it's stdout and stderr. The reason for this class to exist is that there are three possible * reactions to the error (chosen by the user). *

    *
  1. abort
  2. *
  3. ignore (continue anyway)
  4. *
  5. reconfigure
  6. *
* * @author Tino Schwarze */ public class CompileResult { // -------- public constants --------------- // arbitrary values public final static int SUCCESS = 42; public final static int FAILED = 23; public final static int ACTION_ABORT = 27; public final static int ACTION_CONTINUE = 39; public final static int ACTION_RECONFIGURE = 31; // -------- private variables --------------- // we're optimistic... private int status = SUCCESS; // here we're pessimistic private int action = ACTION_ABORT; /** * the error message */ private String message = null; /** * the command line */ private List cmdline = null; /** * the stdout of the command */ private String stdout = null; /** * the stderr of the command */ private String stderr = null; /** * constructor, create a new successful result */ public CompileResult() { this.status = SUCCESS; this.action = ACTION_CONTINUE; } /** * Creates a result because of exception. * * @param anException The exception. */ public CompileResult(Exception anException) { StringWriter writer = new StringWriter(); anException.printStackTrace(new PrintWriter(writer)); this.message = writer.toString(); this.action = ACTION_ABORT; this.status = FAILED; } /** * creates a new CompileResult with status FAILED * * @param message description of the exception * @param cmdline full command line of failed command * @param stdout standard output of failed command * @param stderr standard error of failed command */ public CompileResult(String message, List cmdline, String stdout, String stderr) { this.message = message; this.status = FAILED; this.cmdline = cmdline; this.stdout = stdout; this.stderr = stderr; } public void setStatus(int status) { if ((status == SUCCESS) || (status == FAILED)) { this.status = status; } } public int getStatus() { return this.status; } public void setAction(int action) { if ((action == ACTION_ABORT) || (action == ACTION_CONTINUE) || (action == ACTION_RECONFIGURE)) { this.action = action; } } public int getAction() { return this.action; } /** * check for success (convenience function) */ public boolean isSuccess() { return (this.status == SUCCESS); } /** * check whether to abort (convenience function) */ public boolean isAbort() { return ((this.status == FAILED) && (this.action == ACTION_ABORT)); } /** * check whether to continue (convenience function) * * @return true if status is SUCCESS or action is CONTINUE */ public boolean isContinue() { return ((this.status == SUCCESS) || (this.action == ACTION_CONTINUE)); } /** * check whether to reconfigure (convenience function) */ public boolean isReconfigure() { return ((this.status == FAILED) && (this.action == ACTION_RECONFIGURE)); } /** * return error message * * @return the error message describing the action that failed (might be null) */ public String getMessage() { return this.message; } /** * get command line of failed command as a string * * @return command line of failed command */ public String getCmdline() { StringBuffer sb = new StringBuffer(); for (String aCmdline : this.cmdline) { if (sb.length() > 0) { sb.append(' '); } sb.append(aCmdline); } return sb.toString(); } public String getStdout() { return this.stdout; } public String getStderr() { return this.stderr; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy