/* | |
* Copyright (C) 2012 The Android Open Source Project | |
* | |
* 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.motorolamobility.studio.android.db.core; | |
import org.eclipse.core.runtime.Assert; | |
import org.eclipse.core.runtime.IStatus; | |
import org.eclipse.core.runtime.MultiStatus; | |
public class CanRefreshStatus extends MultiStatus | |
{ | |
/** | |
* Status type severity (bit mask, value 16) indicating that a user interaction will be needed. | |
* in this case a Yes/no dialog must be displayed using this status messages as dialog message. | |
* @see #getSeverity() | |
* @see #matches(int) | |
*/ | |
public static final int ASK_USER = 0x10; | |
/** | |
* Status type severity (bit mask, value 16) indicating that a user interaction will be needed. | |
* in this case a Yes/no/cancel dialog must be displayed using this status messages as dialog message. | |
* Yes/No response will be sent to refresh, cancel will cancel the refresh | |
* @see #getSeverity() | |
* @see #matches(int) | |
*/ | |
public static final int CANCELABLE = 0x20; | |
/** | |
* Builds a new {@link CanRefreshStatus} instance | |
* @param pluginId the plug-in id. | |
* @param severity the severity code. | |
* @param newChildren new Status's children. (can't be null) | |
* @param message The new status message. | |
* @param exception The {@link Throwable} that caused the error, if any. (Can be null). | |
*/ | |
public CanRefreshStatus(int severity, String pluginId, IStatus[] newChildren, String message, | |
Throwable exception) | |
{ | |
super(pluginId, OK, newChildren, message, exception); | |
setSeverity(severity); | |
} | |
/** | |
* Builds a new {@link CanRefreshStatus} instance | |
* @param pluginId the plug-in id. | |
* @param severity the severity code. | |
* @param message The new status message. | |
* @param exception The {@link Throwable} that caused the error, if any. (Can be null). | |
*/ | |
public CanRefreshStatus(int severity, String pluginId, String message, Throwable exception) | |
{ | |
super(pluginId, OK, message, exception); | |
setSeverity(severity); | |
} | |
/** | |
* Builds a new {@link CanRefreshStatus} instance | |
* @param pluginId the plug-in id. | |
* @param severity the severity code. | |
* @param newChildren new Status's children. (can't be null) | |
* @param message The new status message. | |
*/ | |
public CanRefreshStatus(int severity, String pluginId, IStatus[] newChildren, String message) | |
{ | |
super(pluginId, OK, newChildren, message, null); | |
setSeverity(severity); | |
} | |
/** | |
* Builds a new {@link CanRefreshStatus} instance | |
* @param pluginId the plug-in id. | |
* @param severity the severity code. | |
* @param message The new status message. | |
*/ | |
public CanRefreshStatus(int severity, String pluginId, String message) | |
{ | |
super(pluginId, OK, message, null); | |
setSeverity(severity); | |
} | |
/** | |
* Sets the severity. | |
* | |
* @param severity the severity; one of <code>OK</code>, <code>ERROR</code>, | |
* <code>INFO</code>, <code>WARNING</code>, or <code>CANCEL</code> | |
*/ | |
@Override | |
protected void setSeverity(int severity) | |
{ | |
Assert.isLegal((severity == OK) || (severity == ERROR) || (severity == WARNING) | |
|| (severity == INFO) || (severity == CANCEL) || (severity == ASK_USER) | |
|| (severity == (ASK_USER | CANCELABLE))); | |
if ((severity & ASK_USER) != 0) | |
{ | |
super.setSeverity(WARNING); | |
} | |
setCode(severity); | |
} | |
/* (non-Javadoc) | |
* @see org.eclipse.core.runtime.Status#matches(int) | |
*/ | |
@Override | |
public boolean matches(int severityMask) | |
{ | |
if ((severityMask & ASK_USER) != 0) | |
{ | |
return (getCode() & severityMask) == severityMask; | |
} | |
return super.matches(severityMask); | |
} | |
} |