blob: 2ff07ca40bde3921a3af20612b1491144c8fbb63 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010 xored software, Inc.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* xored software, Inc. - initial API and Implementation (Alex Panchenko)
*******************************************************************************/
package org.eclipse.dltk.core.builder;
import java.util.List;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResourceDelta;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.dltk.core.IScriptProject;
import org.eclipse.dltk.core.ISourceModule;
/**
* The changes happened in the project.
*
* In full build "getChanged*" methods return all project data, other methods
* return empty lists.
*/
public interface IProjectChange {
/**
* Default mode: return only non-source modules including new files after
* rename
*/
int DEFAULT = 0;
/**
* Return all resources (don't exclude source modules) including new files
* after rename
*/
int ALL = 4;
/**
* Exclude renamed resources from the returned lists
*/
int NO_RENAMES = 8;
/**
* Include additions
*/
int ADDED = 1;
/**
* Include changes
*/
int CHANGED = 2;
int BEFORE = 16;
/**
* Returns the project
*
* @return
*/
IProject getProject();
/**
* Returns the script project
*
* @return
*/
IScriptProject getScriptProject();
/**
* Returns the {@link IResourceDelta} for incremental build or
* <code>null</code> for full.
*
* @return
*/
IResourceDelta getResourceDelta();
/**
* Returns the list of deleted paths.
*
* @param options
* {@link IProjectChange#DEFAULT},
* {@link IProjectChange#NO_RENAMES} don't include renamed files
* @return
* @throws CoreException
*/
List<IPath> getDeletes(int options) throws CoreException;
/**
* Returns the list of renames.
*
* @return
* @throws CoreException
*/
List<IRenameChange> getRenames() throws CoreException;
/**
* Returns the list of added or changed resources. The list includes renamed
* resources (under new names) as well.
*
* @param options
* {@link IProjectChange#DEFAULT}, {@link IProjectChange#ALL},
* {@link IProjectChange#NO_RENAMES},
* {@link IProjectChange#ADDED}, {@link IProjectChange#CHANGED}
* @return
* @throws CoreException
*/
List<IFile> getResources(int options) throws CoreException;
/**
* Returns the list of added or changed source modules. The list includes
* renamed source modules (under new names) as well.
*
* @param options
* <ul>
* <li>{@link IProjectChange#DEFAULT}
* <li>{@link IProjectChange#ADDED}
* <li>{@link IProjectChange#CHANGED}
* </ul>
* @return
* @throws CoreException
*/
List<ISourceModule> getSourceModules(int options) throws CoreException;
}