package com.github.aesteve.vertx.nubes.handlers.impl; import com.github.aesteve.vertx.nubes.annotations.File; import com.github.aesteve.vertx.nubes.context.FileResolver; import com.github.aesteve.vertx.nubes.handlers.AnnotationProcessor; import io.vertx.ext.web.RoutingContext; public class FileProcessor extends NoopAfterAllProcessor implements AnnotationProcessor<File> { private final File annotation; public FileProcessor(File annotation) { this.annotation = annotation; } @Override public void preHandle(RoutingContext context) { String fileName = annotation.value(); if (fileName != null) { FileResolver.resolve(context, annotation.value()); } context.next(); } @Override public void postHandle(RoutingContext context) { context.response().sendFile(FileResolver.getFileName(context)); } }