1 /*
2 * Copyright (c) 2003-2008, by Henrik Arro and Contributors
3 *
4 * This file is part of JSeq, a tool to automatically create
5 * sequence diagrams by tracing program execution.
6 *
7 * See <http://jseq.sourceforge.net> for more information.
8 *
9 * JSeq is free software: you can redistribute it and/or modify
10 * it under the terms of the GNU Lesser General Public License as
11 * published by the Free Software Foundation, either version 3 of
12 * the License, or (at your option) any later version.
13 *
14 * JSeq is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public License
20 * along with JSeq. If not, see <http://www.gnu.org/licenses/>.
21 */
22
23 package th.co.edge.jseq;
24
25 /**
26 * A <code>Formatter</code> can create a <code>Diagram</code> from a program
27 * trace, represented by an <code>ActivationList</code>.
28 */
29 public interface Formatter {
30
31 /**
32 * Generates a <code>Diagram</code> from a program trace, represented by
33 * an <code>ActivationList</code> with the root activations.
34 *
35 * @param activationList
36 * a list with the root activations for which to create a
37 * sequence diagram
38 *
39 * @return a <code>Diagram</code> representing the given
40 * <code>ActivationList</code>
41 *
42 * @throws FormatException
43 * if the <code>Diagram</code> could not be created
44 */
45 public Diagram format(ActivationList activationList) throws FormatException;
46 }