/******************************************************************************* * Copyright (c) 2006, 2008 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/legal/epl-2.0/ * * SPDX-License-Identifier: EPL-2.0 * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.debug.ui.contexts; import java.util.EventObject; import org.eclipse.core.runtime.Assert; import org.eclipse.jface.viewers.ISelection; /** * A debug context event. Debug context events are generated by debug context * providers. A debug context is represented by a selection and flags * (bit mask) describing how the context has changed. *

* Clients may instantiate this class. *

* @see IDebugContextListener * @see IDebugContextProvider * @since 3.3 * @noextend This class is not intended to be subclassed by clients. */ public class DebugContextEvent extends EventObject { /** * The context */ private ISelection fContext; /** * Change flags. */ private int fFlags; /** * Change constant (bit mask) indicating a context has been activated. */ public static final int ACTIVATED = 0x01; /** * Change constant (bit mask) indicating the state of a context has changed. * State changes are only broadcast for previously activated contexts. */ public static final int STATE = 0x10; /** * Generated serial version UID for this class. */ private static final long serialVersionUID = 3395172504615255524L; /** * Constructs a new debug context event. * * @param source source of the event - a debug context provider * @param context the relevant context * @param flags bit mask indicating how the context has changed - see change constants * defined in this class */ public DebugContextEvent(IDebugContextProvider source, ISelection context, int flags) { super(source); Assert.isNotNull(context, "DebugContextEvent context must not be null"); //$NON-NLS-1$ fContext = context; fFlags = flags; } /** * Returns the debug context associated with this event. * * @return debug context, possible an empty selection */ public ISelection getContext() { return fContext; } /** * Returns flags which describe in more detail how a context has changed. * See change constants defined in this class. * * @return event flags */ public int getFlags() { return fFlags; } /** * Returns the context provider that initiated this event. * * @return context provider */ public IDebugContextProvider getDebugContextProvider() { return (IDebugContextProvider) getSource(); } }