/*******************************************************************************
* Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is 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:
* Exadel, Inc. and Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.common.log;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.MultiStatus;
import org.eclipse.core.runtime.Status;
/**
* This class should be deprecated in favor of
* org.jboss.tools.foundation.core.log.StatusFactory
*/
public class StatusFactory {
public final static int UNDEFINED_ERROR = 0;
public final static String UNSPECIFIED_MESSAGE = null;
public final static String EMPTY_MESSAGE = ""; //$NON-NLS-1$
public static IStatus getInstance(int severity, String pluginId,
int code, String message, Throwable t) {
return new Status(severity, pluginId, code, checkMessage(message, t), t);
}
public static IStatus getInstance(int severity, String pluginId,
String message, Throwable t) {
return getInstance(severity, pluginId, UNDEFINED_ERROR, message, t);
}
public static IStatus getInstance(int severity, String pluginId,
String message) {
return getInstance(severity, pluginId, UNDEFINED_ERROR, message, null);
}
public static IStatus getInstance(int severity, String pluginId,
Throwable t) {
return getInstance(severity, pluginId, UNDEFINED_ERROR, EMPTY_MESSAGE, t);
}
public static IStatus getInstance(int severity, String pluginId,
int code, Throwable t) {
return getInstance(severity, pluginId, code, EMPTY_MESSAGE, t);
}
public static IStatus getInstance(int severity, String pluginId,
int code, String message) {
return getInstance(severity, pluginId, code, message, null);
}
/**
* Returns a multi status with the given severity, plugin id, error code,
* message, cause and child status instances.
*
* @param severity
* @param pluginId
* @param message
* @param t
* @param status
* @return a multi status
*/
public static IStatus getInstance(int severity, String pluginId, String message, Throwable t, IStatus... status) {
return new MultiStatus(pluginId, UNDEFINED_ERROR, status, message, t);
}
private static String checkMessage(String message, Throwable t) {
if (message == UNSPECIFIED_MESSAGE) {
if (t != null && t.getMessage() != null) {
return t.getMessage();
}
return EMPTY_MESSAGE;
}
return message;
}
}