maxVisibilityFields
Description
With this configuration option you can filter out fields from the diagram by their visibility in Java.
The following options are supported:
- 
PUBLIC 
 only public fields will be displayed
- 
PROTECTED 
 only public and protected fields will be displayed
- 
PACKAGE_PRIVATE 
 only public, protected and package_private fields will be displayed
- 
PRIVATE 
 all fields will be displayed if not removed or ignored by other parameters
Example
Maximum visibility public
Here is an example from the JUnit tests using this configuration parameter:
String filename = "class/0013_max_visibility_fields_public.txt";
List<String> scanPackages = new ArrayList<>();
scanPackages.add("de.elnarion.test.domain.t0013");
PlantUMLClassDiagramConfig config = new PlantUMLClassDiagramConfigBuilder(scanPackages)
        .withMaximumFieldVisibility(VisibilityType.PUBLIC).build(); (1)
PlantUMLClassDiagramGenerator generator = new PlantUMLClassDiagramGenerator(config);
String result = generator.generateDiagramText();
String expectedDiagramText = IOUtils.toString(Objects.requireNonNull(classLoader.getResource(filename)), StandardCharsets.UTF_8);
assertNotNull(result);
assertNotNull(expectedDiagramText);
assertEquals(expectedDiagramText.replaceAll("\\s+", ""), result.replaceAll("\\s+", ""));which is rendered this way:
 
and produces this PlantUML diagram text:
@startuml
class de.elnarion.test.domain.t0013.Testclass {
	{field} +test4 : long
	{field} +test5 : long
}
@endumlMaximum visibility protected
Here is an example from the JUnit tests using this configuration parameter:
config = new PlantUMLClassDiagramConfigBuilder(scanPackages)
        .withMaximumFieldVisibility(VisibilityType.PROTECTED).build(); (1)
generator = new PlantUMLClassDiagramGenerator(config);
result = generator.generateDiagramText();
filename = "class/0013_max_visibility_fields_protected.txt";
expectedDiagramText = IOUtils.toString(Objects.requireNonNull(classLoader.getResource(filename)), StandardCharsets.UTF_8);
assertNotNull(result);
assertNotNull(expectedDiagramText);
assertEquals(expectedDiagramText.replaceAll("\\s+", ""), result.replaceAll("\\s+", ""));which is rendered this way:
 
and produces this PlantUML diagram text:
@startuml
class de.elnarion.test.domain.t0013.Testclass {
	{field} #test3 : long
	{field} +test4 : long
	{field} +test5 : long
}
@endumlMaximum visibility package private
Here is an example from the JUnit tests using this configuration parameter:
config = new PlantUMLClassDiagramConfigBuilder(scanPackages)
        .withMaximumFieldVisibility(VisibilityType.PACKAGE_PRIVATE).build(); (1)
generator = new PlantUMLClassDiagramGenerator(config);
result = generator.generateDiagramText();
filename = "class/0013_max_visibility_fields_package_private.txt";
expectedDiagramText = IOUtils.toString(Objects.requireNonNull(classLoader.getResource(filename)), StandardCharsets.UTF_8);
assertNotNull(result);
assertNotNull(expectedDiagramText);
assertEquals(expectedDiagramText.replaceAll("\\s+", ""), result.replaceAll("\\s+", ""));which is rendered this way:
 
and produces this PlantUML diagram text:
@startuml
class de.elnarion.test.domain.t0013.Testclass {
	{field} ~test2 : long
	{field} #test3 : long
	{field} +test4 : long
	{field} +test5 : long
}
@endumlMaximum visibility private
Here is an example from the JUnit tests using this configuration parameter:
config = new PlantUMLClassDiagramConfigBuilder(scanPackages).withMaximumFieldVisibility(VisibilityType.PRIVATE)
        .build(); (1)
generator = new PlantUMLClassDiagramGenerator(config);
result = generator.generateDiagramText();
filename = "class/0013_max_visibility_fields_private.txt";
expectedDiagramText = IOUtils.toString(Objects.requireNonNull(classLoader.getResource(filename)), StandardCharsets.UTF_8);
assertNotNull(result);
assertNotNull(expectedDiagramText);
assertEquals(expectedDiagramText.replaceAll("\\s+", ""), result.replaceAll("\\s+", ""));which is rendered this way:
 
and produces this PlantUML diagram text:
@startuml
class de.elnarion.test.domain.t0013.Testclass {
	{field} -test1 : long
	{field} ~test2 : long
	{field} #test3 : long
	{field} +test4 : long
	{field} +test5 : long
}
@enduml