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

org.eclipse.core.resources.IProjectNature 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, 2009 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.core.resources;

import org.eclipse.core.runtime.CoreException;

/**
 * Interface for project nature runtime classes.
 * It can configure a project with the project nature, or de-configure it.
 * When a project is configured with a project nature, this is
 * recorded in the list of project natures on the project.
 * Individual project natures may expose a more specific runtime type,
 * with additional API for manipulating the project in a
 * nature-specific way.
 * 

* Clients may implement this interface. *

* * @see IProject#getNature(String) * @see IProject#hasNature(String) * @see IProjectDescription#getNatureIds() * @see IProjectDescription#hasNature(String) * @see IProjectDescription#setNatureIds(String[]) */ public interface IProjectNature { /** * Configures this nature for its project. This is called by the workspace * when natures are added to the project using IProject.setDescription * and should not be called directly by clients. The nature extension * id is added to the list of natures before this method is called, * and need not be added here. * * Exceptions thrown by this method will be propagated back to the caller * of IProject.setDescription, but the nature will remain in * the project description. * * @exception CoreException if this method fails. */ void configure() throws CoreException; /** * De-configures this nature for its project. This is called by the workspace * when natures are removed from the project using * IProject.setDescription and should not be called directly by * clients. The nature extension id is removed from the list of natures before * this method is called, and need not be removed here. * * Exceptions thrown by this method will be propagated back to the caller * of IProject.setDescription, but the nature will still be * removed from the project description. * * * @exception CoreException if this method fails. */ void deconfigure() throws CoreException; /** * Returns the project to which this project nature applies. * * @return the project handle */ IProject getProject(); /** * Sets the project to which this nature applies. * Used when instantiating this project nature runtime. * This is called by IProject.create() or * IProject.setDescription() * and should not be called directly by clients. * * @param project the project to which this nature applies */ void setProject(IProject project); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy