< prev index next >

src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/WorkArounds.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2015, 2019, 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 * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 2015, 2020, 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 * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this
*** 25,38 **** package jdk.javadoc.internal.doclets.toolkit; import java.util.ArrayList; import java.util.Arrays; - import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.SortedSet; import java.util.TreeSet; import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Element; --- 25,39 ---- package jdk.javadoc.internal.doclets.toolkit; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; + import java.util.HashSet; import java.util.List; import java.util.Map; + import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Element;
*** 109,149 **** if (doclint != null && shouldCheck.computeIfAbsent(unit, doclint::shouldCheck)) { doclint.scan(path); } } ! // TODO: fix this up correctly ! public void initDocLint(Collection<String> opts, Collection<String> customTagNames) { ! ArrayList<String> doclintOpts = new ArrayList<>(); ! boolean msgOptionSeen = false; ! for (String opt : opts) { ! if (opt.startsWith(DocLint.XMSGS_OPTION)) { ! if (opt.equals(DocLint.XMSGS_CUSTOM_PREFIX + "none")) ! return; ! msgOptionSeen = true; } doclintOpts.add(opt); } ! if (!msgOptionSeen) { doclintOpts.add(DocLint.XMSGS_OPTION); } ! String sep = ""; ! StringBuilder customTags = new StringBuilder(); ! for (String customTag : customTagNames) { ! customTags.append(sep); ! customTags.append(customTag); ! sep = DocLint.SEPARATOR; } ! doclintOpts.add(DocLint.XCUSTOM_TAGS_PREFIX + customTags.toString()); doclintOpts.add(DocLint.XHTML_VERSION_PREFIX + "html5"); JavacTask t = BasicJavacTask.instance(toolEnv.context); doclint = new DocLint(); ! doclint.init(t, doclintOpts.toArray(new String[doclintOpts.size()]), false); } // TODO: fix this up correctly public boolean haveDocLint() { return (doclint == null); --- 110,185 ---- if (doclint != null && shouldCheck.computeIfAbsent(unit, doclint::shouldCheck)) { doclint.scan(path); } } ! /** ! * Initializes doclint, if appropriate, depending on options derived ! * from the doclet command-line options, and the set of custom tags ! * that should be ignored by doclint. ! * ! * DocLint is not enabled if the option {@code -Xmsgs:none} is given, ! * and it is not followed by any options to enable any groups. ! * Note that arguments for {@code -Xmsgs:} can be given individually ! * in separate {@code -Xmsgs:} options, or in a comma-separated list ! * for a single option. For example, the following are equivalent: ! * <ul> ! * <li>{@code -Xmsgs:all} {@code -Xmsgs:-html} ! * <li>{@code -Xmsgs:all,-html} ! * </ul> ! * ! * @param opts options for doclint, derived from the corresponding doclet ! * command-line options ! * @param customTagNames the names of custom tags, to be ignored by doclint ! */ ! public void initDocLint(List<String> opts, Set<String> customTagNames) { ! List<String> doclintOpts = new ArrayList<>(); ! ! // basic analysis of -Xmsgs and -Xmsgs: options to see if doclint is enabled ! Set<String> groups = new HashSet<>(); ! boolean seenXmsgs = false; for (String opt : opts) { ! if (opt.equals(DocLint.XMSGS_OPTION)) { ! groups.add("all"); ! seenXmsgs = true; ! } else if (opt.startsWith(DocLint.XMSGS_CUSTOM_PREFIX)) { ! String[] args = opt.substring(DocLint.XMSGS_CUSTOM_PREFIX.length()) ! .split(DocLint.SEPARATOR); ! for (String a : args) { ! if (a.equals("none")) { ! groups.clear(); ! } else if (a.startsWith("-")) { ! groups.remove(a.substring(1)); ! } else { ! groups.add(a); ! } ! } ! seenXmsgs = true; } doclintOpts.add(opt); } ! if (seenXmsgs) { ! if (groups.isEmpty()) { ! // no groups enabled; do not init doclint ! return; ! } ! } else { ! // no -Xmsgs options of any kind, use default doclintOpts.add(DocLint.XMSGS_OPTION); } ! if (!customTagNames.isEmpty()) { ! String customTags = String.join(DocLint.SEPARATOR, customTagNames); ! doclintOpts.add(DocLint.XCUSTOM_TAGS_PREFIX + customTags); } ! doclintOpts.add(DocLint.XHTML_VERSION_PREFIX + "html5"); JavacTask t = BasicJavacTask.instance(toolEnv.context); doclint = new DocLint(); ! doclint.init(t, doclintOpts.toArray(new String[0]), false); } // TODO: fix this up correctly public boolean haveDocLint() { return (doclint == null);
*** 420,430 **** ExecutableElement md = findMethod(te, "readExternal", Arrays.asList(readExternalParamArr)); if (md != null) { methods.add(md); } ! md = findMethod((ClassSymbol) te, "writeExternal", Arrays.asList(writeExternalParamArr)); if (md != null) { methods.add(md); } } else if (utils.isSerializable(te)) { VarSymbol dsf = getDefinedSerializableFields((ClassSymbol) te); --- 456,466 ---- ExecutableElement md = findMethod(te, "readExternal", Arrays.asList(readExternalParamArr)); if (md != null) { methods.add(md); } ! md = findMethod(te, "writeExternal", Arrays.asList(writeExternalParamArr)); if (md != null) { methods.add(md); } } else if (utils.isSerializable(te)) { VarSymbol dsf = getDefinedSerializableFields((ClassSymbol) te);
*** 432,442 **** /* Define serializable fields with array of ObjectStreamField. * Each ObjectStreamField should be documented by a * serialField tag. */ definesSerializableFields = true; ! fields.add((VariableElement) dsf); } else { /* Calculate default Serializable fields as all * non-transient, non-static fields. * Fields should be documented by serial tag. --- 468,478 ---- /* Define serializable fields with array of ObjectStreamField. * Each ObjectStreamField should be documented by a * serialField tag. */ definesSerializableFields = true; ! fields.add(dsf); } else { /* Calculate default Serializable fields as all * non-transient, non-static fields. * Fields should be documented by serial tag.
*** 571,581 **** * @return an abbreviated PackageElement */ public PackageElement getAbbreviatedPackageElement(PackageElement pkg) { String parsedPackageName = utils.parsePackageName(pkg); ModuleElement encl = (ModuleElement) pkg.getEnclosingElement(); ! PackageElement abbrevPkg = encl == null ? utils.elementUtils.getPackageElement(parsedPackageName) : ((JavacElements) utils.elementUtils).getPackageElement(encl, parsedPackageName); - return abbrevPkg; } } --- 607,616 ---- * @return an abbreviated PackageElement */ public PackageElement getAbbreviatedPackageElement(PackageElement pkg) { String parsedPackageName = utils.parsePackageName(pkg); ModuleElement encl = (ModuleElement) pkg.getEnclosingElement(); ! return encl == null ? utils.elementUtils.getPackageElement(parsedPackageName) : ((JavacElements) utils.elementUtils).getPackageElement(encl, parsedPackageName); } }
< prev index next >