diff options
Diffstat (limited to 'plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/ASTBoundResolver.java')
-rw-r--r-- | plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/ASTBoundResolver.java | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/ASTBoundResolver.java b/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/ASTBoundResolver.java deleted file mode 100644 index 83ff4e214..000000000 --- a/plugins/org.eclipse.jem.workbench/workbench/org/eclipse/jem/workbench/utility/ASTBoundResolver.java +++ /dev/null @@ -1,117 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -/* - - - */ -package org.eclipse.jem.workbench.utility; - -import java.text.MessageFormat; - -import org.eclipse.jdt.core.dom.*; - -import org.eclipse.jem.internal.instantiation.*; -import org.eclipse.jem.workbench.utility.ParseTreeCreationFromAST.InvalidExpressionException; - -/** - * This works on resolved AST nodes. If the nodes had not been resolved, this will return noting. - * - * @since 1.0.0 - */ -public class ASTBoundResolver extends ParseTreeCreationFromAST.Resolver { - - /* (non-Javadoc) - * @see org.eclipse.jem.workbench.utility.ParseTreeCreationFromAST.IResolver#resolveName(org.eclipse.jdt.core.dom.Name) - */ - public PTExpression resolveName(Name name) { - IBinding binding = name.resolveBinding(); - if (binding == null) - return null; - - switch (binding.getKind()) { - case IBinding.TYPE: - String typename = getTypeName((ITypeBinding) binding); - PTName ptname = InstantiationFactory.eINSTANCE.createPTName(); - ptname.setName(typename); - return ptname; - case IBinding.VARIABLE: - IVariableBinding variableBinding = (IVariableBinding) binding; - if (variableBinding.isField()) { - if (Modifier.isStatic(variableBinding.getModifiers())) { - PTFieldAccess fa = InstantiationFactory.eINSTANCE.createPTFieldAccess(); - // If just a simple name, then it is like this.field, so no receiver. Not sure how to handle this yet. - if (name.isQualifiedName()) { - // There are parts before this one. Get them as an expression (either a name, or another field access) - fa.setReceiver(resolveName(((QualifiedName) name).getQualifier())); - } - fa.setField(variableBinding.getName()); - return fa; - } else { - throwInvalidExpressionException(MessageFormat.format(WorkbenchUtilityMessages.ASTBoundResolver_CannotHandleLocalField_EXC_, new Object[]{variableBinding.getName()})); -// push(new PushFieldVariable(variableId, getTypeSignature(declaringTypeBinding), fCounter)); -// push(new PushThis(getEnclosingLevel(node, declaringTypeBinding))); -// storeInstruction(); - } - } else { - throwInvalidExpressionException(MessageFormat.format(WorkbenchUtilityMessages.ASTBoundResolver_CannotHandleLocalVariable_EXC_, new Object[]{variableBinding.getName()})); -// push(new PushLocalVariable(variableId)); - } - } - return null; - } - - /* (non-Javadoc) - * @see org.eclipse.jem.workbench.utility.IResolver#resolveType(org.eclipse.jdt.core.dom.Type) - */ - public String resolveType(Type type) { - ITypeBinding binding = type.resolveBinding(); - return (binding != null) ? getTypeName(binding) : null; - } - - /* (non-Javadoc) - * @see org.eclipse.jem.workbench.utility.ParseTreeCreationFromAST.Resolver#resolveType(org.eclipse.jdt.core.dom.Name) - */ - public String resolveType(Name name) throws InvalidExpressionException { - ITypeBinding binding = name.resolveTypeBinding(); - return (binding != null) ? getTypeName(binding) : null; - } - - protected String getTypeName(ITypeBinding typeBinding) { - StringBuffer name; - if (typeBinding.isArray()) { - name= new StringBuffer(getTypeName(typeBinding.getElementType())); - int dimensions= typeBinding.getDimensions(); - for (int i= 0; i < dimensions; i++) { - name.append("[]"); //$NON-NLS-1$ - } - return name.toString(); - } - name= new StringBuffer(typeBinding.getName()); - IPackageBinding packageBinding= typeBinding.getPackage(); - typeBinding= typeBinding.getDeclaringClass(); - while(typeBinding != null) { - name.insert(0, '$').insert(0, typeBinding.getName()); - typeBinding= typeBinding.getDeclaringClass(); - } - if (packageBinding != null && !packageBinding.isUnnamed()) { - name.insert(0, '.').insert(0, packageBinding.getName()); - } - return name.toString(); - } - - - /* (non-Javadoc) - * @see org.eclipse.jem.workbench.utility.ParseTreeCreationFromAST.Resolver#resolveThis() - */ - public PTExpression resolveThis() throws InvalidExpressionException { - return InstantiationFactory.eINSTANCE.createPTThisLiteral(); - } -} |