| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package flash.tools.debugger; |
| |
| /** |
| * A SourceFile contains information about a specific segment |
| * of ActionScript source code. The source code could be |
| * derived from a number of locations; an ActionScript file, a |
| * snip-it of code from a frame, compiler generated code, etc. |
| */ |
| public interface SourceFile |
| { |
| /** |
| * Base path for this filename, without the package-name portion. For |
| * example, if class mx.controls.Button.as was in |
| * C:\flex\sdk\frameworks\mx\controls\Button.as, then getBasePath() |
| * would return "C:\flex\sdk\frameworks" (note that the "mx\controls" |
| * part would NOT be returned). |
| * @return base path, or null |
| */ |
| public String getBasePath(); |
| |
| /** |
| * Get the package name portion of the path for this file. For example, if |
| * class mx.controls.Button.as was in |
| * C:\flex\sdk\frameworks\mx\controls\Button.as, then getPackageName() would |
| * return "mx\controls". |
| * |
| * @return package name, or "" (never null) |
| */ |
| public String getPackageName(); |
| |
| /** |
| * File name of this SourceFile. In the case of a disk-based SourceFile, |
| * this is the same as the filename with no path, e.g. 'myfile.as' |
| * @return filename, or "" (never null) |
| */ |
| public String getName(); |
| |
| /** |
| * Full path and file name, if its exists, for this SourceFile. For |
| * disk-based SourceFiles, this is equivalent to |
| * <code>getBasePath + slash + getPackageName() + slash + getName()</code> |
| * where "slash" is a platform-specific slash character. |
| * @return path, never null |
| */ |
| public String getFullPath(); |
| |
| /** |
| * Raw, unprocessed file name for this SourceFile. |
| * @since As of Version 2 |
| */ |
| public String getRawName(); |
| |
| /** |
| * Returns the number of source lines in the given file |
| * @return -1 indicates an error. Call getError() to |
| * obtain specific reason code. |
| */ |
| public int getLineCount(); |
| |
| /** |
| * Return a unique identifier for this SourceFile. |
| */ |
| public int getId(); |
| |
| /** |
| * Obtains the textual content of the given line |
| * from within a source file. |
| * Line numbers start at 1 and go to getLineCount(). |
| * |
| * @return the line of source of the file. Any carriage |
| * return and/or line feed are stripped from the |
| * end of the string. |
| */ |
| public String getLine(int lineNum); |
| |
| /** |
| *--------------------------------------------------- |
| * WARNING: The functions below will return null |
| * and/or 0 values while |
| * Session.fileMetaDataLoaded() is false. |
| *--------------------------------------------------- |
| */ |
| |
| /** |
| * Return the function name for a given line number, or <code>null</code> |
| * if not known or if the line matches more than one function. |
| * @since Version 3. |
| */ |
| public String getFunctionNameForLine(Session s, int lineNum); |
| |
| /** |
| * Return the line number for the given function name |
| * if it doesn't exists -1 is returned |
| */ |
| public int getLineForFunctionName(Session s, String name); |
| |
| /** |
| * Get a list of all function names for this SourceFile |
| */ |
| public String[] getFunctionNames(Session s); |
| |
| /** |
| * Return the offset within the SWF for a given line |
| * number. |
| */ |
| public int getOffsetForLine(int lineNum); |
| } |