X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Feclipse%2Fjdt%2Finternal%2Fcompiler%2Fast%2FQualifiedTypeReference.java;fp=src%2Forg%2Feclipse%2Fjdt%2Finternal%2Fcompiler%2Fast%2FQualifiedTypeReference.java;h=b37276be0beec806f19b6e228f46fab34216ce0d;hb=040fa5af2cd00017cf3575950cdaade34a6d7f6c;hp=0000000000000000000000000000000000000000;hpb=a580fb8376d315d05e4d6bfdff9ff1101a151cd6;p=org.ibex.tool.git diff --git a/src/org/eclipse/jdt/internal/compiler/ast/QualifiedTypeReference.java b/src/org/eclipse/jdt/internal/compiler/ast/QualifiedTypeReference.java new file mode 100644 index 0000000..b37276b --- /dev/null +++ b/src/org/eclipse/jdt/internal/compiler/ast/QualifiedTypeReference.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * 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 + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.jdt.internal.compiler.ast; + +import org.eclipse.jdt.internal.compiler.ASTVisitor; +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 type , long[] poss) { + + this(sources,poss); + this.resolvedType = type; + } + + 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 (this.resolvedType != null) + return this.resolvedType; + return scope.getType(tokens); + } + + public char[][] getTypeName(){ + + return tokens; + } + + public StringBuffer printExpression(int indent, StringBuffer output) { + + for (int i = 0; i < tokens.length; i++) { + if (i > 0) output.append('.'); + output.append(tokens[i]); + } + return output; + } + + public void traverse(ASTVisitor visitor, BlockScope scope) { + + visitor.visit(this, scope); + visitor.endVisit(this, scope); + } + + public void traverse(ASTVisitor visitor, ClassScope scope) { + + visitor.visit(this, scope); + visitor.endVisit(this, scope); + } +}