/* * Copyright (c) 2010-2012 Research In Motion Limited. All rights reserved. * * This program and the accompanying materials are made available * under the terms of the Eclipse Public License, Version 1.0, * which accompanies this distribution and is available at * * http://www.eclipse.org/legal/epl-v10.html * */ package net.rim.ejde.internal.util; import net.rim.ejde.internal.core.ContextManager; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.MultiStatus; import org.eclipse.core.runtime.Status; /** * Utility class to auto-create Status objects for this plugin * * @author bchabot, cmalinescu */ public class StatusFactory { private StatusFactory() { } /** * Create error status * * @param message * @param exception * @return */ public static IStatus createErrorStatus( String message, Throwable exception ) { return new Status( IStatus.ERROR, ContextManager.PLUGIN_ID, IStatus.ERROR, message, exception ); } /** * Create error status * * @param message * @return */ public static IStatus createErrorStatus( String message ) { return createErrorStatus( message, null ); } /** * Create status of given type * * @param severity * @param message * @return */ public static IStatus createStatus( int severity, String message ) { return new Status( severity, ContextManager.PLUGIN_ID, severity, message, null ); } /** * Create warning status * * @param message * @param exception * @return */ public static IStatus createWarningStatus( String message ) { return new Status( IStatus.WARNING, ContextManager.PLUGIN_ID, IStatus.WARNING, message, null ); } /** * Create info status * * @param message * @param exception * @return */ public static IStatus createinfoStatus( String message ) { return new Status( IStatus.INFO, ContextManager.PLUGIN_ID, IStatus.INFO, message, null ); } /** * Merge's two status objects together * * @param currentStatus * @param newStatus * @return merged status */ public static IStatus mergeStatus( IStatus currentStatus, IStatus newStatus ) { MultiStatus multiStatus = null; if( currentStatus instanceof MultiStatus ) { multiStatus = (MultiStatus) currentStatus; } else { multiStatus = new MultiStatus( ContextManager.PLUGIN_ID, IStatus.OK, "", null ); multiStatus.add( currentStatus ); } multiStatus.merge( newStatus ); return multiStatus; } /** * Creates a blank MultiStatus with given message * * @param msg * @return */ public static MultiStatus createMultiStatus( String msg ) { return new MultiStatus( ContextManager.PLUGIN_ID, IStatus.OK, msg, null ); } }