1 /*******************************************************************************
2 * Copyright (c) 2000, 2008 IBM Corporation and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
9 * IBM Corporation - initial API and implementation
10 *******************************************************************************/
12 package org.eclipse.jdt.internal.corext.refactoring.typeconstraints;
14 import org.eclipse.jdt.core.dom.Expression;
15 import org.eclipse.jdt.core.dom.IMethodBinding;
16 import org.eclipse.jdt.core.dom.ITypeBinding;
17 import org.eclipse.jdt.core.dom.IVariableBinding;
18 import org.eclipse.jdt.core.dom.ReturnStatement;
19 import org.eclipse.jdt.core.dom.Type;
21 public interface IConstraintVariableFactory {
22 ConstraintVariable makeExpressionOrTypeVariable(Expression expression, IContext context);
23 DeclaringTypeVariable makeDeclaringTypeVariable(ITypeBinding memberTypeBinding);
24 DeclaringTypeVariable makeDeclaringTypeVariable(IVariableBinding fieldBinding);
25 DeclaringTypeVariable makeDeclaringTypeVariable(IMethodBinding methodBinding);
26 ParameterTypeVariable makeParameterTypeVariable(IMethodBinding methodBinding, int parameterIndex);
27 RawBindingVariable makeRawBindingVariable(ITypeBinding binding);
28 ReturnTypeVariable makeReturnTypeVariable(ReturnStatement returnStatement);
29 ReturnTypeVariable makeReturnTypeVariable(IMethodBinding methodBinding);
30 TypeVariable makeTypeVariable(Type type);
31 TypeVariable makeTypeVariable(ITypeBinding binding, String source, CompilationUnitRange range);