/******************************************************************************* * Copyright (c) 2000, 2003 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Common Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/cpl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package net.sourceforge.phpdt.core; /** * Common protocol for Java elements that have associated source code. This set * consists of IClassFile, ICompilationUnit, * IPackageDeclaration, IImportDeclaration, * IImportContainer, IType, IField, * IMethod, and IInitializer. * *

* Note: For IClassFile, IType and other members * derived from a binary type, the implementation returns source iff the element * has attached source code. *

*

* Source reference elements may be working copies if they were created from a * compilation unit that is a working copy. *

*

* This interface is not intended to be implemented by clients. *

* * @see IPackageFragmentRoot#attachSource */ public interface ISourceReference { /** * Returns whether this element exists in the model. * * @return true if this element exists in the Java model * @since 2.0 */ boolean exists(); /** * Returns the source code associated with this element. This extracts the * substring from the source buffer containing this source element. This * corresponds to the source range that would be returned by * getSourceRange. *

* For class files, this returns the source of the entire compilation unit * associated with the class file (if there is one). *

* * @return the source code, or null if this element has no * associated source code * @exception JavaModelException * if this element does not exist or if an exception occurs * while accessing its corresponding resource */ String getSource() throws JavaModelException; /** * Returns the source range associated with this element. *

* For class files, this returns the range of the entire compilation unit * associated with the class file (if there is one). *

* * @return the source range, or null if this element has no * associated source code * @exception JavaModelException * if this element does not exist or if an exception occurs * while accessing its corresponding resource */ ISourceRange getSourceRange() throws JavaModelException; }