1.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/MemberSummaryBuilder.java Wed Nov 14 17:23:10 2012 -0800 1.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/MemberSummaryBuilder.java Thu Nov 15 09:18:36 2012 -0800 1.3 @@ -53,7 +53,7 @@ 1.4 /** 1.5 * The visible members for the given class. 1.6 */ 1.7 - private VisibleMemberMap[] visibleMemberMaps; 1.8 + private final VisibleMemberMap[] visibleMemberMaps; 1.9 1.10 /** 1.11 * The member summary writers for the given class. 1.12 @@ -63,10 +63,27 @@ 1.13 /** 1.14 * The type being documented. 1.15 */ 1.16 - private ClassDoc classDoc; 1.17 + private final ClassDoc classDoc; 1.18 1.19 - private MemberSummaryBuilder(Configuration configuration) { 1.20 - super(configuration); 1.21 + /** 1.22 + * Construct a new MemberSummaryBuilder. 1.23 + * 1.24 + * @param classWriter the writer for the class whose members are being 1.25 + * summarized. 1.26 + * @param context the build context. 1.27 + */ 1.28 + private MemberSummaryBuilder(Context context, ClassDoc classDoc) { 1.29 + super(context); 1.30 + this.classDoc = classDoc; 1.31 + visibleMemberMaps = 1.32 + new VisibleMemberMap[VisibleMemberMap.NUM_MEMBER_TYPES]; 1.33 + for (int i = 0; i < VisibleMemberMap.NUM_MEMBER_TYPES; i++) { 1.34 + visibleMemberMaps[i] = 1.35 + new VisibleMemberMap( 1.36 + classDoc, 1.37 + i, 1.38 + configuration.nodeprecated); 1.39 + } 1.40 } 1.41 1.42 /** 1.43 @@ -74,14 +91,22 @@ 1.44 * 1.45 * @param classWriter the writer for the class whose members are being 1.46 * summarized. 1.47 - * @param configuration the current configuration of the doclet. 1.48 + * @param context the build context. 1.49 */ 1.50 public static MemberSummaryBuilder getInstance( 1.51 - ClassWriter classWriter, Configuration configuration) 1.52 + ClassWriter classWriter, Context context) 1.53 throws Exception { 1.54 - MemberSummaryBuilder builder = new MemberSummaryBuilder(configuration); 1.55 - builder.classDoc = classWriter.getClassDoc(); 1.56 - builder.init(classWriter); 1.57 + MemberSummaryBuilder builder = new MemberSummaryBuilder(context, 1.58 + classWriter.getClassDoc()); 1.59 + builder.memberSummaryWriters = 1.60 + new MemberSummaryWriter[VisibleMemberMap.NUM_MEMBER_TYPES]; 1.61 + WriterFactory wf = context.configuration.getWriterFactory(); 1.62 + for (int i = 0; i < VisibleMemberMap.NUM_MEMBER_TYPES; i++) { 1.63 + builder.memberSummaryWriters[i] = 1.64 + builder.visibleMemberMaps[i].noVisibleMembers() ? 1.65 + null : 1.66 + wf.getMemberSummaryWriter(classWriter, i); 1.67 + } 1.68 return builder; 1.69 } 1.70 1.71 @@ -93,44 +118,23 @@ 1.72 * @param configuration the current configuration of the doclet. 1.73 */ 1.74 public static MemberSummaryBuilder getInstance( 1.75 - AnnotationTypeWriter annotationTypeWriter, Configuration configuration) 1.76 + AnnotationTypeWriter annotationTypeWriter, Context context) 1.77 throws Exception { 1.78 - MemberSummaryBuilder builder = new MemberSummaryBuilder(configuration); 1.79 - builder.classDoc = annotationTypeWriter.getAnnotationTypeDoc(); 1.80 - builder.init(annotationTypeWriter); 1.81 + MemberSummaryBuilder builder = new MemberSummaryBuilder(context, 1.82 + annotationTypeWriter.getAnnotationTypeDoc()); 1.83 + builder.memberSummaryWriters = 1.84 + new MemberSummaryWriter[VisibleMemberMap.NUM_MEMBER_TYPES]; 1.85 + WriterFactory wf = context.configuration.getWriterFactory(); 1.86 + for (int i = 0; i < VisibleMemberMap.NUM_MEMBER_TYPES; i++) { 1.87 + builder.memberSummaryWriters[i] = 1.88 + builder.visibleMemberMaps[i].noVisibleMembers()? 1.89 + null : 1.90 + wf.getMemberSummaryWriter( 1.91 + annotationTypeWriter, i); 1.92 + } 1.93 return builder; 1.94 } 1.95 1.96 - private void init(Object writer) throws Exception { 1.97 - visibleMemberMaps = 1.98 - new VisibleMemberMap[VisibleMemberMap.NUM_MEMBER_TYPES]; 1.99 - for (int i = 0; i < VisibleMemberMap.NUM_MEMBER_TYPES; i++) { 1.100 - visibleMemberMaps[i] = 1.101 - new VisibleMemberMap( 1.102 - classDoc, 1.103 - i, 1.104 - configuration.nodeprecated); 1.105 - } 1.106 - memberSummaryWriters = 1.107 - new MemberSummaryWriter[VisibleMemberMap.NUM_MEMBER_TYPES]; 1.108 - for (int i = 0; i < VisibleMemberMap.NUM_MEMBER_TYPES; i++) { 1.109 - if (classDoc.isAnnotationType()) { 1.110 - memberSummaryWriters[i] = 1.111 - visibleMemberMaps[i].noVisibleMembers()? 1.112 - null : 1.113 - configuration.getWriterFactory().getMemberSummaryWriter( 1.114 - (AnnotationTypeWriter) writer, i); 1.115 - } else { 1.116 - memberSummaryWriters[i] = 1.117 - visibleMemberMaps[i].noVisibleMembers()? 1.118 - null : 1.119 - configuration.getWriterFactory().getMemberSummaryWriter( 1.120 - (ClassWriter) writer, i); 1.121 - } 1.122 - } 1.123 - 1.124 - } 1.125 - 1.126 /** 1.127 * {@inheritDoc} 1.128 */