/******************************************************************************* * Copyright (c) 2015 École Polytechnique de Montréal * * All rights reserved. This program and the accompanying materials are 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 * * Contributors: * Francis Giraldeau - Initial implementation and API * Geneviève Bastien - Initial implementation and API *******************************************************************************/ package org.eclipse.tracecompass.analysis.graph.core.base; /** * Interface for all graph visitors. Using on the graph exploration method, the * visit methods will be called for each vertex and edge visited */ public interface ITmfGraphVisitor { /** * Visits a vertex that is the head of a worker streak. The head here is not * the first node of an object. It is just a node with no edge going left. * An object may have many head vertices * * @param vertex * The visited vertex */ void visitHead(TmfVertex vertex); /** * Visits a vertex * * @param vertex * The visited vertex */ void visit(TmfVertex vertex); /** * Visits an edge * * @param edge * The visited edge * @param horizontal * Whether the edge is horizontal (beginning and end are of the * same worker) or vertical */ void visit(TmfEdge edge, boolean horizontal); }