package org.limewire.ui.swing.search.model; import org.limewire.core.api.search.GroupedSearchResult; import org.limewire.ui.swing.util.PropertiableHeadings; import com.google.inject.Inject; import com.google.inject.Provider; /** * Implementation of factory to create instances of VisualSearchResult. To * improve performance, we provide our own concrete implementation instead of * using a Guice injector to construct the object. */ public class VisualSearchResultFactoryImpl implements VisualSearchResultFactory { private final Provider<PropertiableHeadings> propertiableHeadings; /** * Constructs a VisualSearchResultFactoryImpl with the specified services. */ @Inject public VisualSearchResultFactoryImpl( Provider<PropertiableHeadings> propertiableHeadings) { this.propertiableHeadings = propertiableHeadings; } /** * Creates a VisualSearchResult for the specified grouped search result. */ @Override public VisualSearchResult create(GroupedSearchResult gsr, VisualSearchResultStatusListener listener) { SearchResultAdapter vsr = new SearchResultAdapter(gsr, propertiableHeadings, listener); return vsr; } }