package org.limewire.core.impl.library; import org.limewire.core.api.library.LibraryData; import org.limewire.core.api.library.LibraryFileList; import org.limewire.core.api.library.LibraryManager; import ca.odell.glazedlists.event.ListEventPublisher; import ca.odell.glazedlists.util.concurrent.ReadWriteLock; import com.google.inject.Inject; import com.google.inject.Singleton; import com.limegroup.gnutella.library.Library; @Singleton class LibraryManagerImpl implements LibraryManager { private final LibraryFileListImpl libraryList; private final LibraryData libraryData; @Inject public LibraryManagerImpl(Library managedList, CoreLocalFileItemFactory coreLocalFileItemFactory) { this.libraryList = new LibraryFileListImpl(managedList, coreLocalFileItemFactory); this.libraryData = new LibraryDataImpl(managedList); } @Override public LibraryFileList getLibraryManagedList() { return libraryList; } public LibraryData getLibraryData() { return libraryData; } @Override public ListEventPublisher getLibraryListEventPublisher() { return libraryList.getModel().getPublisher(); } @Override public ReadWriteLock getReadWriteLock() { return libraryList.getModel().getReadWriteLock(); } }