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