public void apply(ClassVisitor classVisitor, Implementation.Context implementationContext, AnnotationValueFilter.Factory annotationValueFilterFactory) {
MethodVisitor methodVisitor = classVisitor.visitMethod(getMethod().getActualModifiers(getSort().isImplemented(), getVisibility()),
getMethod().getInternalName(),
getMethod().getDescriptor(),
getMethod().getGenericSignature(),
getMethod().getExceptionTypes().asErasures().toInternalNames());
if (methodVisitor != null) {
ParameterList<?> parameterList = getMethod().getParameters();
if (parameterList.hasExplicitMetaData()) {
for (ParameterDescription parameterDescription : parameterList) {
methodVisitor.visitParameter(parameterDescription.getName(), parameterDescription.getModifiers());
}
}
applyHead(methodVisitor);
applyBody(methodVisitor, implementationContext, annotationValueFilterFactory);
methodVisitor.visitEnd();
}
}