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