src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/ConstantsSummaryBuilder.java
equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. Oracle designates this |
7 * published by the Free Software Foundation. Oracle designates this |
33 import javax.lang.model.element.VariableElement; |
33 import javax.lang.model.element.VariableElement; |
34 |
34 |
35 import jdk.javadoc.internal.doclets.toolkit.ConstantsSummaryWriter; |
35 import jdk.javadoc.internal.doclets.toolkit.ConstantsSummaryWriter; |
36 import jdk.javadoc.internal.doclets.toolkit.Content; |
36 import jdk.javadoc.internal.doclets.toolkit.Content; |
37 import jdk.javadoc.internal.doclets.toolkit.DocletException; |
37 import jdk.javadoc.internal.doclets.toolkit.DocletException; |
38 import jdk.javadoc.internal.doclets.toolkit.util.VisibleMemberMap; |
38 import jdk.javadoc.internal.doclets.toolkit.util.VisibleMemberTable; |
39 |
39 |
|
40 import static jdk.javadoc.internal.doclets.toolkit.util.VisibleMemberTable.Kind.*; |
40 |
41 |
41 /** |
42 /** |
42 * Builds the Constants Summary Page. |
43 * Builds the Constants Summary Page. |
43 * |
44 * |
44 * <p><b>This is NOT part of any supported API. |
45 * <p><b>This is NOT part of any supported API. |
260 * |
261 * |
261 * @param typeElement the class being checked. |
262 * @param typeElement the class being checked. |
262 * @return true if the given package has constant fields to document. |
263 * @return true if the given package has constant fields to document. |
263 */ |
264 */ |
264 private boolean hasConstantField (TypeElement typeElement) { |
265 private boolean hasConstantField (TypeElement typeElement) { |
265 VisibleMemberMap visibleMemberMapFields = configuration.getVisibleMemberMap(typeElement, |
266 VisibleMemberTable vmt = configuration.getVisibleMemberTable(typeElement); |
266 VisibleMemberMap.Kind.FIELDS); |
267 List<? extends Element> fields = vmt.getVisibleMembers(FIELDS); |
267 List<Element> fields = visibleMemberMapFields.getLeafMembers(); |
|
268 for (Element f : fields) { |
268 for (Element f : fields) { |
269 VariableElement field = (VariableElement)f; |
269 VariableElement field = (VariableElement)f; |
270 if (field.getConstantValue() != null) { |
270 if (field.getConstantValue() != null) { |
271 typeElementsWithConstFields.add(typeElement); |
271 typeElementsWithConstFields.add(typeElement); |
272 return true; |
272 return true; |
277 |
277 |
278 /** |
278 /** |
279 * Return true if the given package name has been printed. Also |
279 * Return true if the given package name has been printed. Also |
280 * return true if the root of this package has been printed. |
280 * return true if the root of this package has been printed. |
281 * |
281 * |
282 * @param pkgname the name of the package to check. |
282 * @param pkg the name of the package to check. |
283 */ |
283 */ |
284 private boolean hasPrintedPackageIndex(PackageElement pkg) { |
284 private boolean hasPrintedPackageIndex(PackageElement pkg) { |
285 for (PackageElement printedPkg : printedPackageHeaders) { |
285 for (PackageElement printedPkg : printedPackageHeaders) { |
286 if (utils.getPackageName(pkg).startsWith(utils.parsePackageName(printedPkg))) { |
286 if (utils.getPackageName(pkg).startsWith(utils.parsePackageName(printedPkg))) { |
287 return true; |
287 return true; |
294 * Print the table of constants. |
294 * Print the table of constants. |
295 * |
295 * |
296 * @author Jamie Ho |
296 * @author Jamie Ho |
297 */ |
297 */ |
298 private class ConstantFieldBuilder { |
298 private class ConstantFieldBuilder { |
299 |
|
300 /** |
|
301 * The map used to get the visible variables. |
|
302 */ |
|
303 protected VisibleMemberMap visibleMemberMapFields = null; |
|
304 |
|
305 /** |
|
306 * The map used to get the visible variables. |
|
307 */ |
|
308 protected VisibleMemberMap visibleMemberMapEnumConst = null; |
|
309 |
299 |
310 /** |
300 /** |
311 * The typeElement that we are examining constants for. |
301 * The typeElement that we are examining constants for. |
312 */ |
302 */ |
313 protected TypeElement typeElement; |
303 protected TypeElement typeElement; |
316 * Construct a ConstantFieldSubWriter. |
306 * Construct a ConstantFieldSubWriter. |
317 * @param typeElement the typeElement that we are examining constants for. |
307 * @param typeElement the typeElement that we are examining constants for. |
318 */ |
308 */ |
319 public ConstantFieldBuilder(TypeElement typeElement) { |
309 public ConstantFieldBuilder(TypeElement typeElement) { |
320 this.typeElement = typeElement; |
310 this.typeElement = typeElement; |
321 visibleMemberMapFields = configuration.getVisibleMemberMap(typeElement, |
|
322 VisibleMemberMap.Kind.FIELDS); |
|
323 visibleMemberMapEnumConst = configuration.getVisibleMemberMap(typeElement, |
|
324 VisibleMemberMap.Kind.ENUM_CONSTANTS); |
|
325 } |
311 } |
326 |
312 |
327 /** |
313 /** |
328 * Builds the table of constants for a given class. |
314 * Builds the table of constants for a given class. |
329 * |
315 * |
340 /** |
326 /** |
341 * Returns a set of visible constant fields for the given type. |
327 * Returns a set of visible constant fields for the given type. |
342 * @return the set of visible constant fields for the given type. |
328 * @return the set of visible constant fields for the given type. |
343 */ |
329 */ |
344 protected SortedSet<VariableElement> members() { |
330 protected SortedSet<VariableElement> members() { |
345 List<Element> members = visibleMemberMapFields.getLeafMembers(); |
331 VisibleMemberTable vmt = configuration.getVisibleMemberTable(typeElement); |
346 members.addAll(visibleMemberMapEnumConst.getLeafMembers()); |
332 List<Element> members = new ArrayList<>(); |
|
333 members.addAll(vmt.getVisibleMembers(FIELDS)); |
|
334 members.addAll(vmt.getVisibleMembers(ENUM_CONSTANTS)); |
347 SortedSet<VariableElement> includes = |
335 SortedSet<VariableElement> includes = |
348 new TreeSet<>(utils.makeGeneralPurposeComparator()); |
336 new TreeSet<>(utils.makeGeneralPurposeComparator()); |
349 for (Element element : members) { |
337 for (Element element : members) { |
350 VariableElement member = (VariableElement)element; |
338 VariableElement member = (VariableElement)element; |
351 if (member.getConstantValue() != null) { |
339 if (member.getConstantValue() != null) { |