public Type superclassType() { return wrapped.superclassType(); }
private static void findAllInterfaceTypes(Map<ClassDoc,Type> results, ClassDoc c, boolean raw, Configuration configuration) { Type superType = c.superclassType(); if (superType == null) return; addAllInterfaceTypes(results, superType, interfaceTypesOf(superType), raw, configuration); }
private static void findAllInterfaceTypes(Map<ClassDoc,Type> results, ClassDoc c, boolean raw, Configuration configuration) { Type superType = c.superclassType(); if (superType == null) return; addAllInterfaceTypes(results, superType, superType instanceof ClassDoc ? ((ClassDoc) superType).interfaceTypes() : ((ParameterizedType) superType).interfaceTypes(), raw, configuration); }
/** * Given a class, return the closest visible super class. * * @param classDoc the class we are searching the parent for. * @param configuration the current configuration of the doclet. * @return the closest visible super class. Return null if it cannot * be found (i.e. classDoc is java.lang.Object). */ public static Type getFirstVisibleSuperClass(ClassDoc classDoc, Configuration configuration) { if (classDoc == null) { return null; } Type sup = classDoc.superclassType(); ClassDoc supClassDoc = classDoc.superclass(); while (sup != null && (! (supClassDoc.isPublic() || isLinkable(supClassDoc, configuration))) ) { if (supClassDoc.superclass().qualifiedName().equals(supClassDoc.qualifiedName())) break; sup = supClassDoc.superclassType(); supClassDoc = supClassDoc.superclass(); } if (classDoc.equals(supClassDoc)) { return null; } return sup; }
/** * Given a class, return the closest visible super class. * * @param classDoc the class we are searching the parent for. * @param configuration the current configuration of the doclet. * @return the closest visible super class. Return null if it cannot * be found (i.e. classDoc is java.lang.Object). */ public static Type getFirstVisibleSuperClass(ClassDoc classDoc, Configuration configuration) { if (classDoc == null) { return null; } Type sup = classDoc.superclassType(); ClassDoc supClassDoc = classDoc.superclass(); while (sup != null && (! (supClassDoc.isPublic() || isLinkable(supClassDoc, configuration))) ) { if (supClassDoc.superclass().qualifiedName().equals(supClassDoc.qualifiedName())) break; sup = supClassDoc.superclassType(); supClassDoc = supClassDoc.superclass(); } if (classDoc.equals(supClassDoc)) { return null; } return sup; }
} else if (type instanceof ClassDoc) { interfaceTypes = ((ClassDoc) type).interfaceTypes(); superType = ((ClassDoc) type).superclassType(); } else { interfaceTypes = type.asClassDoc().interfaceTypes(); superType = type.asClassDoc().superclassType();
} else if (type instanceof ClassDoc) { interfaceTypes = ((ClassDoc) type).interfaceTypes(); superType = ((ClassDoc) type).superclassType(); } else { interfaceTypes = type.asClassDoc().interfaceTypes(); superType = type.asClassDoc().superclassType();
private Type[] getInterfaceTypeArguments(ClassDoc iface, Type t) { if (t instanceof ParameterizedType) { ParameterizedType pt = (ParameterizedType) t; if (iface != null && iface.equals(t.asClassDoc())) { return pt.typeArguments(); } else { for (Type pti : pt.interfaceTypes()) { Type[] result = getInterfaceTypeArguments(iface, pti); if (result != null) return result; } if (pt.superclassType() != null) return getInterfaceTypeArguments(iface, pt.superclassType()); } } else if (t instanceof ClassDoc) { ClassDoc cd = (ClassDoc) t; for (Type pti : cd.interfaceTypes()) { Type[] result = getInterfaceTypeArguments(iface, pti); if (result != null) return result; } if (cd.superclassType() != null) return getInterfaceTypeArguments(iface, cd.superclassType()); } return null; }
private Type[] getInterfaceTypeArguments(ClassDoc iface, Type t) { if (t instanceof ParameterizedType) { ParameterizedType pt = (ParameterizedType) t; if (iface != null && iface.equals(t.asClassDoc())) { return pt.typeArguments(); } else { for (Type pti : pt.interfaceTypes()) { Type[] result = getInterfaceTypeArguments(iface, pti); if (result != null) return result; } if (pt.superclassType() != null) return getInterfaceTypeArguments(iface, pt.superclassType()); } } else if (t instanceof ClassDoc) { ClassDoc cd = (ClassDoc) t; for (Type pti : cd.interfaceTypes()) { Type[] result = getInterfaceTypeArguments(iface, pti); if (result != null) return result; } if (cd.superclassType() != null) return getInterfaceTypeArguments(iface, cd.superclassType()); } return null; }
/** * Return true if the given ClassDoc should be included * in the serialized form. * * @param cd the ClassDoc object to check for serializability. */ private static boolean serialClassInclude(ClassDoc cd) { if (cd.isEnum()) { return false; } try { cd.superclassType(); } catch (NullPointerException e) { //Workaround for null pointer bug in ClassDoc.superclassType(). return false; } if (cd.isSerializable()) { if (cd.tags("serial").length > 0) { return serialDocInclude(cd); } else if (cd.isPublic() || cd.isProtected()) { return true; } else { return false; } } return false; }
/** * Return true if the given ClassDoc should be included * in the serialized form. * * @param cd the ClassDoc object to check for serializability. */ private static boolean serialClassInclude(ClassDoc cd) { if (cd.isEnum()) { return false; } try { cd.superclassType(); } catch (NullPointerException e) { //Workaround for null pointer bug in ClassDoc.superclassType(). return false; } if (cd.isSerializable()) { if (cd.tags("serial").length > 0) { return serialDocInclude(cd); } else if (cd.isPublic() || cd.isProtected()) { return true; } else { return false; } } return false; }
protected Enum parseEnum(ClassDoc classDoc) { Enum enumNode = objectFactory.createEnum(); enumNode.setName(classDoc.name()); enumNode.setQualified(classDoc.qualifiedName()); String comment = classDoc.commentText(); if (comment.length() > 0) { enumNode.setComment(comment); } enumNode.setIncluded(classDoc.isIncluded()); enumNode.setScope(parseScope(classDoc)); Type superClassType = classDoc.superclassType(); if (superClassType != null) { enumNode.setClazz(parseTypeInfo(superClassType)); } for (Type interfaceType : classDoc.interfaceTypes()) { enumNode.getInterface().add(parseTypeInfo(interfaceType)); } for (FieldDoc field : classDoc.enumConstants()) { enumNode.getConstant().add(parseEnumConstant(field)); } for (AnnotationDesc annotationDesc : classDoc.annotations()) { enumNode.getAnnotation().add(parseAnnotationDesc(annotationDesc, classDoc.qualifiedName())); } for (Tag tag : classDoc.tags()) { enumNode.getTag().add(parseTag(tag)); } return enumNode; }
/** * Get the serializable class heading. * * @param classDoc the class being processed * @return a content tree for the class header */ public Content getClassHeader(ClassDoc classDoc) { Content classLink = (classDoc.isPublic() || classDoc.isProtected()) ? getLink(new LinkInfoImpl(configuration, LinkInfoImpl.Kind.DEFAULT, classDoc) .label(configuration.getClassName(classDoc))) : new StringContent(classDoc.qualifiedName()); Content li = HtmlTree.LI(HtmlStyle.blockList, getMarkerAnchor( classDoc.qualifiedName())); Content superClassLink = classDoc.superclassType() != null ? getLink(new LinkInfoImpl(configuration, LinkInfoImpl.Kind.SERIALIZED_FORM, classDoc.superclassType())) : null; //Print the heading. Content className = superClassLink == null ? configuration.getResource( "doclet.Class_0_implements_serializable", classLink) : configuration.getResource( "doclet.Class_0_extends_implements_serializable", classLink, superClassLink); li.addContent(HtmlTree.HEADING(HtmlConstants.SERIALIZED_MEMBER_HEADING, className)); return li; }
anchor(classDoc.qualifiedName()); String superClassLink = classDoc.superclassType() != null ? getLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_SERIALIZED_FORM, classDoc.superclassType())) : null;
Type s = c.superclassType(); if (s != null && !s.toString().equals("java.lang.Object") &&
/** Print a class's relations */ public void printRelations(ClassDoc c) { Options opt = optionProvider.getOptionsFor(c); if (hidden(c) || c.name().equals("")) // avoid phantom classes, they may pop up when the source uses annotations return; // Print generalization (through the Java superclass) Type s = c.superclassType(); ClassDoc sc = s != null && !s.qualifiedTypeName().equals(Object.class.getName()) ? s.asClassDoc() : null; if (sc != null && !c.isEnum() && !hidden(sc)) relation(opt, RelationType.EXTENDS, c, sc, null, null, null); // Print generalizations (through @extends tags) for (Tag tag : c.tags("extends")) if (!hidden(tag.text())) relation(opt, RelationType.EXTENDS, c, c.findClass(tag.text()), null, null, null); // Print realizations (Java interfaces) for (Type iface : c.interfaceTypes()) { ClassDoc ic = iface.asClassDoc(); if (!hidden(ic)) relation(opt, RelationType.IMPLEMENTS, c, ic, null, null, null); } // Print other associations allRelation(opt, RelationType.COMPOSED, c); allRelation(opt, RelationType.NAVCOMPOSED, c); allRelation(opt, RelationType.HAS, c); allRelation(opt, RelationType.NAVHAS, c); allRelation(opt, RelationType.ASSOC, c); allRelation(opt, RelationType.NAVASSOC, c); allRelation(opt, RelationType.DEPEND, c); }
Type superClassType = classDoc.superclassType(); if (superClassType != null) { classNode.setClazz(parseTypeInfo(superClassType));