--- old/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/BuilderFactory.java Fri Jan 22 12:19:32 2016
+++ /dev/null Fri Jan 22 12:19:32 2016
@@ -1,303 +0,0 @@
-/*
- * Copyright (c) 2003, 2013, 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
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.tools.doclets.internal.toolkit.builders;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import com.sun.javadoc.*;
-import com.sun.tools.javac.jvm.Profile;
-import com.sun.tools.doclets.internal.toolkit.*;
-import com.sun.tools.doclets.internal.toolkit.util.*;
-
-/**
- * The factory for constructing builders.
- *
- *
This is NOT part of any supported API.
- * If you write code that depends on this, you do so at your own risk.
- * This code and its internal interfaces are subject to change or
- * deletion without notice.
- *
- * @author Jamie Ho
- * @since 1.4
- */
-
-public class BuilderFactory {
-
- /**
- * The current configuration of the doclet.
- */
- private final Configuration configuration;
-
- /**
- * The factory to retrieve the required writers from.
- */
- private final WriterFactory writerFactory;
-
- private final AbstractBuilder.Context context;
-
- /**
- * Construct a builder factory using the given configuration.
- * @param configuration the configuration for the current doclet
- * being executed.
- */
- public BuilderFactory (Configuration configuration) {
- this.configuration = configuration;
- this.writerFactory = configuration.getWriterFactory();
-
- Set containingPackagesSeen = new HashSet<>();
- context = new AbstractBuilder.Context(configuration, containingPackagesSeen,
- LayoutParser.getInstance(configuration));
- }
-
- /**
- * Return the builder that builds the constant summary.
- * @return the builder that builds the constant summary.
- */
- public AbstractBuilder getConstantsSummaryBuider() throws Exception {
- return ConstantsSummaryBuilder.getInstance(context,
- writerFactory.getConstantsSummaryWriter());
- }
-
- /**
- * Return the builder that builds the package summary.
- *
- * @param pkg the package being documented.
- * @param prevPkg the previous package being documented.
- * @param nextPkg the next package being documented.
- * @return the builder that builds the constant summary.
- */
- public AbstractBuilder getPackageSummaryBuilder(PackageDoc pkg, PackageDoc prevPkg,
- PackageDoc nextPkg) throws Exception {
- return PackageSummaryBuilder.getInstance(context, pkg,
- writerFactory.getPackageSummaryWriter(pkg, prevPkg, nextPkg));
- }
-
- /**
- * Return the builder that builds the profile summary.
- *
- * @param profile the profile being documented.
- * @param prevProfile the previous profile being documented.
- * @param nextProfile the next profile being documented.
- * @return the builder that builds the profile summary.
- */
- public AbstractBuilder getProfileSummaryBuilder(Profile profile, Profile prevProfile,
- Profile nextProfile) throws Exception {
- return ProfileSummaryBuilder.getInstance(context, profile,
- writerFactory.getProfileSummaryWriter(profile, prevProfile, nextProfile));
- }
-
- /**
- * Return the builder that builds the profile package summary.
- *
- * @param pkg the profile package being documented.
- * @param prevPkg the previous profile package being documented.
- * @param nextPkg the next profile package being documented.
- * @param profile the profile being documented.
- * @return the builder that builds the profile package summary.
- */
- public AbstractBuilder getProfilePackageSummaryBuilder(PackageDoc pkg, PackageDoc prevPkg,
- PackageDoc nextPkg, Profile profile) throws Exception {
- return ProfilePackageSummaryBuilder.getInstance(context, pkg,
- writerFactory.getProfilePackageSummaryWriter(pkg, prevPkg, nextPkg,
- profile), profile);
- }
-
- /**
- * Return the builder for the class.
- *
- * @param classDoc the class being documented.
- * @param prevClass the previous class that was documented.
- * @param nextClass the next class being documented.
- * @param classTree the class tree.
- * @return the writer for the class. Return null if this
- * writer is not supported by the doclet.
- */
- public AbstractBuilder getClassBuilder(ClassDoc classDoc,
- ClassDoc prevClass, ClassDoc nextClass, ClassTree classTree)
- throws Exception {
- return ClassBuilder.getInstance(context, classDoc,
- writerFactory.getClassWriter(classDoc, prevClass, nextClass,
- classTree));
- }
-
- /**
- * Return the builder for the annotation type.
- *
- * @param annotationType the annotation type being documented.
- * @param prevType the previous type that was documented.
- * @param nextType the next type being documented.
- * @return the writer for the annotation type. Return null if this
- * writer is not supported by the doclet.
- */
- public AbstractBuilder getAnnotationTypeBuilder(
- AnnotationTypeDoc annotationType,
- Type prevType, Type nextType)
- throws Exception {
- return AnnotationTypeBuilder.getInstance(context, annotationType,
- writerFactory.getAnnotationTypeWriter(annotationType, prevType, nextType));
- }
-
- /**
- * Return an instance of the method builder for the given class.
- *
- * @return an instance of the method builder for the given class.
- */
- public AbstractBuilder getMethodBuilder(ClassWriter classWriter)
- throws Exception {
- return MethodBuilder.getInstance(context,
- classWriter.getClassDoc(),
- writerFactory.getMethodWriter(classWriter));
- }
-
- /**
- * Return an instance of the annotation type fields builder for the given
- * class.
- *
- * @return an instance of the annotation type field builder for the given
- * annotation type.
- */
- public AbstractBuilder getAnnotationTypeFieldsBuilder(
- AnnotationTypeWriter annotationTypeWriter)
- throws Exception {
- return AnnotationTypeFieldBuilder.getInstance(context,
- annotationTypeWriter.getAnnotationTypeDoc(),
- writerFactory.getAnnotationTypeFieldWriter(
- annotationTypeWriter));
- }
-
- /**
- * Return an instance of the annotation type member builder for the given
- * class.
- *
- * @return an instance of the annotation type member builder for the given
- * annotation type.
- */
- public AbstractBuilder getAnnotationTypeOptionalMemberBuilder(
- AnnotationTypeWriter annotationTypeWriter)
- throws Exception {
- return AnnotationTypeOptionalMemberBuilder.getInstance(context,
- annotationTypeWriter.getAnnotationTypeDoc(),
- writerFactory.getAnnotationTypeOptionalMemberWriter(
- annotationTypeWriter));
- }
-
- /**
- * Return an instance of the annotation type member builder for the given
- * class.
- *
- * @return an instance of the annotation type member builder for the given
- * annotation type.
- */
- public AbstractBuilder getAnnotationTypeRequiredMemberBuilder(
- AnnotationTypeWriter annotationTypeWriter)
- throws Exception {
- return AnnotationTypeRequiredMemberBuilder.getInstance(context,
- annotationTypeWriter.getAnnotationTypeDoc(),
- writerFactory.getAnnotationTypeRequiredMemberWriter(
- annotationTypeWriter));
- }
-
- /**
- * Return an instance of the enum constants builder for the given class.
- *
- * @return an instance of the enum constants builder for the given class.
- */
- public AbstractBuilder getEnumConstantsBuilder(ClassWriter classWriter)
- throws Exception {
- return EnumConstantBuilder.getInstance(context, classWriter.getClassDoc(),
- writerFactory.getEnumConstantWriter(classWriter));
- }
-
- /**
- * Return an instance of the field builder for the given class.
- *
- * @return an instance of the field builder for the given class.
- */
- public AbstractBuilder getFieldBuilder(ClassWriter classWriter)
- throws Exception {
- return FieldBuilder.getInstance(context, classWriter.getClassDoc(),
- writerFactory.getFieldWriter(classWriter));
- }
-
- /**
- * Return an instance of the property builder for the given class.
- *
- * @return an instance of the field builder for the given class.
- */
- public AbstractBuilder getPropertyBuilder(ClassWriter classWriter) throws Exception {
- final PropertyWriter propertyWriter =
- writerFactory.getPropertyWriter(classWriter);
- return PropertyBuilder.getInstance(context,
- classWriter.getClassDoc(),
- propertyWriter);
- }
-
- /**
- * Return an instance of the constructor builder for the given class.
- *
- * @return an instance of the constructor builder for the given class.
- */
- public AbstractBuilder getConstructorBuilder(ClassWriter classWriter)
- throws Exception {
- return ConstructorBuilder.getInstance(context,
- classWriter.getClassDoc(),
- writerFactory.getConstructorWriter(classWriter));
- }
-
- /**
- * Return an instance of the member summary builder for the given class.
- *
- * @return an instance of the member summary builder for the given class.
- */
- public AbstractBuilder getMemberSummaryBuilder(ClassWriter classWriter)
- throws Exception {
- return MemberSummaryBuilder.getInstance(classWriter, context);
- }
-
- /**
- * Return an instance of the member summary builder for the given annotation
- * type.
- *
- * @return an instance of the member summary builder for the given
- * annotation type.
- */
- public AbstractBuilder getMemberSummaryBuilder(
- AnnotationTypeWriter annotationTypeWriter)
- throws Exception {
- return MemberSummaryBuilder.getInstance(annotationTypeWriter, context);
- }
-
- /**
- * Return the builder that builds the serialized form.
- *
- * @return the builder that builds the serialized form.
- */
- public AbstractBuilder getSerializedFormBuilder()
- throws Exception {
- return SerializedFormBuilder.getInstance(context);
- }
-}
--- /dev/null Fri Jan 22 12:19:32 2016
+++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/BuilderFactory.java Fri Jan 22 12:19:32 2016
@@ -0,0 +1,271 @@
+/*
+ * Copyright (c) 2003, 2016, 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
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package jdk.javadoc.internal.doclets.toolkit.builders;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.lang.model.element.PackageElement;
+import javax.lang.model.element.TypeElement;
+import javax.lang.model.type.TypeMirror;
+
+import jdk.javadoc.internal.doclets.toolkit.AnnotationTypeWriter;
+import jdk.javadoc.internal.doclets.toolkit.ClassWriter;
+import jdk.javadoc.internal.doclets.toolkit.Configuration;
+import jdk.javadoc.internal.doclets.toolkit.PropertyWriter;
+import jdk.javadoc.internal.doclets.toolkit.WriterFactory;
+import jdk.javadoc.internal.doclets.toolkit.util.ClassTree;
+
+/**
+ * The factory for constructing builders.
+ *
+ * This is NOT part of any supported API.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.
+ *
+ * @author Jamie Ho
+ * @since 1.4
+ */
+
+public class BuilderFactory {
+
+ /**
+ * The current configuration of the doclet.
+ */
+ private final Configuration configuration;
+
+ /**
+ * The factory to retrieve the required writers from.
+ */
+ private final WriterFactory writerFactory;
+
+ private final AbstractBuilder.Context context;
+
+ /**
+ * Construct a builder factory using the given configuration.
+ * @param configuration the configuration for the current doclet
+ * being executed.
+ */
+ public BuilderFactory (Configuration configuration) {
+ this.configuration = configuration;
+ this.writerFactory = configuration.getWriterFactory();
+
+ Set containingPackagesSeen = new HashSet<>();
+ context = new AbstractBuilder.Context(configuration, containingPackagesSeen,
+ LayoutParser.getInstance(configuration));
+ }
+
+ /**
+ * Return the builder that builds the constant summary.
+ * @return the builder that builds the constant summary.
+ */
+ public AbstractBuilder getConstantsSummaryBuilder() throws Exception {
+ return ConstantsSummaryBuilder.getInstance(context,
+ writerFactory.getConstantsSummaryWriter());
+ }
+
+ /**
+ * Return the builder that builds the package summary.
+ *
+ * @param pkg the package being documented.
+ * @param prevPkg the previous package being documented.
+ * @param nextPkg the next package being documented.
+ * @return the builder that builds the constant summary.
+ */
+ public AbstractBuilder getPackageSummaryBuilder(PackageElement pkg, PackageElement prevPkg,
+ PackageElement nextPkg) throws Exception {
+ return PackageSummaryBuilder.getInstance(context, pkg,
+ writerFactory.getPackageSummaryWriter(pkg, prevPkg, nextPkg));
+ }
+
+ /**
+ * Return the builder for the class.
+ *
+ * @param typeElement the class being documented.
+ * @param prevClass the previous class that was documented.
+ * @param nextClass the next class being documented.
+ * @param classTree the class tree.
+ * @return the writer for the class. Return null if this
+ * writer is not supported by the doclet.
+ */
+ public AbstractBuilder getClassBuilder(TypeElement typeElement,
+ TypeElement prevClass, TypeElement nextClass, ClassTree classTree)
+ throws Exception {
+ return ClassBuilder.getInstance(context, typeElement,
+ writerFactory.getClassWriter(typeElement, prevClass, nextClass, classTree));
+ }
+
+ /**
+ * Return the builder for the annotation type.
+ *
+ * @param annotationType the annotation type being documented.
+ * @param prevType the previous type that was documented.
+ * @param nextType the next type being documented.
+ * @return the writer for the annotation type. Return null if this
+ * writer is not supported by the doclet.
+ */
+ public AbstractBuilder getAnnotationTypeBuilder(
+ TypeElement annotationType, TypeMirror prevType, TypeMirror nextType)
+ throws Exception {
+ return AnnotationTypeBuilder.getInstance(context, annotationType,
+ writerFactory.getAnnotationTypeWriter(annotationType, prevType, nextType));
+ }
+
+ /**
+ * Return an instance of the method builder for the given class.
+ *
+ * @return an instance of the method builder for the given class.
+ */
+ public AbstractBuilder getMethodBuilder(ClassWriter classWriter)
+ throws Exception {
+ return MethodBuilder.getInstance(context, classWriter.getTypeElement(),
+ writerFactory.getMethodWriter(classWriter));
+ }
+
+ /**
+ * Return an instance of the annotation type fields builder for the given
+ * class.
+ *
+ * @return an instance of the annotation type field builder for the given
+ * annotation type.
+ */
+ public AbstractBuilder getAnnotationTypeFieldsBuilder(
+ AnnotationTypeWriter annotationTypeWriter)
+ throws Exception {
+ return AnnotationTypeFieldBuilder.getInstance(context,
+ annotationTypeWriter.getAnnotationTypeElement(),
+ writerFactory.getAnnotationTypeFieldWriter(annotationTypeWriter));
+ }
+
+ /**
+ * Return an instance of the annotation type member builder for the given
+ * class.
+ *
+ * @return an instance of the annotation type member builder for the given
+ * annotation type.
+ */
+ public AbstractBuilder getAnnotationTypeOptionalMemberBuilder(
+ AnnotationTypeWriter annotationTypeWriter)
+ throws Exception {
+ return AnnotationTypeOptionalMemberBuilder.getInstance(context,
+ annotationTypeWriter.getAnnotationTypeElement(),
+ writerFactory.getAnnotationTypeOptionalMemberWriter(annotationTypeWriter));
+ }
+
+ /**
+ * Return an instance of the annotation type member builder for the given
+ * class.
+ *
+ * @return an instance of the annotation type member builder for the given
+ * annotation type.
+ */
+ public AbstractBuilder getAnnotationTypeRequiredMemberBuilder(
+ AnnotationTypeWriter annotationTypeWriter)
+ throws Exception {
+ return AnnotationTypeRequiredMemberBuilder.getInstance(context,
+ annotationTypeWriter.getAnnotationTypeElement(),
+ writerFactory.getAnnotationTypeRequiredMemberWriter(annotationTypeWriter));
+ }
+
+ /**
+ * Return an instance of the enum constants builder for the given class.
+ *
+ * @return an instance of the enum constants builder for the given class.
+ */
+ public AbstractBuilder getEnumConstantsBuilder(ClassWriter classWriter)
+ throws Exception {
+ return EnumConstantBuilder.getInstance(context, classWriter.getTypeElement(),
+ writerFactory.getEnumConstantWriter(classWriter));
+ }
+
+ /**
+ * Return an instance of the field builder for the given class.
+ *
+ * @return an instance of the field builder for the given class.
+ */
+ public AbstractBuilder getFieldBuilder(ClassWriter classWriter) throws Exception {
+ return FieldBuilder.getInstance(context, classWriter.getTypeElement(),
+ writerFactory.getFieldWriter(classWriter));
+ }
+
+ /**
+ * Return an instance of the property builder for the given class.
+ *
+ * @return an instance of the field builder for the given class.
+ */
+ public AbstractBuilder getPropertyBuilder(ClassWriter classWriter) throws Exception {
+ final PropertyWriter propertyWriter =
+ writerFactory.getPropertyWriter(classWriter);
+ return PropertyBuilder.getInstance(context,
+ classWriter.getTypeElement(),
+ propertyWriter);
+ }
+
+ /**
+ * Return an instance of the constructor builder for the given class.
+ *
+ * @return an instance of the constructor builder for the given class.
+ */
+ public AbstractBuilder getConstructorBuilder(ClassWriter classWriter)
+ throws Exception {
+ return ConstructorBuilder.getInstance(context, classWriter.getTypeElement(),
+ writerFactory.getConstructorWriter(classWriter));
+ }
+
+ /**
+ * Return an instance of the member summary builder for the given class.
+ *
+ * @return an instance of the member summary builder for the given class.
+ */
+ public AbstractBuilder getMemberSummaryBuilder(ClassWriter classWriter)
+ throws Exception {
+ return MemberSummaryBuilder.getInstance(classWriter, context);
+ }
+
+ /**
+ * Return an instance of the member summary builder for the given annotation
+ * type.
+ *
+ * @return an instance of the member summary builder for the given
+ * annotation type.
+ */
+ public AbstractBuilder getMemberSummaryBuilder(
+ AnnotationTypeWriter annotationTypeWriter)
+ throws Exception {
+ return MemberSummaryBuilder.getInstance(annotationTypeWriter, context);
+ }
+
+ /**
+ * Return the builder that builds the serialized form.
+ *
+ * @return the builder that builds the serialized form.
+ */
+ public AbstractBuilder getSerializedFormBuilder()
+ throws Exception {
+ return SerializedFormBuilder.getInstance(context);
+ }
+}