1 11 package org.eclipse.jdt.internal.codeassist.select; 12 13 24 25 import org.eclipse.jdt.core.compiler.CharOperation; 26 import org.eclipse.jdt.internal.compiler.ast.QualifiedTypeReference; 27 import org.eclipse.jdt.internal.compiler.lookup.Binding; 28 import org.eclipse.jdt.internal.compiler.lookup.ProblemReasons; 29 import org.eclipse.jdt.internal.compiler.lookup.Scope; 30 import org.eclipse.jdt.internal.compiler.lookup.TypeBinding; 31 32 public class SelectionOnQualifiedTypeReference extends QualifiedTypeReference { 33 public SelectionOnQualifiedTypeReference(char[][] previousIdentifiers, char[] selectionIdentifier, long[] positions) { 34 super( 35 CharOperation.arrayConcat(previousIdentifiers, selectionIdentifier), 36 positions); 37 } 38 public void aboutToResolve(Scope scope) { 39 getTypeBinding(scope.parent); } 41 protected TypeBinding getTypeBinding(Scope scope) { 42 Binding binding = scope.getTypeOrPackage(tokens); 44 if (!binding.isValidBinding()) { 45 if (binding.problemId() == ProblemReasons.NotVisible){ 47 throw new SelectionNodeFound(binding); 48 } 49 scope.problemReporter().invalidType(this, (TypeBinding) binding); 50 throw new SelectionNodeFound(); 51 } 52 53 throw new SelectionNodeFound(binding); 54 } 55 public StringBuffer printExpression(int indent, StringBuffer output) { 56 57 output.append("<SelectOnType:"); for (int i = 0, length = tokens.length; i < length; i++) { 59 if (i > 0) output.append('.'); 60 output.append(tokens[i]); 61 } 62 return output.append('>'); 63 } 64 } 65 | Popular Tags |