diff --git a/doc/ver.xml b/doc/ver.xml
index 076bc35..b75d125 100644
--- a/doc/ver.xml
+++ b/doc/ver.xml
@@ -16,6 +16,7 @@ the default is off, and it will not inherit from -qualify.
Use <i> tags for italic, because the old font naming approach does not work with SVG anymore.
Replace -nodefontabstractname and -nodefontclassabstractname
with a simple flag -nodefontabstractitalic instead.
+Added -hideprivateinner to hide all private inner classes.
diff --git a/src/main/java/org/umlgraph/doclet/ClassGraph.java b/src/main/java/org/umlgraph/doclet/ClassGraph.java
index 1bc6d0e..fe2e21e 100644
--- a/src/main/java/org/umlgraph/doclet/ClassGraph.java
+++ b/src/main/java/org/umlgraph/doclet/ClassGraph.java
@@ -326,9 +326,11 @@ class ClassGraph {
/** Return true if c has a @hidden tag associated with it */
private boolean hidden(ProgramElementDoc c) {
- return c.tags("hidden").length > 0 || c.tags("view").length > 0 || //
- optionProvider.getOptionsFor(c instanceof ClassDoc ? (ClassDoc) c : c.containingClass()) //
- .matchesHideExpression(c.toString());
+ if (c.tags("hidden").length > 0 || c.tags("view").length > 0)
+ return true;
+ Options opt = optionProvider.getOptionsFor(c instanceof ClassDoc ? (ClassDoc) c : c.containingClass());
+ return opt.matchesHideExpression(c.toString()) //
+ || (opt.hidePrivateInner && c instanceof ClassDoc && c.isPrivate() && ((ClassDoc) c).containingClass() != null);
}
protected ClassInfo getClassInfo(ClassDoc cd, boolean create) {
diff --git a/src/main/java/org/umlgraph/doclet/Options.java b/src/main/java/org/umlgraph/doclet/Options.java
index fb9bc5e..90b7542 100644
--- a/src/main/java/org/umlgraph/doclet/Options.java
+++ b/src/main/java/org/umlgraph/doclet/Options.java
@@ -115,6 +115,7 @@ public class Options implements Cloneable, OptionProvider {
RelationType inferRelationshipType = RelationType.NAVASSOC;
private List collPackages = new ArrayList();
boolean compact = false;
+ boolean hidePrivateInner = false;
// internal option, used by UMLDoc to generate relative links between classes
boolean relativeLinksForSourcePackages = false;
// internal option, used by UMLDoc to force strict matching on the class names
@@ -193,6 +194,7 @@ public class Options implements Cloneable, OptionProvider {
matchOption(option, "qualifyGenerics", true) ||
matchOption(option, "hideGenerics", true) ||
matchOption(option, "horizontal", true) ||
+ matchOption(option, "all") ||
matchOption(option, "attributes", true) ||
matchOption(option, "enumconstants", true) ||
matchOption(option, "operations", true) ||
@@ -203,16 +205,16 @@ public class Options implements Cloneable, OptionProvider {
matchOption(option, "autosize", true) ||
matchOption(option, "commentname", true) ||
matchOption(option, "nodefontabstractitalic", true) ||
- matchOption(option, "all") ||
- matchOption(option, "postfixpackage") ||
- matchOption(option, "noguillemot") ||
- matchOption(option, "views") ||
- matchOption(option, "inferrel") ||
- matchOption(option, "useimports") ||
- matchOption(option, "collapsible") ||
- matchOption(option, "inferdep") ||
- matchOption(option, "inferdepinpackage") ||
- matchOption(option, "compact"))
+ matchOption(option, "postfixpackage", true) ||
+ matchOption(option, "noguillemot", true) ||
+ matchOption(option, "views", true) ||
+ matchOption(option, "inferrel", true) ||
+ matchOption(option, "useimports", true) ||
+ matchOption(option, "collapsible", true) ||
+ matchOption(option, "inferdep", true) ||
+ matchOption(option, "inferdepinpackage", true) ||
+ matchOption(option, "hideprivateinner", true) ||
+ matchOption(option, "compact", true))
return 1;
else if(matchOption(option, "nodefillcolor") ||
@@ -396,6 +398,8 @@ public class Options implements Cloneable, OptionProvider {
inferDependencies = positive;
} else if(matchOption(opt[0], "inferdepinpackage", true)) {
inferDepInPackage = positive;
+ } else if (matchOption(opt[0], "hideprivateinner", true)) {
+ hidePrivateInner = positive;
} else if(matchOption(opt[0], "useimports", true)) {
useImports = positive;
} else if (matchOption(opt[0], "collpackages", true)) {
diff --git a/src/main/java/org/umlgraph/doclet/PackageView.java b/src/main/java/org/umlgraph/doclet/PackageView.java
index 85b2c99..c66bf6d 100755
--- a/src/main/java/org/umlgraph/doclet/PackageView.java
+++ b/src/main/java/org/umlgraph/doclet/PackageView.java
@@ -63,8 +63,8 @@ public class PackageView implements OptionProvider {
boolean inPackage = matcher.matches(cd);
if (inPackage)
opt.showQualified = false;
- if (!(inPackage || this.opt.matchesIncludeExpression(cd.qualifiedName()))
- || this.opt.matchesHideExpression(cd.qualifiedName()))
+ boolean included = inPackage || this.opt.matchesIncludeExpression(cd.qualifiedName());
+ if (!included || this.opt.matchesHideExpression(cd.qualifiedName()))
opt.setOption(HIDE);
}
@@ -73,8 +73,8 @@ public class PackageView implements OptionProvider {
boolean inPackage = matcher.matches(className);
if (inPackage)
opt.showQualified = false;
- if (!(inPackage || this.opt.matchesIncludeExpression(className))
- || this.opt.matchesHideExpression(className))
+ boolean included = inPackage || this.opt.matchesIncludeExpression(className);
+ if (!included || this.opt.matchesHideExpression(className))
opt.setOption(HIDE);
}