@Override
public Void visitMethodDeclaration(final MethodDeclaration node, final Void _) {
startNode(node);
writeAnnotations(node.getAnnotations(), true);
final MethodDefinition definition = node.getUserData(Keys.METHOD_DEFINITION);
if (definition != null && definition.isDefault()) {
writeKeyword(Roles.DEFAULT_KEYWORD);
}
writeModifiers(node.getModifiers());
if (definition == null || !definition.isTypeInitializer()) {
final AstNodeCollection<TypeParameterDeclaration> typeParameters = node.getTypeParameters();
if (any(typeParameters)) {
space();
writeTypeParameters(typeParameters);