* which has a {@code void} return type, and its first parameter is of type
* {@code SafeHtmlBuilder}.
*/
private void validateRenderParameters(JClassType owner) throws UnableToCompleteException {
JMethod[] methods = owner.getInheritableMethods();
JMethod renderMethod = null;
for (JMethod jMethod : methods) {
if (jMethod.getName().equals("render")) {
if (renderMethod == null) {
renderMethod = jMethod;
} else {
die("%s declares more than one method named render", owner.getQualifiedSourceName());
}
}
}
if (renderMethod == null
|| renderMethod.getParameterTypes().length < 1
|| !renderMethod.getParameterTypes()[0].getErasedType().getQualifiedSourceName().equals(
SafeHtmlBuilder.class.getCanonicalName())) {
die("%s does not declare a render(SafeHtmlBuilder ...) method",
owner.getQualifiedSourceName());
}
if (!JPrimitiveType.VOID.equals(renderMethod.getReturnType())) {
die("%s#render(SafeHtmlBuilder ...) does not return void", owner.getQualifiedSourceName());
}
}