X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/IdentifierIndexManager.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/IdentifierIndexManager.java index 8e859cf..1a38bc6 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/IdentifierIndexManager.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/builder/IdentifierIndexManager.java @@ -11,7 +11,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Comparator; import java.util.HashMap; -import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; @@ -33,7 +32,7 @@ import org.eclipse.core.runtime.IStatus; /** * Manages the identifer index information for a specific project - * + * */ public class IdentifierIndexManager { public class LineCreator implements ITerminalSymbols { @@ -47,7 +46,7 @@ public class IdentifierIndexManager { /** * Add the information of the current identifier to the line - * + * * @param typeOfIdentifier * the type of the identifier ('c'lass, 'd'efine, 'f'unction, 'm'ethod(class), 'v'ariable(class) 'g'lobal variable) * @param identifier @@ -65,7 +64,7 @@ public class IdentifierIndexManager { /** * Add the information of the current identifier to the line - * + * * @param typeOfIdentifier * the type of the identifier ('c'lass, 'd'efine, 'f'unction, 'm'ethod(class), 'v'ariable(class) 'g'lobal variable) * @param identifier @@ -111,21 +110,21 @@ public class IdentifierIndexManager { /** * Get the next token from input */ - private void getNextToken() { - try { - fToken = fScanner.getNextToken(); - if (Scanner.DEBUG) { - int currentEndPosition = fScanner.getCurrentTokenEndPosition(); - int currentStartPosition = fScanner.getCurrentTokenStartPosition(); - System.out.print(currentStartPosition + "," + currentEndPosition + ": "); - System.out.println(fScanner.toStringAction(fToken)); - } - return; - } catch (InvalidInputException e) { - // ignore errors - // e.printStackTrace(); + private void getNextToken() throws InvalidInputException { + // try { + fToken = fScanner.getNextToken(); + if (Scanner.DEBUG) { + int currentEndPosition = fScanner.getCurrentTokenEndPosition(); + int currentStartPosition = fScanner.getCurrentTokenStartPosition(); + System.out.print(currentStartPosition + "," + currentEndPosition + ": "); + System.out.println(fScanner.toStringAction(fToken)); } - fToken = TokenNameERROR; + return; + // } catch (InvalidInputException e) { + // // ignore errors + // // e.printStackTrace(); + // } + // fToken = TokenNameERROR; } private void parseDeclarations(char[] parent, StringBuffer buf, boolean goBack) { @@ -268,6 +267,8 @@ public class IdentifierIndexManager { getNextToken(); } } + } catch (InvalidInputException e) { + // ignore errors } catch (SyntaxError e) { // TODO Auto-generated catch block e.printStackTrace(); @@ -284,8 +285,8 @@ public class IdentifierIndexManager { fScanner.setSource(charArray); fScanner.setPHPMode(false); fToken = TokenNameEOF; - getNextToken(); try { + getNextToken(); while (fToken != TokenNameEOF) { // && fToken != TokenNameERROR) { phpdocOffset = -1; hasModifiers = false; @@ -377,6 +378,8 @@ public class IdentifierIndexManager { getNextToken(); } } + } catch (InvalidInputException e) { + // ignore errors } catch (SyntaxError e) { // TODO Auto-generated catch block e.printStackTrace(); @@ -412,7 +415,7 @@ public class IdentifierIndexManager { /** * Check if 2 char arrays are equal - * + * * @param a * @param b * @return @@ -435,7 +438,7 @@ public class IdentifierIndexManager { /** * Add the information for a given IFile resource - * + * */ public void addFile(IFile fileToParse) { // InputStream iStream; @@ -478,7 +481,7 @@ public class IdentifierIndexManager { /** * Adds a line of the index file for function, class, class-method and class-variable names - * + * * @param line */ private void addLine(String line) { @@ -490,20 +493,21 @@ public class IdentifierIndexManager { addIdentifiers(treeMap, file); return treeMap; } + public TreeMap getIdentifiers(String startClazz) { TreeMap treeMap = new TreeMap(new StringComparator()); addIdentifiers(treeMap, startClazz); return treeMap; } - + public void addIdentifiers(TreeMap treeMap, IFile file) { String line = (String) fFileMap.get(file.getProjectRelativePath().toString()); if (line != null) { PHPIdentifierLocation ident; ArrayList allClassNames = new ArrayList(); addLine(treeMap, null, line, allClassNames); - int i=0; - while (i<allClassNames.size()) { + int i = 0; + while (i < allClassNames.size()) { String clazz = (String) allClassNames.get(i++); addClassName(treeMap, clazz, allClassNames); } @@ -514,8 +518,8 @@ public class IdentifierIndexManager { PHPIdentifierLocation ident; ArrayList allClassNames = new ArrayList(); addClassName(treeMap, startClazz, allClassNames); - int i=0; - while (i<allClassNames.size()) { + int i = 0; + while (i < allClassNames.size()) { String clazz = (String) allClassNames.get(i++); addClassName(treeMap, clazz, allClassNames); } @@ -530,7 +534,7 @@ public class IdentifierIndexManager { String line; PHPIdentifierLocation ident; List list = getLocations(clazz); - if (list==null) { + if (list == null) { return false; } boolean result = false; @@ -547,7 +551,7 @@ public class IdentifierIndexManager { /** * Adds a line of the index file for function, class, class-method and class-variable names - * + * * @param line */ public void addLine(TreeMap treeMap, HashMap fileMap, String line, List allClassNames) { @@ -698,7 +702,7 @@ public class IdentifierIndexManager { /** * Change the information for a given IFile resource - * + * */ public void changeFile(IFile fileToParse) { removeFile(fileToParse); @@ -707,17 +711,21 @@ public class IdentifierIndexManager { /** * Get a list of all PHPIdentifierLocation object's associated with an identifier - * + * * @param identifier * @return */ public List getLocations(String identifier) { - return (List) fIndentifierMap.get(identifier); + List list=(List) fIndentifierMap.get(identifier); + if (list!=null) { + return list; + } + return new ArrayList(); } /** * Initialize (i.e. clear) the current index information - * + * */ public void initialize() { fIndentifierMap = new TreeMap(new StringComparator()); @@ -748,7 +756,7 @@ public class IdentifierIndexManager { /** * Remove the information for a given IFile resource - * + * */ public void removeFile(IFile fileToParse) { // String line = (String) @@ -761,7 +769,7 @@ public class IdentifierIndexManager { /** * Removes a line of the index file for function, class, class-method and class-variable names - * + * * @param line */ private void removeLine(String line) { @@ -871,7 +879,7 @@ public class IdentifierIndexManager { /** * Save the current index information in the projects index file - * + * */ public void writeFile() { FileWriter fileWriter;