content: package ro.isdc.wro.http.handler.spi;
  
  import java.util.HashMap;
  import java.util.Map;
  
  import ro.isdc.wro.http.handler.LazyRequestHandlerDecorator;
  import ro.isdc.wro.http.handler.ReloadCacheRequestHandler;
  import ro.isdc.wro.http.handler.ReloadModelRequestHandler;
  import ro.isdc.wro.http.handler.RequestHandler;
  import ro.isdc.wro.http.handler.ResourceProxyRequestHandler;
  import ro.isdc.wro.http.handler.ResourceWatcherRequestHandler;
  import ro.isdc.wro.util.LazyInitializer;
  
  
  /**
   * Provides {@link RequestHandler} implementation from core module.
   *
   * @author Alex Objelena
   * @since 1.5.0
   * @created 23 Sep 2012
   */
  public class DefaultRequestHandlerProvider implements RequestHandlerProvider {
  
    public Map<String, RequestHandler> provideRequestHandlers() {
      final Map<String, RequestHandler> map = new HashMap<String, RequestHandler>();
      map.put(ReloadCacheRequestHandler.ALIAS, new LazyRequestHandlerDecorator(new LazyInitializer<RequestHandler>() {
        @Override
        protected RequestHandler initialize() {
          return new ReloadCacheRequestHandler();
        }
      }));
      map.put(ReloadModelRequestHandler.ALIAS, new LazyRequestHandlerDecorator(new LazyInitializer<RequestHandler>() {
        @Override
        protected RequestHandler initialize() {
          return new ReloadModelRequestHandler();
        }
      }));
      map.put(ResourceProxyRequestHandler.ALIAS, new LazyRequestHandlerDecorator(new LazyInitializer<RequestHandler>() {
        @Override
        protected RequestHandler initialize() {
          return new ResourceProxyRequestHandler();
        }
      }));
      map.put(ResourceWatcherRequestHandler.ALIAS, new LazyRequestHandlerDecorator(new LazyInitializer<RequestHandler>() {
        @Override
        protected RequestHandler initialize() {
          return new ResourceWatcherRequestHandler();
        }
      }));
      return map;
    }
  }
  