private void assertSignature(ProcessingEnvironment processingEnv, TypeElement declaringElt, String signature, String className, String methodName, String... parameterTypes) { Element elt = Helper.resolveSignature(processingEnv.getElementUtils(), processingEnv.getTypeUtils(), declaringElt, signature); assertEquals(ElementKind.METHOD, elt.getKind()); ExecutableElement methodElt = (ExecutableElement) elt; TypeElement typeElt = (TypeElement) methodElt.getEnclosingElement(); assertEquals(className, typeElt.getQualifiedName().toString()); assertEquals(methodName, methodElt.getSimpleName().toString()); assertEquals(parameterTypes.length, methodElt.getParameters().size()); for (int i = 0;i < parameterTypes.length;i++) { assertEquals(parameterTypes[i], methodElt.getParameters().get(i).asType().toString()); } }
@Test public void testResolveClassSignature() throws Exception { Utils.assertProcess((processingEnv, roundEnv) -> { TypeElement elt = (TypeElement) Helper.resolveSignature(processingEnv.getElementUtils(), processingEnv.getTypeUtils(), null, "java.lang.Class"); assertEquals(ElementKind.CLASS, elt.getKind()); assertEquals("java.lang.Class", elt.getQualifiedName().toString()); elt = (TypeElement) Helper.resolveSignature(processingEnv.getElementUtils(), processingEnv.getTypeUtils(), null, "Class"); assertEquals(ElementKind.CLASS, elt.getKind()); assertEquals("java.lang.Class", elt.getQualifiedName().toString()); }); }
@Test public void testUnresolveSignatures() throws Exception { Utils.assertProcess((processingEnv, roundEnv) -> { String[] signatures = { "java.util.Locale#createConstant(int,String)", }; for (String signature : signatures) { Element elt = Helper.resolveSignature(processingEnv.getElementUtils(), processingEnv.getTypeUtils(), null, signature); assertNull(elt); } }); } }
@Test public void testResolveFieldSignature() throws Exception { Utils.assertProcess((processingEnv, roundEnv) -> { Element elt = Helper.resolveSignature(processingEnv.getElementUtils(), processingEnv.getTypeUtils(), null, "java.util.Locale#FRENCH"); assertEquals(ElementKind.FIELD, elt.getKind()); VariableElement varElt = (VariableElement) elt; TypeElement typeElt = (TypeElement) varElt.getEnclosingElement(); assertEquals("java.util.Locale", typeElt.getQualifiedName().toString()); assertEquals("FRENCH", varElt.getSimpleName().toString()); }); }
Matcher matcher = LINK_REFERENCE_PATTERN.matcher(tag.getValue()); if (matcher.find()) { Element resolvedElt = Helper.resolveSignature( elementUtils, typeUtils,