/*******************************************************************************
* Copyright (c) 2010 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:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.usage.util;
import java.text.MessageFormat;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
/**
* @author Andre Dietisheim
*/
public class StatusUtils {
private StatusUtils() {
// inhibit instantiation
}
/**
* Returns an error status for a given plugin id, message and arguments.
*
* @param pluginId
* the plugin id
* @param message
* the message
* @param throwable
* the throwable
* @param messageArguments
* the message arguments
* @return the error status
*/
public static IStatus getErrorStatus(String pluginId, String message, Throwable throwable,
Object... messageArguments) {
String formattedMessage = null;
if (message != null) {
formattedMessage = MessageFormat.format(message, messageArguments);
}
return new Status(Status.ERROR, pluginId, Status.ERROR, formattedMessage,
throwable);
}
/**
* Returns an debug status for a given plugin id, message and arguments.
*
* @param pluginId
* the plugin id
* @param message
* the message
* @param messageArguments
* the message arguments
*
* @return the debug status
*/
public static IStatus getInfoStatus(String pluginId, String message, Object... messageArguments) {
return new Status(Status.INFO, pluginId, Status.INFO, MessageFormat.format(message, messageArguments), null);
}
/**
* Clones a given status.
*
* @param status
* the status
*
* @return the i status
*/
public static IStatus clone(IStatus status) {
switch (status.getSeverity()) {
case IStatus.INFO:
return getInfoStatus(status.getPlugin(), status.getMessage());
case IStatus.ERROR:
return getErrorStatus(status.getPlugin(), status.getMessage(), status.getException());
default:
throw new UnsupportedOperationException("noy implemented yet!");
}
}
}