1 11 package org.eclipse.jdt.internal.core; 12 13 import java.util.HashMap ; 14 15 import org.eclipse.core.runtime.IProgressMonitor; 16 import org.eclipse.jdt.core.*; 17 import org.eclipse.jdt.core.IMember; 18 import org.eclipse.jdt.core.ITypeParameter; 19 import org.eclipse.jdt.core.JavaModelException; 20 import org.eclipse.jdt.core.compiler.CharOperation; 21 22 public class TypeParameter extends SourceRefElement implements ITypeParameter { 23 24 static final ITypeParameter[] NO_TYPE_PARAMETERS = new ITypeParameter[0]; 25 26 protected String name; 27 28 public TypeParameter(JavaElement parent, String name) { 29 super(parent); 30 this.name = name; 31 } 32 33 public boolean equals(Object o) { 34 if (!(o instanceof TypeParameter)) return false; 35 return super.equals(o); 36 } 37 38 41 protected void generateInfos(Object info, HashMap newElements, IProgressMonitor pm) throws JavaModelException { 42 Openable openableParent = (Openable)getOpenableParent(); 43 if (JavaModelManager.getJavaModelManager().getInfo(openableParent) == null) { 44 openableParent.generateInfos(openableParent.createElementInfo(), newElements, pm); 45 } 46 } 47 48 public String [] getBounds() throws JavaModelException { 49 TypeParameterElementInfo info = (TypeParameterElementInfo) getElementInfo(); 50 return CharOperation.toStrings(info.bounds); 51 } 52 53 public IMember getDeclaringMember() { 54 return (IMember) getParent(); 55 } 56 57 public String getElementName() { 58 return this.name; 59 } 60 61 public int getElementType() { 62 return TYPE_PARAMETER; 63 } 64 65 protected char getHandleMementoDelimiter() { 66 return JavaElement.JEM_TYPE_PARAMETER; 67 } 68 69 public ISourceRange getNameRange() throws JavaModelException { 70 SourceMapper mapper= getSourceMapper(); 71 if (mapper != null) { 72 ClassFile classFile = (ClassFile)getClassFile(); 74 if (classFile != null) { 75 classFile.getBuffer(); 76 return mapper.getNameRange(this); 77 } 78 } 79 TypeParameterElementInfo info = (TypeParameterElementInfo) getElementInfo(); 80 return new SourceRange(info.nameStart, info.nameEnd - info.nameStart + 1); 81 } 82 83 86 public ISourceRange getSourceRange() throws JavaModelException { 87 SourceMapper mapper= getSourceMapper(); 88 if (mapper != null) { 89 ClassFile classFile = (ClassFile)getClassFile(); 91 if (classFile != null) { 92 classFile.getBuffer(); 93 return mapper.getSourceRange(this); 94 } 95 } 96 return super.getSourceRange(); 97 } 98 99 public IClassFile getClassFile() { 100 return ((JavaElement)getParent()).getClassFile(); 101 } 102 103 protected void toStringName(StringBuffer buffer) { 104 buffer.append('<'); 105 buffer.append(getElementName()); 106 buffer.append('>'); 107 } 108 } 109 | Popular Tags |