LambdaArgumentTypePlaceholder.java revision 82eb44707b620803d424188a1eb8708fcaf093cb
1package me.tomassetti.symbolsolver.javaparsermodel;
2
3import me.tomassetti.symbolsolver.model.declarations.MethodDeclaration;
4import me.tomassetti.symbolsolver.model.resolution.SymbolReference;
5import me.tomassetti.symbolsolver.model.typesystem.Type;
6
7/**
8 * Placeholder used to represent a lambda argument type while it is being
9 * calculated.
10 */
11public class LambdaArgumentTypePlaceholder implements Type {
12
13    private int pos;
14    private SymbolReference<MethodDeclaration> method;
15
16    public LambdaArgumentTypePlaceholder(int pos) {
17        this.pos = pos;
18    }
19
20    @Override
21    public boolean isArray() {
22        return false;
23    }
24
25    @Override
26    public boolean isPrimitive() {
27        return false;
28    }
29
30    @Override
31    public boolean isReferenceType() {
32        return false;
33    }
34
35    @Override
36    public String describe() {
37        throw new UnsupportedOperationException();
38    }
39
40    @Override
41    public boolean isTypeVariable() {
42        return false;
43    }
44
45    public void setMethod(SymbolReference<MethodDeclaration> method) {
46        this.method = method;
47    }
48
49    @Override
50    public boolean isAssignableBy(Type other) {
51        throw new UnsupportedOperationException();
52    }
53}
54