From 0967a912890403d196177746f1dabbe7bdc14c17 Mon Sep 17 00:00:00 2001 From: Erich Schubert Date: Sat, 3 Nov 2018 21:39:36 +0100 Subject: [PATCH] Add -hideprivateinner option --- doc/ver.xml | 1 + .../java/org/umlgraph/doclet/ClassGraph.java | 8 ++++--- .../java/org/umlgraph/doclet/Options.java | 24 +++++++++++-------- .../java/org/umlgraph/doclet/PackageView.java | 8 +++---- 4 files changed, 24 insertions(+), 17 deletions(-) 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); }