package org.esmerilprogramming.overtown.server.handlers;
import com.thoughtworks.paranamer.BytecodeReadingParanamer;
import com.thoughtworks.paranamer.CachingParanamer;
import com.thoughtworks.paranamer.Paranamer;
import io.undertow.server.RoutingHandler;
/**
* Created by efraimgentil<efraimgentil@gmail.com> on 31/01/15.
*/
public class ControllerHandlerCreator {
private Paranamer paranamer;
public ControllerHandlerCreator(){
paranamer = new CachingParanamer(new BytecodeReadingParanamer());
}
public RoutingHandler createHandler(ControllerMapping mapping , RoutingHandler routing){
for( PathMapping pm: mapping.getPathMappings()){
routing.add( pm.getHttpMethod() ,
pm.getFinalPath( mapping.getPath() ) ,
new MainHttpHandler( mapping , pm , paranamer.lookupParameterNames( pm.getMethod() ) ) );
}
return routing;
}
}