/*******************************************************************************
* Copyright (c) 2017 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributor:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.central.test.ui.reddeer.internal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.jboss.tools.central.reddeer.projects.Project;
/**
*
* @author rhopp
*
*/
public class ErrorsReporter {
private static ErrorsReporter instance = new ErrorsReporter();
private static Map<Project, List<String>> errors;
private static Map<Project, List<String>> warnings;
private static List<Project> projects;
protected ErrorsReporter(){
errors = new HashMap<Project, List<String>>();
warnings = new HashMap<Project, List<String>>();
projects = new ArrayList<Project>();
}
public static ErrorsReporter getInstance(){
return instance;
}
public void addError(Project p, String error) {
if (!projects.contains(p)) {
projects.add(p);
}
if (!errors.containsKey(p)) {
errors.put(p, new ArrayList<String>());
}
errors.get(p).add(error);
}
public void addWarning(Project p, String warning) {
if (!projects.contains(p)) {
projects.add(p);
}
if (!warnings.containsKey(p)) {
warnings.put(p, new ArrayList<String>());
}
warnings.get(p).add(warning);
}
public void generateReport() {
for (Project project : projects) {
System.out.println("QUICKSTART: " + project.getName());
if (errors.containsKey(project)) {
System.out.println("\tERRORS:");
for (String error : errors.get(project)) {
System.out.println("\t\t" + error);
}
}
if (warnings.containsKey(project)) {
System.out.println("\tWARNINGS:");
for (String warning : warnings.get(project)) {
System.out.println("\t\t" + warning);
}
}
}
}
public void cleanReports(){
errors = new HashMap<Project, List<String>>();
warnings = new HashMap<Project, List<String>>();
projects = new ArrayList<Project>();
}
}