src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/AbstractMemberBuilder.java
changeset 49879 601277b1d582
parent 47216 71c04702a3d5
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/AbstractMemberBuilder.java	Tue Apr 24 16:48:29 2018 -0700
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/AbstractMemberBuilder.java	Tue Apr 24 11:54:03 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,8 +25,14 @@
 
 package jdk.javadoc.internal.doclets.toolkit.builders;
 
+import java.util.List;
+import javax.lang.model.element.Element;
+import javax.lang.model.element.TypeElement;
+
 import jdk.javadoc.internal.doclets.toolkit.Content;
 import jdk.javadoc.internal.doclets.toolkit.DocletException;
+import jdk.javadoc.internal.doclets.toolkit.util.VisibleMemberTable;
+import jdk.javadoc.internal.doclets.toolkit.util.VisibleMemberTable.Kind;
 
 /**
  * The superclass for all member builders.  Member builders are only executed
@@ -42,13 +48,19 @@
  */
 public abstract class AbstractMemberBuilder extends AbstractBuilder {
 
+    final protected TypeElement typeElement;
+
+    final protected VisibleMemberTable visibleMemberTable;
+
     /**
      * Construct a SubBuilder.
      * @param context a context object, providing information used in this run
      *        of the doclet.
      */
-    public AbstractMemberBuilder(Context context) {
+    public AbstractMemberBuilder(Context context, TypeElement typeElement) {
         super(context);
+        this.typeElement = typeElement;
+        visibleMemberTable = configuration.getVisibleMemberTable(typeElement);
     }
 
     /**
@@ -77,4 +89,14 @@
      * @return true if this subbuilder has anything to document
      */
     public abstract boolean hasMembersToDocument();
+
+    /**
+     * Returns a list of visible elements of the specified kind in this
+     * type element.
+     * @param kind of members
+     * @return a list of members
+     */
+    protected List<? extends Element> getVisibleMembers(Kind kind) {
+        return visibleMemberTable.getVisibleMembers(kind);
+    }
 }