43 * @author Bhavesh Patel (Modified) |
43 * @author Bhavesh Patel (Modified) |
44 */ |
44 */ |
45 public abstract class AbstractExecutableMemberWriter extends AbstractMemberWriter { |
45 public abstract class AbstractExecutableMemberWriter extends AbstractMemberWriter { |
46 |
46 |
47 public AbstractExecutableMemberWriter(SubWriterHolderWriter writer, |
47 public AbstractExecutableMemberWriter(SubWriterHolderWriter writer, |
48 ClassDoc classdoc) { |
48 ClassDoc classdoc) { |
49 super(writer, classdoc); |
49 super(writer, classdoc); |
50 } |
50 } |
51 |
51 |
52 public AbstractExecutableMemberWriter(SubWriterHolderWriter writer) { |
52 public AbstractExecutableMemberWriter(SubWriterHolderWriter writer) { |
53 super(writer); |
53 super(writer); |
59 * @param member the member to write type parameters for. |
59 * @param member the member to write type parameters for. |
60 * @param htmltree the content tree to which the parameters will be added. |
60 * @param htmltree the content tree to which the parameters will be added. |
61 * @return the display length required to write this information. |
61 * @return the display length required to write this information. |
62 */ |
62 */ |
63 protected int addTypeParameters(ExecutableMemberDoc member, Content htmltree) { |
63 protected int addTypeParameters(ExecutableMemberDoc member, Content htmltree) { |
64 LinkInfoImpl linkInfo = new LinkInfoImpl( |
64 LinkInfoImpl linkInfo = new LinkInfoImpl(configuration, |
65 LinkInfoImpl.CONTEXT_MEMBER_TYPE_PARAMS, member, false); |
65 LinkInfoImpl.CONTEXT_MEMBER_TYPE_PARAMS, member, false); |
66 String typeParameters = writer.getTypeParameterLinks(linkInfo); |
66 String typeParameters = writer.getTypeParameterLinks(linkInfo); |
67 if (linkInfo.displayLength > 0) { |
67 if (linkInfo.displayLength > 0) { |
68 Content linkContent = new RawHtml(typeParameters); |
68 Content linkContent = new RawHtml(typeParameters); |
69 htmltree.addContent(linkContent); |
69 htmltree.addContent(linkContent); |
127 */ |
127 */ |
128 protected void addParam(ExecutableMemberDoc member, Parameter param, |
128 protected void addParam(ExecutableMemberDoc member, Parameter param, |
129 boolean isVarArg, Content tree) { |
129 boolean isVarArg, Content tree) { |
130 if (param.type() != null) { |
130 if (param.type() != null) { |
131 Content link = new RawHtml(writer.getLink(new LinkInfoImpl( |
131 Content link = new RawHtml(writer.getLink(new LinkInfoImpl( |
132 LinkInfoImpl.CONTEXT_EXECUTABLE_MEMBER_PARAM, param.type(), |
132 configuration, LinkInfoImpl.CONTEXT_EXECUTABLE_MEMBER_PARAM, |
133 isVarArg))); |
133 param.type(), isVarArg))); |
134 tree.addContent(link); |
134 tree.addContent(link); |
135 } |
135 } |
136 if(param.name().length() > 0) { |
136 if(param.name().length() > 0) { |
137 tree.addContent(writer.getSpace()); |
137 tree.addContent(writer.getSpace()); |
138 tree.addContent(param.name()); |
138 tree.addContent(param.name()); |
159 protected void addParameters(ExecutableMemberDoc member, |
159 protected void addParameters(ExecutableMemberDoc member, |
160 boolean includeAnnotations, Content htmltree) { |
160 boolean includeAnnotations, Content htmltree) { |
161 htmltree.addContent("("); |
161 htmltree.addContent("("); |
162 Parameter[] params = member.parameters(); |
162 Parameter[] params = member.parameters(); |
163 String indent = makeSpace(writer.displayLength); |
163 String indent = makeSpace(writer.displayLength); |
164 if (configuration().linksource) { |
164 if (configuration.linksource) { |
165 //add spaces to offset indentation changes caused by link. |
165 //add spaces to offset indentation changes caused by link. |
166 indent+= makeSpace(member.name().length()); |
166 indent+= makeSpace(member.name().length()); |
167 } |
167 } |
168 int paramstart; |
168 int paramstart; |
169 for (paramstart = 0; paramstart < params.length; paramstart++) { |
169 for (paramstart = 0; paramstart < params.length; paramstart++) { |
210 * @param htmltree the content tree to which the exceptions information will be added. |
210 * @param htmltree the content tree to which the exceptions information will be added. |
211 */ |
211 */ |
212 protected void addExceptions(ExecutableMemberDoc member, Content htmltree) { |
212 protected void addExceptions(ExecutableMemberDoc member, Content htmltree) { |
213 Type[] exceptions = member.thrownExceptionTypes(); |
213 Type[] exceptions = member.thrownExceptionTypes(); |
214 if(exceptions.length > 0) { |
214 if(exceptions.length > 0) { |
215 LinkInfoImpl memberTypeParam = new LinkInfoImpl( |
215 LinkInfoImpl memberTypeParam = new LinkInfoImpl(configuration, |
216 LinkInfoImpl.CONTEXT_MEMBER, member, false); |
216 LinkInfoImpl.CONTEXT_MEMBER, member, false); |
217 int retlen = getReturnTypeLength(member); |
217 int retlen = getReturnTypeLength(member); |
218 writer.getTypeParameterLinks(memberTypeParam); |
218 writer.getTypeParameterLinks(memberTypeParam); |
219 retlen += memberTypeParam.displayLength == 0 ? |
219 retlen += memberTypeParam.displayLength == 0 ? |
220 0 : memberTypeParam.displayLength + 1; |
220 0 : memberTypeParam.displayLength + 1; |
222 member.name().length() + retlen - 4); |
222 member.name().length() + retlen - 4); |
223 htmltree.addContent(DocletConstants.NL); |
223 htmltree.addContent(DocletConstants.NL); |
224 htmltree.addContent(indent); |
224 htmltree.addContent(indent); |
225 htmltree.addContent("throws "); |
225 htmltree.addContent("throws "); |
226 indent += " "; |
226 indent += " "; |
227 Content link = new RawHtml(writer.getLink(new LinkInfoImpl( |
227 Content link = new RawHtml(writer.getLink(new LinkInfoImpl(configuration, |
228 LinkInfoImpl.CONTEXT_MEMBER, exceptions[0]))); |
228 LinkInfoImpl.CONTEXT_MEMBER, exceptions[0]))); |
229 htmltree.addContent(link); |
229 htmltree.addContent(link); |
230 for(int i = 1; i < exceptions.length; i++) { |
230 for(int i = 1; i < exceptions.length; i++) { |
231 htmltree.addContent(","); |
231 htmltree.addContent(","); |
232 htmltree.addContent(DocletConstants.NL); |
232 htmltree.addContent(DocletConstants.NL); |
233 htmltree.addContent(indent); |
233 htmltree.addContent(indent); |
234 Content exceptionLink = new RawHtml(writer.getLink(new LinkInfoImpl( |
234 Content exceptionLink = new RawHtml(writer.getLink(new LinkInfoImpl( |
235 LinkInfoImpl.CONTEXT_MEMBER, exceptions[i]))); |
235 configuration, LinkInfoImpl.CONTEXT_MEMBER, exceptions[i]))); |
236 htmltree.addContent(exceptionLink); |
236 htmltree.addContent(exceptionLink); |
237 } |
237 } |
238 } |
238 } |
239 } |
239 } |
240 |
240 |
244 Type rettype = method.returnType(); |
244 Type rettype = method.returnType(); |
245 if (rettype.isPrimitive()) { |
245 if (rettype.isPrimitive()) { |
246 return rettype.typeName().length() + |
246 return rettype.typeName().length() + |
247 rettype.dimension().length(); |
247 rettype.dimension().length(); |
248 } else { |
248 } else { |
249 LinkInfoImpl linkInfo = new LinkInfoImpl( |
249 LinkInfoImpl linkInfo = new LinkInfoImpl(configuration, |
250 LinkInfoImpl.CONTEXT_MEMBER, rettype); |
250 LinkInfoImpl.CONTEXT_MEMBER, rettype); |
251 writer.getLink(linkInfo); |
251 writer.getLink(linkInfo); |
252 return linkInfo.displayLength; |
252 return linkInfo.displayLength; |
253 } |
253 } |
254 } else { // it's a constructordoc |
254 } else { // it's a constructordoc |