blob: f97f23896eb5284620918befa689df7544491167 [file] [log] [blame]
package org.eclipse.jdt.internal.compiler.ast;
/*
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
import org.eclipse.jdt.internal.compiler.IAbstractSyntaxTreeVisitor;
import org.eclipse.jdt.internal.compiler.lookup.*;
public class QualifiedTypeReference extends TypeReference {
public char[][] tokens;
public long[] sourcePositions;
public QualifiedTypeReference(char[][] sources , long[] poss) {
tokens = sources ;
sourcePositions = poss ;
sourceStart = (int) (sourcePositions[0]>>>32) ;
sourceEnd = (int)(sourcePositions[sourcePositions.length-1] & 0x00000000FFFFFFFFL ) ;
}
public QualifiedTypeReference(char[][] sources , TypeBinding tb , long[] poss) {
this(sources,poss);
binding = tb;
}
public TypeReference copyDims(int dim){
//return a type reference copy of me with some dimensions
//warning : the new type ref has a null binding
return new ArrayQualifiedTypeReference(tokens,null,dim,sourcePositions) ;
}
public TypeBinding getTypeBinding(Scope scope) {
if (binding != null)
return binding;
return scope.getType(tokens);
}
public char[][] getTypeName(){
return tokens;
}
public String toStringExpression(int tab) {
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < tokens.length; i++) {
buffer.append(tokens[i]);
if (i < (tokens.length - 1)) {
buffer.append("."/*nonNLS*/);
}
}
return buffer.toString();
}
public void traverse(IAbstractSyntaxTreeVisitor visitor, BlockScope scope) {
visitor.visit(this, scope);
visitor.endVisit(this, scope);
}
public void traverse(IAbstractSyntaxTreeVisitor visitor, ClassScope scope) {
visitor.visit(this, scope);
visitor.endVisit(this, scope);
}
}