@Override public EnumDeclaration doMerge(EnumDeclaration first, EnumDeclaration second) { EnumDeclaration ed = new EnumDeclaration(); ed.setModifiers(mergeModifiers(first.getModifiers(), second.getModifiers())); ed.setJavaDoc(mergeSingle(first.getJavaDoc(), second.getJavaDoc())); ed.setAnnotations(mergeCollections(first.getAnnotations(), second.getAnnotations())); ed.setImplements(mergeCollections(first.getImplements(), second.getImplements())); ed.setEntries(mergeCollections(first.getEntries(), second.getEntries())); ed.setMembers(mergeCollections(first.getMembers(), second.getMembers())); ed.setName(first.getName()); return ed; }
@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; JavaParserEnumDeclaration that = (JavaParserEnumDeclaration) o; if (!wrappedNode.equals(that.wrappedNode)) return false; return true; }
@Override public int hashCode() { return wrappedNode.hashCode(); }
public static EnumDeclaration mergeType(EnumDeclaration one, EnumDeclaration two) { if (isAllNull(one, two)) return null; EnumDeclaration ed = null; if (isAllNotNull(one, two)) { ed = new EnumDeclaration(); ed.setJavaDoc(mergeSelective(one.getJavaDoc(), two.getJavaDoc())); ed.setComment(mergeSelective(one.getComment(), one.getComment())); ed.setModifiers(mergeModifiers(one.getModifiers(), two.getModifiers())); ed.setAnnotations(mergeListNoDuplicate(one.getAnnotations(), two.getAnnotations())); ed.setImplements(mergeListNoDuplicate(one.getImplements(), two.getImplements())); ed.setName(one.getName()); ed.setEntries(mergeEnumConstants(one.getEntries(), two.getEntries())); LOG.info("merge EnumDeclaration --> {}", ed.getName()); } else { ed = findFirstNotNull(one, two); LOG.info("add EnumDeclaration --> {}", ed.getName()); } return ed; }
@Override public List<ResolvedFieldDeclaration> getAllFields() { List<ResolvedFieldDeclaration> fields = javaParserTypeAdapter.getFieldsForDeclaredVariables(); if (this.wrappedNode.getEntries() != null) { for (EnumConstantDeclaration member : this.wrappedNode.getEntries()) { fields.add(new JavaParserFieldDeclaration(member, typeSolver)); } } return fields; }
if (enumDeclaration.getAnnotations() != null) enumDeclaration.getAnnotations().clear(); for (BodyDeclaration member : enumDeclaration.getMembers()) for (EnumConstantDeclaration member : enumDeclaration.getEntries())
@Override public Set<ResolvedMethodDeclaration> getDeclaredMethods() { Set<ResolvedMethodDeclaration> methods = new HashSet<>(); for (BodyDeclaration<?> member : wrappedNode.getMembers()) { if (member instanceof com.github.javaparser.ast.body.MethodDeclaration) { methods.add(new JavaParserMethodDeclaration((com.github.javaparser.ast.body.MethodDeclaration) member, typeSolver)); } } return methods; }
if (member.isEnumDeclaration()) { val enumMem = member.asEnumDeclaration(); return enumMem.getNameAsString().equals(innerType); val enumMem = member.asEnumDeclaration(); val builder = new StringBuilder(e.getDescription()); enumMem.getEntries() .stream() .filter(entry -> entry.getJavadoc().isPresent())
@Test public void enumDeclarationResolve() throws IOException { File f = adaptPath(new File("src/test/resources/javaparser_new_src/javaparser-core/com/github/javaparser/ast/AccessSpecifier.java")); CompilationUnit cu = parseWithSymbolResolution(f); EnumDeclaration declaration = (EnumDeclaration) cu.getType(0); assertEquals("AccessSpecifier", declaration.getNameAsString()); ResolvedEnumDeclaration resolvedDeclaration = declaration.resolve(); }
ResolvedEnumDeclaration enumDeclaration = Navigator.findAncestor(node, EnumDeclaration.class).get().resolve().asEnum(); ResolvedEnumConstantDeclaration resolved = enumDeclaration.getEnumConstants().stream().filter(c -> ((JavaParserEnumConstantDeclaration)c).getWrappedNode() == node).findFirst().get(); if (resultClass.isInstance(resolved)) {
@Override public List<ResolvedReferenceType> getAncestors(boolean acceptIncompleteList) { List<ResolvedReferenceType> ancestors = new ArrayList<>(); ResolvedReferenceType enumClass = ReflectionFactory.typeUsageFor(Enum.class, typeSolver).asReferenceType(); ResolvedTypeParameterDeclaration eTypeParameter = enumClass.getTypeDeclaration().getTypeParameters().get(0); enumClass = enumClass.deriveTypeParameters(new ResolvedTypeParametersMap.Builder().setValue(eTypeParameter, new ReferenceTypeImpl(this, typeSolver)).build()); ancestors.add(enumClass); if (wrappedNode.getImplementedTypes() != null) { for (ClassOrInterfaceType implementedType : wrappedNode.getImplementedTypes()) { SymbolReference<ResolvedTypeDeclaration> implementedDeclRef = new SymbolSolver(typeSolver).solveTypeInType(this, implementedType.getName().getId()); if (!implementedDeclRef.isSolved() && !acceptIncompleteList) { throw new UnsolvedSymbolException(implementedType.getName().getId()); } ancestors.add(new ReferenceTypeImpl((ResolvedReferenceTypeDeclaration) implementedDeclRef.getCorrespondingDeclaration(), typeSolver)); } } return ancestors; }
@Test public void enumConstantDeclarationResolve() throws IOException { File f = adaptPath(new File("src/test/resources/javaparser_new_src/javaparser-core/com/github/javaparser/ast/AccessSpecifier.java")); CompilationUnit cu = parseWithSymbolResolution(f); EnumDeclaration enumDeclaration = (EnumDeclaration) cu.getType(0); assertEquals("AccessSpecifier", enumDeclaration.getNameAsString()); EnumConstantDeclaration declaration = enumDeclaration.getEntry(0); assertEquals("PUBLIC", declaration.getNameAsString()); ResolvedEnumConstantDeclaration resolvedDeclaration = declaration.resolve(); }
@Override public AccessSpecifier accessSpecifier() { return Helper.toAccessLevel(enumDeclaration.getWrappedNode().getModifiers()); }
/** {@inheritDoc} */ @Override public void visit(EnumDeclaration n, EnumBuilder builder) { super.visit(n, builder); builder.withName(n.getNameAsString()); }
@Override public List<ResolvedFieldDeclaration> getAllFields() { List<ResolvedFieldDeclaration> fields = javaParserTypeAdapter.getFieldsForDeclaredVariables(); if (this.wrappedNode.getEntries() != null) { for (EnumConstantDeclaration member : this.wrappedNode.getEntries()) { fields.add(new JavaParserFieldDeclaration(member, typeSolver)); } } return fields; }
@Override public Set<ResolvedMethodDeclaration> getDeclaredMethods() { Set<ResolvedMethodDeclaration> methods = new HashSet<>(); for (BodyDeclaration<?> member : wrappedNode.getMembers()) { if (member instanceof com.github.javaparser.ast.body.MethodDeclaration) { methods.add(new JavaParserMethodDeclaration((com.github.javaparser.ast.body.MethodDeclaration) member, typeSolver)); } } return methods; }
@Override public String getName() { return wrappedNode.getName().getId(); }
ResolvedEnumDeclaration enumDeclaration = Navigator.findAncestor(node, EnumDeclaration.class).get().resolve().asEnum(); ResolvedEnumConstantDeclaration resolved = enumDeclaration.getEnumConstants().stream().filter(c -> ((JavaParserEnumConstantDeclaration)c).getWrappedNode() == node).findFirst().get(); if (resultClass.isInstance(resolved)) {
@Override public List<ResolvedReferenceType> getAncestors() { List<ResolvedReferenceType> ancestors = new ArrayList<>(); ResolvedReferenceType enumClass = ReflectionFactory.typeUsageFor(Enum.class, typeSolver).asReferenceType(); ResolvedTypeParameterDeclaration eTypeParameter = enumClass.getTypeDeclaration().getTypeParameters().get(0); enumClass = enumClass.deriveTypeParameters(new ResolvedTypeParametersMap.Builder().setValue(eTypeParameter, new ReferenceTypeImpl(this, typeSolver)).build()); ancestors.add(enumClass); if (wrappedNode.getImplementedTypes() != null) { for (ClassOrInterfaceType implementedType : wrappedNode.getImplementedTypes()) { SymbolReference<ResolvedTypeDeclaration> implementedDeclRef = new SymbolSolver(typeSolver).solveTypeInType(this, implementedType.getName().getId()); if (!implementedDeclRef.isSolved()) { throw new UnsolvedSymbolException(implementedType.getName().getId()); } ancestors.add(new ReferenceTypeImpl((ResolvedReferenceTypeDeclaration) implementedDeclRef.getCorrespondingDeclaration(), typeSolver)); } } return ancestors; }