Skip to content

Commit

Permalink
Fixed Enum Unique ID (#300)
Browse files Browse the repository at this point in the history
* unique id with counter

* last resolve merged missing this change. Add this change back to PR
  • Loading branch information
mssfang authored and pakrym committed Dec 2, 2019
1 parent d7ed6bf commit 2f9e6e9
Showing 1 changed file with 21 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ private void getEnumEntries(EnumDeclaration enumDeclaration) {

// create a unique id for enum constants
final String name = enumConstantDeclaration.getNameAsString();
final String definitionId = makeId(enumDeclaration);
final String definitionId = makeId(enumDeclaration.getFullyQualifiedName().get() + "." + counter);
addToken(new Token(MEMBER_NAME, name, definitionId));

enumConstantDeclaration.getArguments().forEach(expression -> {
Expand Down Expand Up @@ -679,32 +679,32 @@ public void visit(CompilationUnit compilationUnit, Map<String, String> arg) {
}
}

private void getTypeDeclaration(TypeDeclaration<?> typeDeclaration) {
// Skip if the class is private or package-private
if (isPrivateOrPackagePrivate(typeDeclaration.getAccessSpecifier())) {
return;
}
private void getTypeDeclaration(TypeDeclaration<?> typeDeclaration) {
// Skip if the class is private or package-private
if (isPrivateOrPackagePrivate(typeDeclaration.getAccessSpecifier())) {
return;
}

if (! (typeDeclaration.isClassOrInterfaceDeclaration() || typeDeclaration.isEnumDeclaration())) {
return;
}
if (! (typeDeclaration.isClassOrInterfaceDeclaration() || typeDeclaration.isEnumDeclaration())) {
return;
}

final String fullQualifiedName = typeDeclaration.getFullyQualifiedName().get();
final String fullQualifiedName = typeDeclaration.getFullyQualifiedName().get();

// determine the package name for this class
final String typeName = typeDeclaration.getNameAsString();
final String packageName = fullQualifiedName.substring(0, fullQualifiedName.lastIndexOf("."));
apiListing.addPackageTypeMapping(packageName, typeName);
// determine the package name for this class
final String typeName = typeDeclaration.getNameAsString();
final String packageName = fullQualifiedName.substring(0, fullQualifiedName.lastIndexOf("."));
apiListing.addPackageTypeMapping(packageName, typeName);

// generate a navigation item for each new package, but we don't add them to the parent yet
packageNameToNav.computeIfAbsent(packageName, name -> new ChildItem(packageName, TypeKind.NAMESPACE));
// generate a navigation item for each new package, but we don't add them to the parent yet
packageNameToNav.computeIfAbsent(packageName, name -> new ChildItem(packageName, TypeKind.NAMESPACE));

apiListing.getKnownTypes().put(typeName, makeId(typeDeclaration));
apiListing.getKnownTypes().put(typeName, makeId(typeDeclaration));

// now do internal types
typeDeclaration.getMembers().stream()
.filter(m -> m.isEnumDeclaration() || m.isClassOrInterfaceDeclaration())
.forEach(m -> getTypeDeclaration(m.asTypeDeclaration()));
// now do internal types
typeDeclaration.getMembers().stream()
.filter(m -> m.isEnumDeclaration() || m.isClassOrInterfaceDeclaration())
.forEach(m -> getTypeDeclaration(m.asTypeDeclaration()));
}

private void indent() {
Expand Down

0 comments on commit 2f9e6e9

Please sign in to comment.