1683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti/*
2683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti * Copyright 2016 Federico Tomassetti
3683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti *
4683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti * Licensed under the Apache License, Version 2.0 (the "License");
5683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti * you may not use this file except in compliance with the License.
6683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti * You may obtain a copy of the License at
7683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti *
8683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti * http://www.apache.org/licenses/LICENSE-2.0
9683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti *
10683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti * Unless required by applicable law or agreed to in writing, software
11683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti * distributed under the License is distributed on an "AS IS" BASIS,
12683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti * See the License for the specific language governing permissions and
14683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti * limitations under the License.
15683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti */
16683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti
179c53c2cbc607ea694438ade8630be0c155a33162Federico Tomassettipackage com.github.javaparser.symbolsolver.javaparsermodel;
18fa3b6f1d0199dacb9069c24a1c2de0e31de38cb3Federico Tomassetti
19198ba6cbe49832ac09ca84c6920e9be661a3b56aFederico Tomassettiimport com.github.javaparser.resolution.declarations.ResolvedMethodLikeDeclaration;
20198ba6cbe49832ac09ca84c6920e9be661a3b56aFederico Tomassettiimport com.github.javaparser.resolution.types.ResolvedType;
219c53c2cbc607ea694438ade8630be0c155a33162Federico Tomassettiimport com.github.javaparser.symbolsolver.model.resolution.SymbolReference;
22630eb94d43670f2080c7273584d49c0b0d4162f1Federico Tomassetti
23960364fad3fc2ead6113d4c5d4b7d9ebf23e2f9aFederico Tomassetti/**
24960364fad3fc2ead6113d4c5d4b7d9ebf23e2f9aFederico Tomassetti * Placeholder used to represent a lambda argument type while it is being
25960364fad3fc2ead6113d4c5d4b7d9ebf23e2f9aFederico Tomassetti * calculated.
26c746c4ef7711a05c27827ab749d96155046a4f91Federico Tomassetti *
27c746c4ef7711a05c27827ab749d96155046a4f91Federico Tomassetti * @author Federico Tomassetti
28960364fad3fc2ead6113d4c5d4b7d9ebf23e2f9aFederico Tomassetti */
29198ba6cbe49832ac09ca84c6920e9be661a3b56aFederico Tomassettipublic class LambdaArgumentTypePlaceholder implements ResolvedType {
30fd2e083224d3ee0e9ccca4431d63a84601e0d606Federico Tomassetti
31960364fad3fc2ead6113d4c5d4b7d9ebf23e2f9aFederico Tomassetti    private int pos;
32198ba6cbe49832ac09ca84c6920e9be661a3b56aFederico Tomassetti    private SymbolReference<? extends ResolvedMethodLikeDeclaration> method;
33960364fad3fc2ead6113d4c5d4b7d9ebf23e2f9aFederico Tomassetti
3482eb44707b620803d424188a1eb8708fcaf093cbFederico Tomassetti    public LambdaArgumentTypePlaceholder(int pos) {
35960364fad3fc2ead6113d4c5d4b7d9ebf23e2f9aFederico Tomassetti        this.pos = pos;
36fd2e083224d3ee0e9ccca4431d63a84601e0d606Federico Tomassetti    }
37fd2e083224d3ee0e9ccca4431d63a84601e0d606Federico Tomassetti
38fa3b6f1d0199dacb9069c24a1c2de0e31de38cb3Federico Tomassetti    @Override
39fa3b6f1d0199dacb9069c24a1c2de0e31de38cb3Federico Tomassetti    public boolean isArray() {
40fa3b6f1d0199dacb9069c24a1c2de0e31de38cb3Federico Tomassetti        return false;
41fa3b6f1d0199dacb9069c24a1c2de0e31de38cb3Federico Tomassetti    }
42fa3b6f1d0199dacb9069c24a1c2de0e31de38cb3Federico Tomassetti
43fa3b6f1d0199dacb9069c24a1c2de0e31de38cb3Federico Tomassetti    @Override
44fa3b6f1d0199dacb9069c24a1c2de0e31de38cb3Federico Tomassetti    public boolean isPrimitive() {
45fa3b6f1d0199dacb9069c24a1c2de0e31de38cb3Federico Tomassetti        return false;
46fa3b6f1d0199dacb9069c24a1c2de0e31de38cb3Federico Tomassetti    }
47fa3b6f1d0199dacb9069c24a1c2de0e31de38cb3Federico Tomassetti
48fa3b6f1d0199dacb9069c24a1c2de0e31de38cb3Federico Tomassetti    @Override
49fa3b6f1d0199dacb9069c24a1c2de0e31de38cb3Federico Tomassetti    public boolean isReferenceType() {
50fa3b6f1d0199dacb9069c24a1c2de0e31de38cb3Federico Tomassetti        return false;
51fa3b6f1d0199dacb9069c24a1c2de0e31de38cb3Federico Tomassetti    }
52fa3b6f1d0199dacb9069c24a1c2de0e31de38cb3Federico Tomassetti
53fa3b6f1d0199dacb9069c24a1c2de0e31de38cb3Federico Tomassetti    @Override
5420f6eb44d071ee83af9c23b11572106504f30665Federico Tomassetti    public String describe() {
55fa3b6f1d0199dacb9069c24a1c2de0e31de38cb3Federico Tomassetti        throw new UnsupportedOperationException();
56fa3b6f1d0199dacb9069c24a1c2de0e31de38cb3Federico Tomassetti    }
57fa3b6f1d0199dacb9069c24a1c2de0e31de38cb3Federico Tomassetti
58fa3b6f1d0199dacb9069c24a1c2de0e31de38cb3Federico Tomassetti    @Override
595f74c747e05eb6a839f2b1b6c084f972f0e62354Federico Tomassetti    public boolean isTypeVariable() {
605f74c747e05eb6a839f2b1b6c084f972f0e62354Federico Tomassetti        return false;
615f74c747e05eb6a839f2b1b6c084f972f0e62354Federico Tomassetti    }
62fd2e083224d3ee0e9ccca4431d63a84601e0d606Federico Tomassetti
63198ba6cbe49832ac09ca84c6920e9be661a3b56aFederico Tomassetti    public void setMethod(SymbolReference<? extends ResolvedMethodLikeDeclaration> method) {
64cb5ffb7fdd56f1b768d25da330fa3b29ecb74eafFederico Tomassetti        this.method = method;
65cb5ffb7fdd56f1b768d25da330fa3b29ecb74eafFederico Tomassetti    }
6609ceccd596e6aeebb5eca309093ef32216291f1eFederico Tomassetti
6709ceccd596e6aeebb5eca309093ef32216291f1eFederico Tomassetti    @Override
68198ba6cbe49832ac09ca84c6920e9be661a3b56aFederico Tomassetti    public boolean isAssignableBy(ResolvedType other) {
690e81f51c40996b42cb262dc2397126cee8f60965Federico Tomassetti        throw new UnsupportedOperationException();
700e81f51c40996b42cb262dc2397126cee8f60965Federico Tomassetti    }
7171a7ebdaf5bed409020c647b76aa2382fc4f932dFederico Tomassetti
72fa3b6f1d0199dacb9069c24a1c2de0e31de38cb3Federico Tomassetti}
73