Copyright (c) 2000, 2011 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 Serge Beauchamp (Freescale Semiconductor) - [229633] Group Support
/******************************************************************************* * Copyright (c) 2000, 2011 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 * Serge Beauchamp (Freescale Semiconductor) - [229633] Group Support *******************************************************************************/
package org.eclipse.core.internal.events; import org.eclipse.core.resources.IResource;
Class used for broadcasting internal workspace lifecycle events. There is a singleton instance, so no listener is allowed to keep references to the event after the notification is finished.
/** * Class used for broadcasting internal workspace lifecycle events. There is a * singleton instance, so no listener is allowed to keep references to the event * after the notification is finished. */
public class LifecycleEvent { //constants for kinds of internal workspace lifecycle events public static final int PRE_PROJECT_CLOSE = 0x01; public static final int POST_PROJECT_CHANGE = 0x02; public static final int PRE_PROJECT_COPY = 0x04; public static final int PRE_PROJECT_CREATE = 0x08; public static final int PRE_PROJECT_DELETE = 0x10; public static final int PRE_PROJECT_OPEN = 0x20; public static final int PRE_PROJECT_MOVE = 0x40; public static final int PRE_LINK_COPY = 0x100; public static final int PRE_LINK_CREATE = 0x200; public static final int PRE_LINK_DELETE = 0x400; public static final int PRE_LINK_MOVE = 0x800; public static final int PRE_REFRESH = 0x1000; public static final int PRE_GROUP_COPY = 0x2000; public static final int PRE_GROUP_CREATE = 0x4000; public static final int PRE_GROUP_DELETE = 0x8000; public static final int PRE_GROUP_MOVE = 0x10000; public static final int PRE_FILTER_ADD = 0x20000; public static final int PRE_FILTER_REMOVE = 0x40000; public static final int PRE_LINK_CHANGE = 0x80000;
The kind of event
/** * The kind of event */
public int kind;
For events that only involve one resource, this is it. More specifically, this is used for all events that don't involve a more or copy. For copy/move events, this resource represents the source of the copy/move.
/** * For events that only involve one resource, this is it. More * specifically, this is used for all events that don't involve a more or * copy. For copy/move events, this resource represents the source of the * copy/move. */
public IResource resource;
For copy/move events, this resource represents the destination of the copy/move.
/** * For copy/move events, this resource represents the destination of the * copy/move. */
public IResource newResource;
The update flags for the event.
/** * The update flags for the event. */
public int updateFlags; private static final LifecycleEvent instance = new LifecycleEvent(); private LifecycleEvent() { super(); } public static LifecycleEvent newEvent(int kind, IResource resource) { instance.kind = kind; instance.resource = resource; instance.newResource = null; instance.updateFlags = 0; return instance; } public static LifecycleEvent newEvent(int kind, IResource oldResource, IResource newResource, int updateFlags) { instance.kind = kind; instance.resource = oldResource; instance.newResource = newResource; instance.updateFlags = updateFlags; return instance; } }