1*f0340d8eSSorin Bascaimport java.util.List; 2*f0340d8eSSorin Basca 3*f0340d8eSSorin Bascapublic class JavaTest { 4*f0340d8eSSorin Basca class MethodDeclaration { 5*f0340d8eSSorin Basca public <T> List<T> getNodesByType(Class<T> clazz) { 6*f0340d8eSSorin Basca return new ArrayList<T>(); 7*f0340d8eSSorin Basca } 8*f0340d8eSSorin Basca } 9*f0340d8eSSorin Basca class JavaParserFacade { 10*f0340d8eSSorin Basca public Solved solve(MethodDeclaration method) { 11*f0340d8eSSorin Basca return new Solved(); 12*f0340d8eSSorin Basca } 13*f0340d8eSSorin Basca } 14*f0340d8eSSorin Basca class Solved { 15*f0340d8eSSorin Basca public boolean isSolved() { 16*f0340d8eSSorin Basca return true; 17*f0340d8eSSorin Basca } 18*f0340d8eSSorin Basca } 19*f0340d8eSSorin Basca private List<String> foo(MethodDeclaration methodDecl) { 20*f0340d8eSSorin Basca return methodDecl 21*f0340d8eSSorin Basca .getNodesByType(MethodDeclaration.class) 22*f0340d8eSSorin Basca .stream() 23*f0340d8eSSorin Basca .map(statement -> { 24*f0340d8eSSorin Basca try { 25*f0340d8eSSorin Basca return new JavaParserFacade().solve(statement); 26*f0340d8eSSorin Basca } catch (Throwable e) { 27*f0340d8eSSorin Basca return null; 28*f0340d8eSSorin Basca } 29*f0340d8eSSorin Basca }) 30*f0340d8eSSorin Basca .filter(parsed -> parsed != null && parsed.isSolved()); 31*f0340d8eSSorin Basca } 32*f0340d8eSSorin Basca}