/******************************************************************************* * Copyright (c) 2008 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 org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.IPath; import org.eclipse.dltk.ast.declarations.ModuleDeclaration; import org.eclipse.dltk.compiler.env.IModuleSource; import org.eclipse.dltk.compiler.problem.IProblemReporter; import org.eclipse.dltk.compiler.task.ITaskReporter; import org.eclipse.dltk.core.ISourceModule; import org.eclipse.dltk.core.environment.IFileHandle; /** * The context of the building a module. * * @noimplement This interface is not intended to be implemented by clients. */ public interface IBuildContext extends IModuleSource { /** * The name of the attribute to store the {@link ModuleDeclaration} * instance. */ public static final String ATTR_MODULE_DECLARATION = ModuleDeclaration.class .getName(); int FULL_BUILD = IScriptBuilder.FULL_BUILD; int INCREMENTAL_BUILD = IScriptBuilder.INCREMENTAL_BUILD; int RECONCILE_BUILD = 10; int getBuildType(); /** * Returns the contents of the source module * * @return */ char[] getContents(); /** * Returns the source module being compiled * * @return */ ISourceModule getSourceModule(); ISourceLineTracker getLineTracker(); IProblemReporter getProblemReporter(); ITaskReporter getTaskReporter(); /** * Returns the workspace {@link IFile} being compiled or <code>null</code> * if building external module. * * @return */ IFile getFile(); /** * Returns the external {@link IFileHandle} being compiled * * @return */ IFileHandle getFileHandle(); /** * Returns the value of the specified attribute. * * {@link org.eclipse.dltk.ast.declarations.ModuleDeclaration} have the key * org.eclipse.dltk.ast.declarations.ModuleDeclaration.class.getName(). If * there are unrecoverable compilation errors then it would be * <code>null</code> * * @param attribute * @return */ Object get(String attribute); /** * Sets the value of the specified attribute * * @param attribute * @param value */ void set(String attribute, Object value); /** * Records the dependency on the current module on the specified file. * * @param dependency * @param flags * @since 5.0 * @see IBuildState#recordDependency(IPath, IPath, int) */ void recordDependency(IPath dependency, int flags); }