package com.limegroup.gnutella.uploader; import com.google.inject.Inject; import com.google.inject.Provider; import com.google.inject.Singleton; import com.limegroup.gnutella.altlocs.AltLocManager; import com.limegroup.gnutella.uploader.authentication.HttpRequestFileViewProvider; @Singleton public class HttpRequestHandlerFactoryImpl implements HttpRequestHandlerFactory { private final Provider<FileRequestHandlerFactory> fileRequestHandlerProvider; private final Provider<FreeLoaderRequestHandler> freeLoaderRequestHandlerProvider; private final Provider<HttpPushRequestHandler> pushProxyRequestHandlerProvider; private final HTTPHeaderUtils httpHeaderUtils; private final AltLocManager altLocManager; private final Provider<BrowseRequestHandlerFactory> browseRequestHandlerFactory; @Inject public HttpRequestHandlerFactoryImpl( Provider<FileRequestHandlerFactory> fileRequestHandlerProvider, Provider<FreeLoaderRequestHandler> freeLoaderRequestHandlerProvider, Provider<HttpPushRequestHandler> pushProxyRequestHandlerProvider, HTTPHeaderUtils httpHeaderUtils, AltLocManager altLocManager, Provider<BrowseRequestHandlerFactory> browseRequestHandlerFactory) { this.fileRequestHandlerProvider = fileRequestHandlerProvider; this.freeLoaderRequestHandlerProvider = freeLoaderRequestHandlerProvider; this.pushProxyRequestHandlerProvider = pushProxyRequestHandlerProvider; this.httpHeaderUtils = httpHeaderUtils; this.altLocManager = altLocManager; this.browseRequestHandlerFactory = browseRequestHandlerFactory; } /* * (non-Javadoc) * * @see com.limegroup.gnutella.uploader.HttpRequestHandlerFactory#createFileRequestHandler() */ public FileRequestHandler createFileRequestHandler(HttpRequestFileViewProvider provider, boolean requiresAuthentication) { return fileRequestHandlerProvider.get().createFileRequestHandler(provider, requiresAuthentication); } /* (non-Javadoc) * @see com.limegroup.gnutella.uploader.HttpRequestHandlerFactory#createBrowseRequestHandler() */ @Override public BrowseRequestHandler createBrowseRequestHandler(HttpRequestFileViewProvider browseRequestFileListProvider, boolean requiresAuthentication) { return browseRequestHandlerFactory.get().createBrowseRequestHandler(browseRequestFileListProvider, requiresAuthentication); } /* (non-Javadoc) * @see com.limegroup.gnutella.uploader.HttpRequestHandlerFactory#createFreeLoaderRequestHandler() */ public FreeLoaderRequestHandler createFreeLoaderRequestHandler() { return freeLoaderRequestHandlerProvider.get(); } /* (non-Javadoc) * @see com.limegroup.gnutella.uploader.HttpRequestHandlerFactory#createLimitReachedRequestHandler(com.limegroup.gnutella.uploader.HTTPUploader) */ public LimitReachedRequestHandler createLimitReachedRequestHandler(HTTPUploader uploader) { return new LimitReachedRequestHandler(uploader, httpHeaderUtils, altLocManager); } /* (non-Javadoc) * @see com.limegroup.gnutella.uploader.HttpRequestHandlerFactory#createPushProxyRequestHandler() */ public HttpPushRequestHandler createPushProxyRequestHandler() { return pushProxyRequestHandlerProvider.get(); } }