@Override public List<ResolvedTypeParameterDeclaration> getTypeParameters() { if (this.wrappedNode.getTypeParameters() == null) { return Collections.emptyList(); } else { return this.wrappedNode.getTypeParameters().stream().map( (tp) -> new JavaParserTypeParameter(tp, typeSolver) ).collect(Collectors.toList()); } }
@Override public List<ResolvedTypeParameterDeclaration> getTypeParameters() { if (this.wrappedNode.getTypeParameters() == null) { return Collections.emptyList(); } else { return this.wrappedNode.getTypeParameters().stream().map( (tp) -> new JavaParserTypeParameter(tp, typeSolver) ).collect(Collectors.toList()); } }
@Override public List<ResolvedTypeParameterDeclaration> getTypeParameters() { if (this.wrappedNode.getTypeParameters() == null) { return Collections.emptyList(); } else { return this.wrappedNode.getTypeParameters().stream().map( (tp) -> new JavaParserTypeParameter(tp, typeSolver) ).collect(Collectors.toList()); } }
@Override public List<ResolvedTypeParameterDeclaration> getTypeParameters() { return this.wrappedNode.getTypeParameters().stream().map( (tp) -> new JavaParserTypeParameter(tp, typeSolver) ).collect(Collectors.toList()); }
@Override public List<ResolvedTypeParameterDeclaration> getTypeParameters() { return this.wrappedNode.getTypeParameters().stream().map( (tp) -> new JavaParserTypeParameter(tp, typeSolver) ).collect(Collectors.toList()); }
@Override public List<ResolvedTypeParameterDeclaration> getTypeParameters() { return this.wrappedNode.getTypeParameters().stream().map( (tp) -> new JavaParserTypeParameter(tp, typeSolver) ).collect(Collectors.toList()); }
@Override public void visit(ClassOrInterfaceDeclaration n, A arg) { this.definedTypeParameters.addLast(getTypeParameterNames(n.getTypeParameters())); try { super.visit(n, arg); } finally { this.definedTypeParameters.removeLast(); } }
@Override public Optional<ResolvedType> solveGenericType(String name) { for (com.github.javaparser.ast.type.TypeParameter tp : wrappedNode.getTypeParameters()) { if (tp.getName().getId().equals(name)) { return Optional.of(new ResolvedTypeVariable(new JavaParserTypeParameter(tp, typeSolver))); } } return getParent().solveGenericType(name); }
@Override public Optional<ResolvedType> solveGenericType(String name, TypeSolver typeSolver) { for (com.github.javaparser.ast.type.TypeParameter tp : wrappedNode.getTypeParameters()) { if (tp.getName().getId().equals(name)) { return Optional.of(new ResolvedTypeVariable(new JavaParserTypeParameter(tp, typeSolver))); } } return getParent().solveGenericType(name, typeSolver); }
@Override public Optional<ResolvedType> solveGenericType(String name, TypeSolver typeSolver) { for (com.github.javaparser.ast.type.TypeParameter tp : wrappedNode.getTypeParameters()) { if (tp.getName().getId().equals(name)) { return Optional.of(new ResolvedTypeVariable(new JavaParserTypeParameter(tp, typeSolver))); } } return getParent().solveGenericType(name, typeSolver); }
@Test public void test_parseGenericClassNode(){ File resultJavaFile = Projects.getTestJavaFile(GenericResult.class); ParseUtils.compilationUnit(resultJavaFile).getChildNodesByType(MethodDeclaration.class).forEach(md->{ md.getType(); }); ParseUtils.compilationUnit(resultJavaFile).getClassByName("GenericResult") .ifPresent(classDeclaration -> { NodeList<TypeParameter> typeParameters = classDeclaration.getTypeParameters(); for(int i = 0, len = typeParameters.size(); i != len; i++){ System.out.println(typeParameters.get(i).getName()); } }); } }
List<TypeParameter> typeParameters = n.getTypeParameters(); if (typeParameters != null) { for (int i = 0; i < typeParameters.size(); i++) {
@Override public ClassOrInterfaceDeclaration doMerge(ClassOrInterfaceDeclaration first, ClassOrInterfaceDeclaration second) { ClassOrInterfaceDeclaration declaration = new ClassOrInterfaceDeclaration(); declaration.setInterface(first.isInterface()); declaration.setName(first.getName()); declaration.setModifiers(mergeModifiers(first.getModifiers(), second.getModifiers())); declaration.setJavaDoc(mergeSingle(first.getJavaDoc(), second.getJavaDoc())); declaration.setTypeParameters(mergeCollections(first.getTypeParameters(), second.getTypeParameters())); declaration.setImplements(mergeCollections(first.getImplements(), second.getImplements())); declaration.setExtends(mergeCollections(first.getExtends(), second.getExtends())); declaration.setAnnotations(mergeCollections(first.getAnnotations(), second.getAnnotations())); declaration.setMembers(mergeCollections(first.getMembers(), second.getMembers())); return declaration; }
public static ClassOrInterfaceDeclaration mergeType(ClassOrInterfaceDeclaration one, ClassOrInterfaceDeclaration two) { if (isAllNull(one, two)) return null; ClassOrInterfaceDeclaration coid = null; if (isAllNotNull(one, two)) { coid = new ClassOrInterfaceDeclaration(); coid.setName(one.getName()); coid.setJavaDoc(mergeSelective(one.getJavaDoc(), two.getJavaDoc())); coid.setComment(mergeSelective(one.getComment(), two.getComment())); coid.setAnnotations(mergeListNoDuplicate(one.getAnnotations(), two.getAnnotations())); coid.setModifiers(mergeModifiers(one.getModifiers(), two.getModifiers())); coid.setExtends(mergeListNoDuplicate(one.getExtends(), two.getExtends())); coid.setImplements(mergeListNoDuplicate(one.getImplements(), two.getImplements())); coid.setTypeParameters(mergeSelective(one.getTypeParameters(), two.getTypeParameters())); coid.setInterface(one.isInterface()); coid.setMembers(mergeBodies(one.getMembers(), two.getMembers())); LOG.info("merge ClassOrInterfaceDeclaration --> {}", coid.getName()); } else { coid = findFirstNotNull(one, two); LOG.info("add ClassOrInterfaceDeclaration --> {}", coid.getName()); } return coid; }