diff --git a/src/main/java/org/umlgraph/doclet/ClassGraph.java b/src/main/java/org/umlgraph/doclet/ClassGraph.java index e9974f1..ce3e2c0 100644 --- a/src/main/java/org/umlgraph/doclet/ClassGraph.java +++ b/src/main/java/org/umlgraph/doclet/ClassGraph.java @@ -808,7 +808,7 @@ class ClassGraph { for (TypeMirror type : types) { // skip primitives and type variables, as well as dependencies // on the source class - if (type.getKind().isPrimitive() + if (ElementUtil.isPrimitive(type) || ElementUtil.isType(type, TypeKind.TYPEVAR) || ElementUtil.isType(type, TypeKind.WILDCARD) || type instanceof NoType || c.toString().equals(ElementUtil.getTypeElement(type).toString())) { @@ -856,7 +856,7 @@ class ClassGraph { private FieldRelationInfo getFieldRelationInfo(VariableElement field) { TypeMirror type = field.asType(); - if (type.getKind().isPrimitive() || ElementUtil.isType(type, TypeKind.WILDCARD) || ElementUtil.isType(type, TypeKind.TYPEVAR)) { + if (ElementUtil.isPrimitive(type) || ElementUtil.isType(type, TypeKind.WILDCARD) || ElementUtil.isType(type, TypeKind.TYPEVAR)) { return null; } diff --git a/src/main/java/org/umlgraph/doclet/util/ElementUtil.java b/src/main/java/org/umlgraph/doclet/util/ElementUtil.java index fe54ded..4597cbd 100644 --- a/src/main/java/org/umlgraph/doclet/util/ElementUtil.java +++ b/src/main/java/org/umlgraph/doclet/util/ElementUtil.java @@ -23,6 +23,16 @@ import jdk.javadoc.doclet.DocletEnvironment; public class ElementUtil { + public static boolean isPrimitive(TypeMirror type) { + if (type.getKind().isPrimitive()) { + return true; + } + if (type.getKind() == TypeKind.ARRAY) { + return isPrimitive(((ArrayType) type).getComponentType()); + } + return false; + } + public static boolean isType(TypeMirror type, TypeKind kind) { if (type.getKind() == kind) { return true;