Skip to content
This repository was archived by the owner on Aug 9, 2022. It is now read-only.

Commit 6584b8d

Browse files
committed
exclude private and package-private classes during documentation (#36)
1 parent 0b3bd2a commit 6584b8d

5 files changed

Lines changed: 31 additions & 6 deletions

File tree

src/main/java/com/microsoft/build/YmlFilesBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ void addSuperclassAndInterfacesReferences(TypeElement classElement, MetadataFile
286286

287287
void addInnerClassesReferences(TypeElement classElement, MetadataFile classMetadataFile) {
288288
classMetadataFile.getReferences().addAll(
289-
ElementFilter.typesIn(classElement.getEnclosedElements()).stream()
289+
ElementFilter.typesIn(elementUtil.extractSortedElements(classElement)).stream()
290290
.map(this::buildClassReference)
291291
.collect(Collectors.toList()));
292292
}

src/main/java/com/microsoft/util/ElementUtil.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,10 @@ public ElementUtil(String[] excludePackages, String[] excludeClasses) {
2828

2929
public List<TypeElement> extractSortedElements(Element element) {
3030
// Need to apply sorting, because order of result items for Element.getEnclosedElements() depend on JDK implementation
31+
// By default, exclude private and package-private items
32+
// todo allow pass parameter for filter items by access modifiers
3133
return ElementFilter.typesIn(element.getEnclosedElements()).stream()
34+
.filter(o -> !isPrivateOrPackagePrivate(o))
3235
.filter(o -> !matchAnyPattern(excludeClasses, String.valueOf(o.getQualifiedName())))
3336
.sorted((o1, o2) ->
3437
StringUtils.compare(String.valueOf(o1.getSimpleName()), String.valueOf(o2.getSimpleName()))

src/test/java/com/microsoft/samples/subpackage/CustomException.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,8 @@ public CustomException(String message) {
1414
public void makeSomething() throws CustomException {
1515
throw new CustomException("It happened!");
1616
}
17+
18+
private class PrivateException {
19+
private String message;
20+
}
1721
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.microsoft.samples.subpackage;
2+
3+
class InternalException extends Exception {
4+
5+
public InternalException(String message) {
6+
super(message);
7+
}
8+
}

src/test/java/com/microsoft/util/ElementUtilTest.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,23 @@ public void extractPackageElements() {
5555
public void extractSortedElements() {
5656
Element element = elements.getPackageElement("com.microsoft.samples.subpackage");
5757

58-
List<String> result = elementUtil.extractSortedElements(element)
58+
List<String> allElements = element.getEnclosedElements()
59+
.stream().map(String::valueOf).collect(Collectors.toList());
60+
61+
// Ensure items to exclude exist.
62+
assertThat("Wrong enclosed elements number", allElements.size(), is(6));
63+
assertTrue("Unexpected package private class", allElements.contains("com.microsoft.samples.subpackage.InternalException"));
64+
assertTrue("Unexpected to-exclude class", allElements.contains("com.microsoft.samples.subpackage.SomeExcludedClass"));
65+
66+
67+
List<String> extractedElements = elementUtil.extractSortedElements(element)
5968
.stream().map(String::valueOf).collect(Collectors.toList());
6069

61-
assertThat("Wrong result list size", result.size(), is(4));
62-
assertThat("Unexpected first item", result.get(0), is("com.microsoft.samples.subpackage.CustomException"));
63-
assertThat("Unexpected second item", result.get(1), is("com.microsoft.samples.subpackage.Display"));
64-
assertThat("Unexpected third item", result.get(2), is("com.microsoft.samples.subpackage.Person"));
70+
// Verify filtered and sorted result
71+
assertThat("Wrong result list size", extractedElements.size(), is(4));
72+
assertThat("Unexpected first item in the result list after invoke method extractSortedElements()", extractedElements.get(0), is("com.microsoft.samples.subpackage.CustomException"));
73+
assertThat("Unexpected second item in the result list after invoke method extractSortedElements()", extractedElements.get(1), is("com.microsoft.samples.subpackage.Display"));
74+
assertThat("Unexpected third item in the result list after invoke method extractSortedElements()", extractedElements.get(2), is("com.microsoft.samples.subpackage.Person"));
6575
}
6676

6777
@Test

0 commit comments

Comments
 (0)