blob: 1e8d7f33d34f48fb4086c045e8f59b9db4c306cd [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2008 Tasktop Technologies and others.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* https://www.eclipse.org/legal/epl-2.0
*
* SPDX-License-Identifier: EPL-2.0
*
* Tasktop Technologies - initial API and implementation
*******************************************************************************/
package org.eclipse.mylyn.internal.monitor.core.collection;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.mylyn.monitor.core.InteractionEvent;
/**
* @author Mik Kersten
*/
public class DelegatingUsageCollector implements IUsageCollector {
protected List<IUsageScanner> scanners = new ArrayList<IUsageScanner>();
public void addScanner(IUsageScanner aScanner) {
scanners.add(aScanner);
}
private List<IUsageCollector> delegates = new ArrayList<IUsageCollector>();
private String reportTitle = ""; //$NON-NLS-1$
public List<IUsageCollector> getDelegates() {
return delegates;
}
public void setDelegates(List<IUsageCollector> delegates) {
this.delegates = delegates;
}
public void consumeEvent(InteractionEvent event, int userId) {
for (IUsageCollector collector : delegates) {
collector.consumeEvent(event, userId);
}
}
public List<String> getReport() {
List<String> combinedReports = new ArrayList<String>();
for (IUsageCollector collector : delegates) {
combinedReports.add("<h3>" + collector.getReportTitle() + "</h3>"); //$NON-NLS-1$ //$NON-NLS-2$
combinedReports.addAll(collector.getReport());
}
return combinedReports;
}
public void exportAsCSVFile(String directory) {
}
public String getReportTitle() {
return reportTitle;
}
public void setReportTitle(String reportTitle) {
this.reportTitle = reportTitle;
}
public List<String> getPlainTextReport() {
List<String> combinedReports = new ArrayList<String>();
for (IUsageCollector collector : delegates) {
combinedReports.add(collector.getReportTitle());
combinedReports.addAll(collector.getPlainTextReport());
}
return combinedReports;
}
}