package org.limewire.ui.swing.filter;
import java.util.List;
import org.limewire.ui.swing.components.Disposable;
/**
* A utility class to generate debugging information on filters. FilterDebugger
* mediates between FilterManager and a FilterableSource to allow the source to
* retrieve information about the current filters. FilterDebugger needs to be
* initialized with an instance of FilterManager to be able to generate useful
* information.
*/
public class FilterDebugger<E extends FilterableItem> implements Disposable {
private FilterManager<E> filterManager;
/**
* Initializes the debugger using the specified filter manager.
*/
public void initialize(FilterManager<E> filterManager) {
this.filterManager = filterManager;
}
/**
* Returns a string containing a dump of all available filters. If
* FilterDebugger has not been initialized, this method returns an empty
* string.
*/
public String getFilterString() {
if (filterManager == null) return "";
// Get list of all filters.
List<Filter<E>> filterList = filterManager.getFiltersInUse();
// Create dump of all filters.
StringBuilder buf = new StringBuilder();
for (Filter<E> filter : filterList) {
if (buf.length() > 0) buf.append(", ");
buf.append(filter.toString());
}
return buf.toString();
}
@Override
public void dispose() {
filterManager = null;
}
}