try { final Field declaredField = Class.forName(containingClass.qualifiedName(), false, Thread.currentThread() .getContextClassLoader()).getDeclaredField(referencedMember.name()); if (referencedMember.isFinal()) { declaredField.setAccessible(true);
/** * Get members for meta tag keywords as an array, * where each member name is a string element of the array. * The parameter lists are not included in the keywords; * therefore all overloaded methods are combined.<br> * Example: getValue(Object) is returned in array as getValue() * * @param memberdocs array of MemberDoc objects to be added to keywords */ protected ArrayList<String> getMemberKeywords(MemberDoc[] memberdocs) { ArrayList<String> results = new ArrayList<String>(); String membername; for (int i=0; i < memberdocs.length; i++) { membername = memberdocs[i].name() + (memberdocs[i].isMethod() ? "()" : ""); if ( ! results.contains(membername) ) { results.add(membername); } } return results; } }
/** * Get members for meta tag keywords as an array, * where each member name is a string element of the array. * The parameter lists are not included in the keywords; * therefore all overloaded methods are combined.<br> * Example: getValue(Object) is returned in array as getValue() * * @param memberdocs array of MemberDoc objects to be added to keywords */ protected ArrayList<String> getMemberKeywords(MemberDoc[] memberdocs) { ArrayList<String> results = new ArrayList<String>(); String membername; for (int i=0; i < memberdocs.length; i++) { membername = memberdocs[i].name() + (memberdocs[i].isMethod() ? "()" : ""); if ( ! results.contains(membername) ) { results.add(membername); } } return results; } }
/** * Get the header for the section. * * @param member the member being documented. * @return a header content for the section. */ protected Content getHead(MemberDoc member) { Content memberContent = new StringContent(member.name()); Content heading = HtmlTree.HEADING(HtmlConstants.MEMBER_HEADING, memberContent); return heading; }
protected void printHead(MemberDoc member) { writer.h3(); writer.print(member.name()); writer.h3End(); }
/** * {@inheritDoc} */ public Content getAnnotationDocTreeHeader(MemberDoc member, Content annotationDetailsTree) { annotationDetailsTree.addContent( writer.getMarkerAnchor(member.name())); Content annotationDocTree = writer.getMemberTreeHeader(); Content heading = new HtmlTree(HtmlConstants.MEMBER_HEADING); heading.addContent(member.name()); annotationDocTree.addContent(heading); return annotationDocTree; }
final Object object; try { Field declaredField = Class.forName( containingClass.qualifiedName(), false, Thread.currentThread().getContextClassLoader() ).getDeclaredField( referencedMember.name() ); if ( referencedMember.isFinal() ) { declaredField.setAccessible( true );
private static String getIncludeFromLink(SeeTag linkTag) { final MemberDoc fieldDoc = linkTag.referencedMember(); if (null == fieldDoc || !fieldDoc.isStatic() || !fieldDoc.isField()) { return ""; } ClassDoc owner = fieldDoc.containingClass(); try { Field declaredField = Class.forName(owner.qualifiedName(), false, Thread.currentThread().getContextClassLoader()).getDeclaredField(fieldDoc.name()); if (!String.class.equals(declaredField.getType())) { return ""; } if (fieldDoc.isFinal() || fieldDoc.isPrivate() || fieldDoc.isProtected()) { declaredField.setAccessible(true); } return (String) declaredField.get(null); } catch (Exception e) { e.printStackTrace(); return ""; } }
/** * {@inheritDoc} */ public Content getAnnotationDocTreeHeader(MemberDoc member, Content annotationDetailsTree) { annotationDetailsTree.addContent( writer.getMarkerAnchor(member.name() + ((ExecutableMemberDoc) member).signature())); Content annotationDocTree = writer.getMemberTreeHeader(); Content heading = new HtmlTree(HtmlConstants.MEMBER_HEADING); heading.addContent(member.name()); annotationDocTree.addContent(heading); return annotationDocTree; }
/** * Add description for Class, Field, Method or Constructor. * * @param member MemberDoc for the member of the Class Kind * @param dlTree the content tree to which the description will be added */ protected void addDescription(MemberDoc member, Content dlTree) { String name = (member instanceof ExecutableMemberDoc)? member.name() + ((ExecutableMemberDoc)member).flatSignature() : member.name(); Content span = HtmlTree.SPAN(HtmlStyle.memberNameLink, getDocLink(LinkInfoImpl.Kind.INDEX, member, name)); Content dt = HtmlTree.DT(span); dt.addContent(" - "); addMemberDesc(member, dt); dlTree.addContent(dt); Content dd = new HtmlTree(HtmlTag.DD); addComment(member, dd); dlTree.addContent(dd); }
/** * Generate Description for Class, Field, Method or Constructor. * for Java.* Packages Class Members. * * @param member MemberDoc for the member of the Class Kind. * @see com.sun.javadoc.MemberDoc */ protected void printDescription(MemberDoc member) { String name = (member instanceof ExecutableMemberDoc)? member.name() + ((ExecutableMemberDoc)member).flatSignature() : member.name(); if (name.indexOf("<") != -1 || name.indexOf(">") != -1) { name = Util.escapeHtmlChars(name); } ClassDoc containing = member.containingClass(); dt(); printDocLink(LinkInfoImpl.CONTEXT_INDEX, member, name, true); println(" - "); printMemberDesc(member); println(); dtEnd(); dd(); printComment(member); ddEnd(); println(); }
/** * {@inheritDoc} */ public void writeSignature(MemberDoc member) { writer.pre(); writer.writeAnnotationInfo(member); printModifiers(member); writer.printLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_MEMBER, getType(member))); print(' '); if (configuration().linksource) { writer.printSrcLink(member, member.name()); } else { strong(member.name()); } writer.preEnd(); assert !writer.getMemberDetailsListPrinted(); }
/** * {@inheritDoc} */ public Content getSignature(MemberDoc member) { Content pre = new HtmlTree(HtmlTag.PRE); writer.addAnnotationInfo(member, pre); addModifiers(member, pre); Content link = writer.getLink(new LinkInfoImpl(configuration, LinkInfoImpl.Kind.MEMBER, getType(member))); pre.addContent(link); pre.addContent(writer.getSpace()); if (configuration.linksource) { Content memberName = new StringContent(member.name()); writer.addSrcLink(member, memberName, pre); } else { addName(member.name(), pre); } return pre; }
/** * {@inheritDoc} */ public Content getSignature(MemberDoc member) { Content pre = new HtmlTree(HtmlTag.PRE); writer.addAnnotationInfo(member, pre); addModifiers(member, pre); Content link = writer.getLink(new LinkInfoImpl(configuration, LinkInfoImpl.Kind.MEMBER, getType(member))); pre.addContent(link); pre.addContent(writer.getSpace()); if (configuration.linksource) { Content memberName = new StringContent(member.name()); writer.addSrcLink(member, memberName, pre); } else { addName(member.name(), pre); } return pre; }
private String getSerializedLinkFromTag(final SeeTag linkTag, Collection<String> expands) { final MemberDoc referencedMember = linkTag.referencedMember(); if (referencedMember == null) { return null; // Addition by Atlassian } if (!referencedMember.isStatic()) { return null; } /* * Get referenced example bean */ final ClassDoc containingClass = referencedMember.containingClass(); final String className = containingClass.qualifiedName(); final String fieldName = referencedMember.name(); final Option<Object> object = ReflectionKit.loadClassFieldValue(className, fieldName); return object.flatMap(o -> atlassianJsonMarshaller.marshallBeanToJson(o, expands)).getOrNull(); }
doc.name(), label, strong ) );
public Content getDocLink(LinkInfoImpl.Kind context, ClassDoc classDoc, MemberDoc doc, Content label, boolean strong, boolean isProperty) { if (! (doc.isIncluded() || Util.isLinkable(classDoc, configuration))) { return label; } else if (doc instanceof ExecutableMemberDoc) { ExecutableMemberDoc emd = (ExecutableMemberDoc)doc; return getLink(new LinkInfoImpl(configuration, context, classDoc) .label(label).where(getName(getAnchor(emd, isProperty))).strong(strong)); } else if (doc instanceof MemberDoc) { return getLink(new LinkInfoImpl(configuration, context, classDoc) .label(label).where(getName(doc.name())).strong(strong)); } else { return label; } }
/** * Return the link for the given member. * * @param context the id of the context where the link will be added * @param classDoc the classDoc that we should link to. This is not * necessarily equal to doc.containingClass(). We may be * inheriting comments * @param doc the member being linked to * @param label the label for the link * @return the link for the given member */ public Content getDocLink(LinkInfoImpl.Kind context, ClassDoc classDoc, MemberDoc doc, Content label) { if (! (doc.isIncluded() || Util.isLinkable(classDoc, configuration))) { return label; } else if (doc instanceof ExecutableMemberDoc) { ExecutableMemberDoc emd = (ExecutableMemberDoc) doc; return getLink(new LinkInfoImpl(configuration, context, classDoc) .label(label).where(getName(getAnchor(emd)))); } else if (doc instanceof MemberDoc) { return getLink(new LinkInfoImpl(configuration, context, classDoc) .label(label).where(getName(doc.name()))); } else { return label; } }
private Content annotationValueToContent(AnnotationValue annotationValue) { if (annotationValue.value() instanceof Type) { Type type = (Type) annotationValue.value(); if (type.asClassDoc() != null) { LinkInfoImpl linkInfo = new LinkInfoImpl(configuration, LinkInfoImpl.Kind.ANNOTATION, type); linkInfo.label = new StringContent((type.asClassDoc().isIncluded() ? type.typeName() : type.qualifiedTypeName()) + type.dimension() + ".class"); return getLink(linkInfo); } else { return new StringContent(type.typeName() + type.dimension() + ".class"); } } else if (annotationValue.value() instanceof AnnotationDesc) { List<Content> list = getAnnotations(0, new AnnotationDesc[]{(AnnotationDesc) annotationValue.value()}, false); ContentBuilder buf = new ContentBuilder(); for (Content c: list) { buf.addContent(c); } return buf; } else if (annotationValue.value() instanceof MemberDoc) { return getDocLink(LinkInfoImpl.Kind.ANNOTATION, (MemberDoc) annotationValue.value(), ((MemberDoc) annotationValue.value()).name(), false); } else { return new StringContent(annotationValue.toString()); } }