All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.core.internal.events.LifecycleEvent Maven / Gradle / Ivy

Go to download

AspectJ tools most notably contains the AspectJ compiler (AJC). AJC applies aspects to Java classes during compilation, fully replacing Javac for plain Java classes and also compiling native AspectJ or annotation-based @AspectJ syntax. Furthermore, AJC can weave aspects into existing class files in a post-compile binary weaving step. This library is a superset of AspectJ weaver and hence also of AspectJ runtime.

There is a newer version: 1.9.22.1
Show newest version
/*******************************************************************************
 * 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.
 */
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
	 */
	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.
	 */
	public IResource resource;
	/**
	 * For copy/move events, this resource represents the destination of the
	 * copy/move.
	 */
	public IResource newResource;

	/**
	 * 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;
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy