package fr.inria.gforge.spoon.transformation.retry; import fr.inria.gforge.spoon.transformation.retry.template.RetryTemplate; import spoon.processing.AbstractAnnotationProcessor; import spoon.reflect.code.CtBlock; import spoon.reflect.declaration.CtMethod; /** * Created by nicolas on 22/01/2015. */ public class RetryProcessor extends AbstractAnnotationProcessor<RetryOnFailure, CtMethod<?>> { @Override public void process(RetryOnFailure retryOnFailure, CtMethod<?> ctMethod) { RetryTemplate template = new RetryTemplate( ctMethod.getBody(), retryOnFailure.attempts(), retryOnFailure.delay(), retryOnFailure.verbose() ); CtBlock newBody = template.apply(ctMethod.getDeclaringType()); ctMethod.setBody(newBody); } }