X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/corext/template/php/CompilationUnitCompletion.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/corext/template/php/CompilationUnitCompletion.java index 2332163..eae8473 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/corext/template/php/CompilationUnitCompletion.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/corext/template/php/CompilationUnitCompletion.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. + * Copyright (c) 2000, 2004 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 @@ -12,259 +12,239 @@ package net.sourceforge.phpdt.internal.corext.template.php; import java.util.ArrayList; import java.util.HashMap; -import java.util.Iterator; +//import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.Vector; +//import java.util.Vector; import net.sourceforge.phpdt.core.CompletionRequestorAdapter; import net.sourceforge.phpdt.core.ICompilationUnit; -import net.sourceforge.phpdt.core.JavaModelException; import net.sourceforge.phpdt.core.compiler.IProblem; - - /** - * A completion requestor to collect informations on local variables. - * This class is used for guessing variable names like arrays, collections, etc. + * A completion requestor to collect informations on local variables. This class + * is used for guessing variable names like arrays, collections, etc. */ class CompilationUnitCompletion extends CompletionRequestorAdapter { static class LocalVariable { String name; + String typePackageName; + String typeName; - + LocalVariable(String name, String typePackageName, String typeName) { - this.name= name; - this.typePackageName= typePackageName; - this.typeName= typeName; + this.name = name; + this.typePackageName = typePackageName; + this.typeName = typeName; } } - private ICompilationUnit fUnit; + //private ICompilationUnit fUnit; - private List fLocalVariables= new ArrayList(); - private Map fTypes= new HashMap(); + private List fLocalVariables = new ArrayList(); + private Map fTypes = new HashMap(); - private boolean fError; + //private boolean fError; /** * Creates a compilation unit completion. * - * @param unit the compilation unit, may be null. + * @param unit + * the compilation unit, may be null. */ public CompilationUnitCompletion(ICompilationUnit unit) { reset(unit); } - + /** * Resets the completion requestor. * - * @param unit the compilation unit, may be null. + * @param unit + * the compilation unit, may be null. */ public void reset(ICompilationUnit unit) { - fUnit= unit; - + //fUnit = unit; + fLocalVariables.clear(); fTypes.clear(); - - fError= false; + + //fError = false; } /* * @see ICompletionRequestor#acceptError(IProblem) */ public void acceptError(IProblem error) { - fError= true; + //fError = true; } - /* * @see ICodeCompletionRequestor#acceptLocalVariable */ - public void acceptLocalVariable(char[] name, char[] typePackageName, char[] typeName, - int modifiers, int completionStart, int completionEnd, int relevance) - { - fLocalVariables.add(new LocalVariable( - new String(name), new String(typePackageName), new String(typeName))); + public void acceptLocalVariable(char[] name, char[] typePackageName, + char[] typeName, int modifiers, int completionStart, + int completionEnd, int relevance) { + fLocalVariables.add(new LocalVariable(new String(name), new String( + typePackageName), new String(typeName))); } - // --- /** * Tests if the code completion process produced errors. */ - public boolean hasErrors() { - return fError; - } - - - boolean existsLocalName(String name) { - for (Iterator iterator = fLocalVariables.iterator(); iterator.hasNext();) { - LocalVariable localVariable = (LocalVariable) iterator.next(); - - if (localVariable.name.equals(name)) - return true; - } - - return false; - } - - String[] getLocalVariableNames() { - String[] res= new String[fLocalVariables.size()]; - int i= 0; - for (Iterator iterator = fLocalVariables.iterator(); iterator.hasNext();) { - LocalVariable localVariable = (LocalVariable) iterator.next(); - res[i++]= localVariable.name; - } - return res; - } - - LocalVariable[] findLocalArrays() { - Vector vector= new Vector(); - - for (Iterator iterator= fLocalVariables.iterator(); iterator.hasNext();) { - LocalVariable localVariable= (LocalVariable) iterator.next(); - - if (isArray(localVariable.typeName)) - vector.add(localVariable); - } - - return (LocalVariable[]) vector.toArray(new LocalVariable[vector.size()]); - } - - LocalVariable[] findLocalCollections() throws JavaModelException { - Vector vector= new Vector(); - - for (Iterator iterator= fLocalVariables.iterator(); iterator.hasNext();) { - LocalVariable localVariable= (LocalVariable) iterator.next(); - - String typeName= qualify(localVariable.typeName); - - if (typeName == null) - continue; - - if (isSubclassOf(typeName, "java.util.Collection")) //$NON-NLS-1$ - vector.add(localVariable); - } - - return (LocalVariable[]) vector.toArray(new LocalVariable[vector.size()]); - } - - String simplifyTypeName(String qualifiedName) { - return (String) fTypes.get(qualifiedName); - } - - private LocalVariable[] findLocalIntegers() { - Vector vector= new Vector(); +// public boolean hasErrors() { +// return fError; +// } - for (Iterator iterator= fLocalVariables.iterator(); iterator.hasNext();) { - LocalVariable localVariable= (LocalVariable) iterator.next(); - - if (localVariable.typeName.equals("int")) //$NON-NLS-1$ - vector.add(localVariable); - } - - return (LocalVariable[]) vector.toArray(new LocalVariable[vector.size()]); - } - - private LocalVariable[] findLocalIterator() throws JavaModelException { - Vector vector= new Vector(); - - for (Iterator iterator= fLocalVariables.iterator(); iterator.hasNext();) { - LocalVariable localVariable= (LocalVariable) iterator.next(); - - String typeName= qualify(localVariable.typeName); - - if (typeName == null) - continue; - - if (isSubclassOf(typeName, "java.util.Iterator")) //$NON-NLS-1$ - vector.add(localVariable); - } - - return (LocalVariable[]) vector.toArray(new LocalVariable[vector.size()]); - } - - private static boolean isArray(String type) { - return type.endsWith("[]"); //$NON-NLS-1$ - } - - // returns fully qualified name if successful - private String qualify(String typeName) throws JavaModelException { - if (fUnit == null) - return null; - -// IType[] types= fUnit.getTypes(); +// boolean existsLocalName(String name) { +// for (Iterator iterator = fLocalVariables.iterator(); iterator.hasNext();) { +// LocalVariable localVariable = (LocalVariable) iterator.next(); // -// if (types.length == 0) -// return null; -// -// String[][] resolvedTypeNames= types[0].resolveType(typeName); +// if (localVariable.name.equals(name)) +// return true; +// } // -// if (resolvedTypeNames == null) -// return null; -// -// return resolvedTypeNames[0][0] + '.' + resolvedTypeNames[0][1]; - return null; - } - - // type names must be fully qualified - private boolean isSubclassOf(String typeName0, String typeName1) throws JavaModelException { - if (typeName0.equals(typeName1)) - return true; +// return false; +// } + +// String[] getLocalVariableNames() { +// String[] res = new String[fLocalVariables.size()]; +// int i = 0; +// for (Iterator iterator = fLocalVariables.iterator(); iterator.hasNext();) { +// LocalVariable localVariable = (LocalVariable) iterator.next(); +// res[i++] = localVariable.name; +// } +// return res; +// } + +// LocalVariable[] findLocalArrays() { +// Vector vector = new Vector(); +// +// for (Iterator iterator = fLocalVariables.iterator(); iterator.hasNext();) { +// LocalVariable localVariable = (LocalVariable) iterator.next(); +// +// if (isArray(localVariable.typeName)) +// vector.add(localVariable); +// } +// +// return (LocalVariable[]) vector +// .toArray(new LocalVariable[vector.size()]); +// } + + // LocalVariable[] findLocalCollections() throws JavaModelException { + // Vector vector= new Vector(); + // + // for (Iterator iterator= fLocalVariables.iterator(); iterator.hasNext();) + // { + // LocalVariable localVariable= (LocalVariable) iterator.next(); + // + // String typeName= qualify(localVariable.typeName); + // + // if (typeName == null) + // continue; + // + // if (isSubclassOf(typeName, "java.util.Collection")) //$NON-NLS-1$ + // vector.add(localVariable); + // } + // + // return (LocalVariable[]) vector.toArray(new + // LocalVariable[vector.size()]); + // } + +// String simplifyTypeName(String qualifiedName) { +// return (String) fTypes.get(qualifiedName); +// } + +// private static boolean isArray(String type) { +// return type.endsWith("[]"); //$NON-NLS-1$ +// } - if (fUnit == null) - return false; + // returns fully qualified name if successful + // private String qualify(String typeName) throws JavaModelException { + // if (fUnit == null) + // return null; + // + // IType[] types= fUnit.getTypes(); + // + // if (types.length == 0) + // return null; + // + // String[][] resolvedTypeNames= types[0].resolveType(typeName); + // + // if (resolvedTypeNames == null) + // return null; + // + // return resolvedTypeNames[0][0] + '.' + resolvedTypeNames[0][1]; + // } -// IJavaProject project= fUnit.getJavaProject(); -// IType type0= project.findType(typeName0); -// IType type1= project.findType(typeName1); -// -// ITypeHierarchy hierarchy= type0.newSupertypeHierarchy(null); -// IType[] superTypes= hierarchy.getAllSupertypes(type0); -// -// for (int i= 0; i < superTypes.length; i++) -// if (superTypes[i].equals(type1)) -// return true; - - return false; - } + // type names must be fully qualified + // private boolean isSubclassOf(String typeName0, String typeName1) throws + // JavaModelException { + // if (typeName0.equals(typeName1)) + // return true; + // + // if (fUnit == null) + // return false; + // + // IJavaProject project= fUnit.getJavaProject(); + // + // IType type0= project.findType(typeName0); + // if (type0 == null) + // return false; + // + // IType type1= project.findType(typeName1); + // if (type1 == null) + // return false; + // + // ITypeHierarchy hierarchy= type0.newSupertypeHierarchy(null); + // IType[] superTypes= hierarchy.getAllSupertypes(type0); + // + // for (int i= 0; i < superTypes.length; i++) + // if (superTypes[i].equals(type1)) + // return true; + // + // return false; + // } /* - * @see org.eclipse.jdt.core.ICompletionRequestor#acceptClass(char[], char[], char[], int, int, int, int) + * @see net.sourceforge.phpdt.core.ICompletionRequestor#acceptClass(char[], + * char[], char[], int, int, int, int) */ - public void acceptClass(char[] packageName, char[] className, char[] completionName, int modifiers, - int completionStart, int completionEnd, int relevance) - { - final String qualifiedName= createQualifiedTypeName(packageName, className); + public void acceptClass(char[] packageName, char[] className, + char[] completionName, int modifiers, int completionStart, + int completionEnd, int relevance) { + final String qualifiedName = createQualifiedTypeName(packageName, + className); fTypes.put(qualifiedName, String.valueOf(completionName)); } /* - * @see org.eclipse.jdt.core.ICompletionRequestor#acceptInterface(char[], char[], char[], int, int, int, int) + * @see net.sourceforge.phpdt.core.ICompletionRequestor#acceptInterface(char[], + * char[], char[], int, int, int, int) */ - public void acceptInterface(char[] packageName, char[] interfaceName, char[] completionName, - int modifiers, int completionStart, int completionEnd, int relevance) - { - final String qualifiedName= createQualifiedTypeName(packageName, interfaceName); + public void acceptInterface(char[] packageName, char[] interfaceName, + char[] completionName, int modifiers, int completionStart, + int completionEnd, int relevance) { + final String qualifiedName = createQualifiedTypeName(packageName, + interfaceName); fTypes.put(qualifiedName, String.valueOf(completionName)); } - private static String createQualifiedTypeName(char[] packageName, char[] className) { - StringBuffer buffer= new StringBuffer(); + private static String createQualifiedTypeName(char[] packageName, + char[] className) { + StringBuffer buffer = new StringBuffer(); if (packageName.length != 0) { buffer.append(packageName); buffer.append('.'); } buffer.append(className); - + return buffer.toString(); } } -