aboutsummaryrefslogtreecommitdiff
path: root/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/MethodType.java
diff options
context:
space:
mode:
Diffstat (limited to 'javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/MethodType.java')
-rw-r--r--javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/MethodType.java55
1 files changed, 55 insertions, 0 deletions
diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/MethodType.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/MethodType.java
new file mode 100644
index 000000000..87494d47a
--- /dev/null
+++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/resolution/typeinference/MethodType.java
@@ -0,0 +1,55 @@
+package com.github.javaparser.symbolsolver.resolution.typeinference;
+
+import com.github.javaparser.resolution.MethodUsage;
+import com.github.javaparser.resolution.declarations.ResolvedTypeParameterDeclaration;
+import com.github.javaparser.resolution.types.ResolvedType;
+
+import java.util.List;
+
+/**
+ * A MethodType is an ordered 4-tuple consisting of:
+ * 1. type parameters: the declarations of any type parameters of the method member.
+ * 2. argument types: a list of the types of the arguments to the method member.
+ * 3. return type: the return type of the method member.
+ * 4. throws clause: exception types declared in the throws clause of the method member.
+ *
+ * See JLS 8.2
+ *
+ * @author Federico Tomassetti
+ */
+public class MethodType {
+ private List<ResolvedTypeParameterDeclaration> typeParameters;
+ private List<ResolvedType> formalArgumentTypes;
+ private ResolvedType returnType;
+ private List<ResolvedType> exceptionTypes;
+
+ public static MethodType fromMethodUsage(MethodUsage methodUsage) {
+ return new MethodType(methodUsage.getDeclaration().getTypeParameters(), methodUsage.getParamTypes(),
+ methodUsage.returnType(), methodUsage.exceptionTypes());
+ }
+
+ public MethodType(List<ResolvedTypeParameterDeclaration> typeParameters, List<ResolvedType> formalArgumentTypes,
+ ResolvedType returnType,
+ List<ResolvedType> exceptionTypes) {
+ this.typeParameters = typeParameters;
+ this.formalArgumentTypes = formalArgumentTypes;
+ this.returnType = returnType;
+ this.exceptionTypes = exceptionTypes;
+ }
+
+ public List<ResolvedTypeParameterDeclaration> getTypeParameters() {
+ return typeParameters;
+ }
+
+ public List<ResolvedType> getFormalArgumentTypes() {
+ return formalArgumentTypes;
+ }
+
+ public ResolvedType getReturnType() {
+ return returnType;
+ }
+
+ public List<ResolvedType> getExceptionTypes() {
+ return exceptionTypes;
+ }
+}