public static <A extends Annotation> List<A> getAnnotations(Class<A> clazz, Element el) { if (el == null || (el instanceof TypeElement && Object.class.getName().equals(((TypeElement) el).getQualifiedName().toString()))) { return Collections.emptyList(); } ArrayList<A> allAnnotations = new ArrayList<A>(); A annotation = el.getAnnotation(clazz); if (annotation != null) { allAnnotations.add(annotation); } allAnnotations.addAll(getAnnotations(clazz, el.getEnclosingElement())); if (el instanceof TypeElement) { //include the superclass. TypeMirror superclass = ((TypeElement) el).getSuperclass(); if (superclass instanceof DeclaredType) { allAnnotations.addAll(getAnnotations(clazz, ((DeclaredType) superclass).asElement())); } } return allAnnotations; }
public static boolean isIgnored(Element element) { List<JavaDocTagList> ignoreTags = AnnotationUtils.getJavaDocTags("ignore", element); return !ignoreTags.isEmpty() || element.getAnnotation(Ignore.class) != null; } }
@Nullable public static <A extends Annotation> A getMetaAnnotation(Class<A> type, Element el) { return getMetaAnnotation(type, el, 0); }
List<ResponseHeaders> inheritedResponseHeaders = AnnotationUtils.getAnnotations(ResponseHeaders.class, parent); for (ResponseHeaders inheritedResponseHeader : inheritedResponseHeaders) { for (ResponseHeader header : inheritedResponseHeader.value()) { List<JavaDoc.JavaDocTagList> inheritedDoclets = AnnotationUtils.getJavaDocTags("ResponseHeader", parent); for (JavaDoc.JavaDocTagList inheritedDoclet : inheritedDoclets) { for (String doclet : inheritedDoclet) {
|| AnnotationUtils.getMetaAnnotation(ResponseBody.class, parent.getDelegate()) != null; List<JavaDoc.JavaDocTagList> inheritedDoclets = AnnotationUtils.getJavaDocTags("RequestHeader", parent); for (JavaDoc.JavaDocTagList inheritedDoclet : inheritedDoclets) { for (String doclet : inheritedDoclet) { List<RequestHeaders> inheritedRequestHeaders = AnnotationUtils.getAnnotations(RequestHeaders.class, parent); for (RequestHeaders inheritedRequestHeader : inheritedRequestHeaders) { for (RequestHeader header : inheritedRequestHeader.value()) { List<StatusCodes> inheritedStatusCodes = AnnotationUtils.getAnnotations(StatusCodes.class, parent); for (StatusCodes inheritedStatusCode : inheritedStatusCodes) { for (com.webcohesion.enunciate.metadata.rs.ResponseCode code : inheritedStatusCode.value()) { inheritedDoclets = AnnotationUtils.getJavaDocTags("HTTP", parent); for (JavaDoc.JavaDocTagList inheritedDoclet : inheritedDoclets) { for (String doclet : inheritedDoclet) { List<Warnings> inheritedWarnings = AnnotationUtils.getAnnotations(Warnings.class, parent); for (Warnings inheritedWarning : inheritedWarnings) { for (com.webcohesion.enunciate.metadata.rs.ResponseCode code : inheritedWarning.value()) { inheritedDoclets = AnnotationUtils.getJavaDocTags("HTTPWarning", parent); for (JavaDoc.JavaDocTagList inheritedDoclet : inheritedDoclets) { for (String doclet : inheritedDoclet) { List<ResponseHeaders> inheritedResponseHeaders = AnnotationUtils.getAnnotations(ResponseHeaders.class, parent); for (ResponseHeaders inheritedResponseHeader : inheritedResponseHeaders) { for (ResponseHeader header : inheritedResponseHeader.value()) {
List<JavaDoc.JavaDocTagList> inheritedDoclets = AnnotationUtils.getJavaDocTags("RequestHeader", getDeclaringEndpointInterface()); for (JavaDoc.JavaDocTagList inheritedDoclet : inheritedDoclets) { for (String doclet : inheritedDoclet) { List<RequestHeaders> inheritedRequestHeaders = AnnotationUtils.getAnnotations(RequestHeaders.class, getDeclaringEndpointInterface()); for (RequestHeaders inheritedRequestHeader : inheritedRequestHeaders) { for (RequestHeader header : inheritedRequestHeader.value()) {
|| AnnotationUtils.getMetaAnnotation(ResponseBody.class, parent) != null; List<JavaDoc.JavaDocTagList> inheritedDoclets = AnnotationUtils.getJavaDocTags("RequestHeader", parent); for (JavaDoc.JavaDocTagList inheritedDoclet : inheritedDoclets) { for (String doclet : inheritedDoclet) { List<RequestHeaders> inheritedRequestHeaders = AnnotationUtils.getAnnotations(RequestHeaders.class, parent); for (RequestHeaders inheritedRequestHeader : inheritedRequestHeaders) { for (RequestHeader header : inheritedRequestHeader.value()) { List<StatusCodes> inheritedStatusCodes = AnnotationUtils.getAnnotations(StatusCodes.class, parent); for (StatusCodes inheritedStatusCode : inheritedStatusCodes) { for (com.webcohesion.enunciate.metadata.rs.ResponseCode code : inheritedStatusCode.value()) { inheritedDoclets = AnnotationUtils.getJavaDocTags("HTTP", parent); for (JavaDoc.JavaDocTagList inheritedDoclet : inheritedDoclets) { for (String doclet : inheritedDoclet) { List<Warnings> inheritedWarnings = AnnotationUtils.getAnnotations(Warnings.class, parent); for (Warnings inheritedWarning : inheritedWarnings) { for (com.webcohesion.enunciate.metadata.rs.ResponseCode code : inheritedWarning.value()) { inheritedDoclets = AnnotationUtils.getJavaDocTags("HTTPWarning", parent); for (JavaDoc.JavaDocTagList inheritedDoclet : inheritedDoclets) { for (String doclet : inheritedDoclet) { List<ResponseHeaders> inheritedResponseHeaders = AnnotationUtils.getAnnotations(ResponseHeaders.class, parent); for (ResponseHeaders inheritedResponseHeader : inheritedResponseHeaders) { for (ResponseHeader header : inheritedResponseHeader.value()) {
List<Warnings> inheritedWarnings = AnnotationUtils.getAnnotations(Warnings.class, parent); for (Warnings inheritedWarning : inheritedWarnings) { for (com.webcohesion.enunciate.metadata.rs.ResponseCode code : inheritedWarning.value()) { List<JavaDoc.JavaDocTagList> inheritedDoclets = AnnotationUtils.getJavaDocTags("HTTPWarning", parent); for (JavaDoc.JavaDocTagList inheritedDoclet : inheritedDoclets) { for (String doclet : inheritedDoclet) {
public static <A extends Annotation> List<A> getAnnotations(Class<A> clazz, Element el) { if (el == null || (el instanceof TypeElement && Object.class.getName().equals(((TypeElement) el).getQualifiedName().toString()))) { return Collections.emptyList(); } ArrayList<A> allAnnotations = new ArrayList<A>(); A annotation = el.getAnnotation(clazz); if (annotation != null) { allAnnotations.add(annotation); } allAnnotations.addAll(getAnnotations(clazz, el.getEnclosingElement())); if (el instanceof TypeElement) { //include the superclass. TypeMirror superclass = ((TypeElement) el).getSuperclass(); if (superclass instanceof DeclaredType) { allAnnotations.addAll(getAnnotations(clazz, ((DeclaredType) superclass).asElement())); } } return allAnnotations; }
public static boolean isIgnored(Element element) { List<JavaDocTagList> ignoreTags = AnnotationUtils.getJavaDocTags("ignore", element); return !ignoreTags.isEmpty() || element.getAnnotation(Ignore.class) != null; } }
@Nullable public static <A extends Annotation> A getMetaAnnotation(Class<A> type, Element el) { return getMetaAnnotation(type, el, 0); }
List<JavaDoc.JavaDocTagList> inheritedDoclets = AnnotationUtils.getJavaDocTags("RequestHeader", parent); for (JavaDoc.JavaDocTagList inheritedDoclet : inheritedDoclets) { for (String doclet : inheritedDoclet) { List<RequestHeaders> inheritedRequestHeaders = AnnotationUtils.getAnnotations(RequestHeaders.class, parent); for (RequestHeaders inheritedRequestHeader : inheritedRequestHeaders) { for (RequestHeader header : inheritedRequestHeader.value()) {
public String getTypeIdValue() { List<JsonSubTypes> subTypes = AnnotationUtils.getAnnotations(JsonSubTypes.class, this); if (!subTypes.isEmpty()) { final Types typeUtils = env.getTypeUtils(); for (JsonSubTypes.Type type : subTypes.get(0).value()) { DecoratedTypeMirror decoratedType = Annotations.mirrorOf(type::value, env); if (typeUtils.isSameType(asType(), decoratedType.getDelegate())) { if (!type.name().isEmpty()) { return type.name(); } } } } JsonTypeName typeName = getAnnotation(JsonTypeName.class); if (typeName != null && !typeName.value().isEmpty()) { return typeName.value(); } return isAbstract() ? "..." : getSimpleName().toString(); }
allTags.addAll(getJavaDocTags(tag, el.getEnclosingElement())); if (superclass instanceof DeclaredType) { Element element = ((DeclaredType) superclass).asElement(); allTags.addAll(getJavaDocTags(tag, element));
@Nullable private static <A extends Annotation> A getMetaAnnotation(Class<A> type, Element el, int depth) { A result = el.getAnnotation(type); if (result != null) { return result; } for (AnnotationMirror annotation : el.getAnnotationMirrors()) { DeclaredType annotationType = annotation.getAnnotationType(); if (annotationType != null) { Element annotationElement = annotationType.asElement(); result = annotationElement.getAnnotation(type); if (result != null) { return result; } if (depth < MAX_DEPTH) { result = getMetaAnnotation(type, annotationElement, depth + 1); if (result != null) { return result; } } } } return null; }
List<StatusCodes> inheritedStatusCodes = AnnotationUtils.getAnnotations(StatusCodes.class, parent); for (StatusCodes inheritedStatusCode : inheritedStatusCodes) { for (com.webcohesion.enunciate.metadata.rs.ResponseCode code : inheritedStatusCode.value()) { List<JavaDoc.JavaDocTagList> inheritedDoclets = AnnotationUtils.getJavaDocTags("HTTP", parent); for (JavaDoc.JavaDocTagList inheritedDoclet : inheritedDoclets) { for (String doclet : inheritedDoclet) {
public String getTypeIdValue() { List<JsonSubTypes> subTypes = AnnotationUtils.getAnnotations(JsonSubTypes.class, this); if (!subTypes.isEmpty()) { final Types typeUtils = env.getTypeUtils(); for (JsonSubTypes.Type type : subTypes.get(0).value()) { DecoratedTypeMirror decoratedType = Annotations.mirrorOf(type::value, env); if (typeUtils.isSameType(asType(), decoratedType.getDelegate())) { if (!type.name().isEmpty()) { return type.name(); } } } } JsonTypeName typeName = getAnnotation(JsonTypeName.class); if (typeName != null && !typeName.value().isEmpty()) { return typeName.value(); } return isAbstract() ? "..." : getSimpleName().toString(); }
allTags.addAll(getJavaDocTags(tag, el.getEnclosingElement())); if (superclass instanceof DeclaredType) { Element element = ((DeclaredType) superclass).asElement(); allTags.addAll(getJavaDocTags(tag, element));
@Nullable private static <A extends Annotation> A getMetaAnnotation(Class<A> type, Element el, int depth) { A result = el.getAnnotation(type); if (result != null) { return result; } for (AnnotationMirror annotation : el.getAnnotationMirrors()) { DeclaredType annotationType = annotation.getAnnotationType(); if (annotationType != null) { Element annotationElement = annotationType.asElement(); result = annotationElement.getAnnotation(type); if (result != null) { return result; } if (depth < MAX_DEPTH) { result = getMetaAnnotation(type, annotationElement, depth + 1); if (result != null) { return result; } } } } return null; }
public String getTypeIdValue() { List<JsonSubTypes> subTypes = AnnotationUtils.getAnnotations(JsonSubTypes.class, this); if (!subTypes.isEmpty()) { final Types typeUtils = env.getTypeUtils(); for (JsonSubTypes.Type type : subTypes.get(0).value()) { DecoratedTypeMirror decoratedType = Annotations.mirrorOf(type::value, env); if (typeUtils.isSameType(asType(), decoratedType.getDelegate())) { if (!type.name().isEmpty()) { return type.name(); } } } } JsonTypeName typeName = getAnnotation(JsonTypeName.class); if (typeName != null && !typeName.value().isEmpty()) { return typeName.value(); } return isAbstract() ? "..." : getSimpleName().toString(); }