/******************************************************************************* * Copyright (c) 2009-2011 CWI * 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: * * Anastasia Izmaylova - A.Izmaylova@cwi.nl - CWI *******************************************************************************/ package org.rascalmpl.library.lang.java.m3.internal; import org.eclipse.jdt.core.dom.ASTNode; import org.eclipse.jdt.core.dom.AnnotationTypeDeclaration; import org.eclipse.jdt.core.dom.AnnotationTypeMemberDeclaration; import org.eclipse.jdt.core.dom.AnonymousClassDeclaration; import org.eclipse.jdt.core.dom.ClassInstanceCreation; import org.eclipse.jdt.core.dom.ConstructorInvocation; import org.eclipse.jdt.core.dom.EnumConstantDeclaration; import org.eclipse.jdt.core.dom.EnumDeclaration; import org.eclipse.jdt.core.dom.FieldAccess; import org.eclipse.jdt.core.dom.ImportDeclaration; import org.eclipse.jdt.core.dom.MemberRef; import org.eclipse.jdt.core.dom.MethodDeclaration; import org.eclipse.jdt.core.dom.MethodInvocation; import org.eclipse.jdt.core.dom.MethodRef; import org.eclipse.jdt.core.dom.Name; import org.eclipse.jdt.core.dom.PackageDeclaration; import org.eclipse.jdt.core.dom.SuperConstructorInvocation; import org.eclipse.jdt.core.dom.SuperFieldAccess; import org.eclipse.jdt.core.dom.SuperMethodInvocation; import org.eclipse.jdt.core.dom.Type; import org.eclipse.jdt.core.dom.TypeDeclaration; import org.eclipse.jdt.core.dom.TypeParameter; import org.eclipse.jdt.core.dom.VariableDeclaration; import org.rascalmpl.value.ISourceLocation; public interface IBindingsResolver { public ISourceLocation resolveBinding(TypeDeclaration node); // declaration public ISourceLocation resolveBinding(EnumDeclaration node); // declaration public ISourceLocation resolveBinding(AnnotationTypeDeclaration node); // declaration public ISourceLocation resolveBinding(AnnotationTypeMemberDeclaration node); // declaration public ISourceLocation resolveBinding(AnonymousClassDeclaration node); // declaration public ISourceLocation resolveBinding(ImportDeclaration node); // declaration public ISourceLocation resolveBinding(MemberRef node); // Java doc public ISourceLocation resolveBinding(MethodDeclaration node); public ISourceLocation resolveBinding(MethodRef node); // Java doc public ISourceLocation resolveBinding(Name node); // Expression public ISourceLocation resolveBinding(PackageDeclaration node); public ISourceLocation resolveBinding(Type node); // type public ISourceLocation resolveBinding(TypeParameter node); // type public ISourceLocation resolveBinding(VariableDeclaration node); // declaration public ISourceLocation resolveBinding(ClassInstanceCreation node); // Expression public ISourceLocation resolveBinding(ConstructorInvocation node); // Statement public ISourceLocation resolveBinding(EnumConstantDeclaration node); // declaration public ISourceLocation resolveBinding(SuperConstructorInvocation node); // Statement public ISourceLocation resolveBinding(FieldAccess node); // Expression public ISourceLocation resolveBinding(SuperFieldAccess node); // Expression public ISourceLocation resolveBinding(MethodInvocation node); // Expression public ISourceLocation resolveBinding(SuperMethodInvocation node); // Expression public ISourceLocation resolveBinding(ASTNode node); }