/* * Copyright (c) 2013-2016 Chris Newland. * Licensed under https://github.com/AdoptOpenJDK/jitwatch/blob/master/LICENSE-BSD * Instructions: https://github.com/AdoptOpenJDK/jitwatch/wiki */ package org.adoptopenjdk.jitwatch.report; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import org.adoptopenjdk.jitwatch.compilation.AbstractCompilationVisitable; import org.adoptopenjdk.jitwatch.model.IReadOnlyJITDataModel; import org.adoptopenjdk.jitwatch.treevisitor.ITreeVisitable; import org.adoptopenjdk.jitwatch.treevisitor.TreeVisitor; public abstract class AbstractReportBuilder extends AbstractCompilationVisitable implements ITreeVisitable { protected IReadOnlyJITDataModel model; protected List<Report> reportList; public AbstractReportBuilder(IReadOnlyJITDataModel model) { this.model = model; reportList = new ArrayList<>(); } public List<Report> getReports(Comparator<Report> comparator) { TreeVisitor.walkTree(model, this); findNonMemberReports(); Collections.sort(reportList, comparator); return reportList; } protected abstract void findNonMemberReports(); @Override public void reset() { reportList.clear(); } }