src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/VisibleMemberTable.java
equal
deleted
inserted
replaced
207 * @return a list of visible enclosed members |
207 * @return a list of visible enclosed members |
208 */ |
208 */ |
209 public List<? extends Element> getVisibleMembers(Kind kind) { |
209 public List<? extends Element> getVisibleMembers(Kind kind) { |
210 Predicate<Element> declaredAndLeafMembers = e -> { |
210 Predicate<Element> declaredAndLeafMembers = e -> { |
211 TypeElement encl = utils.getEnclosingTypeElement(e); |
211 TypeElement encl = utils.getEnclosingTypeElement(e); |
212 return encl == te || isUndocumentedEnclosure(encl); |
212 return encl == te || utils.isUndocumentedEnclosure(encl); |
213 }; |
213 }; |
214 return getVisibleMembers(kind, declaredAndLeafMembers); |
214 return getVisibleMembers(kind, declaredAndLeafMembers); |
215 } |
215 } |
216 |
216 |
217 /** |
217 /** |
236 */ |
236 */ |
237 public ExecutableElement getOverriddenMethod(ExecutableElement e) { |
237 public ExecutableElement getOverriddenMethod(ExecutableElement e) { |
238 ensureInitialized(); |
238 ensureInitialized(); |
239 |
239 |
240 OverridingMethodInfo found = overriddenMethodTable.get(e); |
240 OverridingMethodInfo found = overriddenMethodTable.get(e); |
241 if (found != null && (found.simpleOverride || isUndocumentedEnclosure(utils.getEnclosingTypeElement(e)))) { |
241 if (found != null |
|
242 && (found.simpleOverride || utils.isUndocumentedEnclosure(utils.getEnclosingTypeElement(e)))) { |
242 return found.overrider; |
243 return found.overrider; |
243 } |
244 } |
244 return null; |
245 return null; |
245 } |
246 } |
246 |
247 |
343 */ |
344 */ |
344 public ExecutableElement getPropertySetter(ExecutableElement propertyMethod) { |
345 public ExecutableElement getPropertySetter(ExecutableElement propertyMethod) { |
345 ensureInitialized(); |
346 ensureInitialized(); |
346 PropertyMembers pm = propertyMap.get(propertyMethod); |
347 PropertyMembers pm = propertyMap.get(propertyMethod); |
347 return pm == null ? null : pm.setter; |
348 return pm == null ? null : pm.setter; |
348 } |
|
349 |
|
350 boolean isUndocumentedEnclosure(TypeElement encl) { |
|
351 return utils.isPackagePrivate(encl) && !utils.isLinkable(encl); |
|
352 } |
349 } |
353 |
350 |
354 private void computeParents() { |
351 private void computeParents() { |
355 for (TypeMirror intfType : te.getInterfaces()) { |
352 for (TypeMirror intfType : te.getInterfaces()) { |
356 TypeElement intfc = utils.asTypeElement(intfType); |
353 TypeElement intfc = utils.asTypeElement(intfType); |
386 computeVisibleProperties(lmt); |
383 computeVisibleProperties(lmt); |
387 } |
384 } |
388 |
385 |
389 private void computeLeafMembers(LocalMemberTable lmt, Kind kind) { |
386 private void computeLeafMembers(LocalMemberTable lmt, Kind kind) { |
390 List<Element> list = new ArrayList<>(); |
387 List<Element> list = new ArrayList<>(); |
391 if (isUndocumentedEnclosure(te)) { |
388 if (utils.isUndocumentedEnclosure(te)) { |
392 list.addAll(lmt.getOrderedMembers(kind)); |
389 list.addAll(lmt.getOrderedMembers(kind)); |
393 } |
390 } |
394 parents.forEach(pvmt -> { |
391 parents.forEach(pvmt -> { |
395 list.addAll(pvmt.getExtraMembers(kind)); |
392 list.addAll(pvmt.getExtraMembers(kind)); |
396 }); |
393 }); |
615 if (elementUtils.overrides(lMethod, inheritedMethod, |
612 if (elementUtils.overrides(lMethod, inheritedMethod, |
616 utils.getEnclosingTypeElement(lMethod))) { |
613 utils.getEnclosingTypeElement(lMethod))) { |
617 |
614 |
618 // Disallow package-private super methods to leak in |
615 // Disallow package-private super methods to leak in |
619 TypeElement encl = utils.getEnclosingTypeElement(inheritedMethod); |
616 TypeElement encl = utils.getEnclosingTypeElement(inheritedMethod); |
620 if (isUndocumentedEnclosure(encl)) { |
617 if (utils.isUndocumentedEnclosure(encl)) { |
621 overriddenMethodTable.computeIfAbsent(lMethod, |
618 overriddenMethodTable.computeIfAbsent(lMethod, |
622 l -> new OverridingMethodInfo(inheritedMethod, false)); |
619 l -> new OverridingMethodInfo(inheritedMethod, false)); |
623 return false; |
620 return false; |
624 } |
621 } |
625 |
622 |