/* * Copyright Technophobia Ltd 2012 * * This file is part of Substeps. * * Substeps is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Substeps is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with Substeps. If not, see <http://www.gnu.org/licenses/>. */ package com.technophobia.substeps.report; import java.util.ArrayList; import java.util.List; import com.technophobia.substeps.execution.AbstractExecutionNodeVisitor; import com.technophobia.substeps.execution.node.ExecutionNode; import com.technophobia.substeps.execution.node.IExecutionNode; import com.technophobia.substeps.execution.node.RootNode; /** * @author ian * */ class ReportData { private List<RootNode> rootNodes; public void addRootExecutionNode(final RootNode node) { if (rootNodes == null) { rootNodes = new ArrayList<RootNode>(); } rootNodes.add(node); } private List<IExecutionNode> flattenTree(final IExecutionNode node) { return node.accept(new AbstractExecutionNodeVisitor<IExecutionNode>() { @Override public IExecutionNode visit(IExecutionNode node) { return node; } }); } /** * @return the nodeList */ public List<IExecutionNode> getNodeList() { final List<IExecutionNode> nodeList = new ArrayList<IExecutionNode>(); for (final ExecutionNode rootNode : this.rootNodes) { nodeList.addAll(flattenTree(rootNode)); } return nodeList; } /** * @return the rootNodes */ public List<RootNode> getRootNodes() { return rootNodes; } }