01 /* This file is part of the project "Hilbert II" - http://www.qedeq.org
02 *
03 * Copyright 2000-2013, Michael Meyling <mime@qedeq.org>.
04 *
05 * "Hilbert II" is free software; you can redistribute
06 * it and/or modify it under the terms of the GNU General Public
07 * License as published by the Free Software Foundation; either
08 * version 2 of the License, or (at your option) any later version.
09 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 */
15
16 package org.qedeq.kernel.se.visitor;
17
18 import org.qedeq.kernel.se.base.list.Atom;
19 import org.qedeq.kernel.se.base.list.ElementList;
20 import org.qedeq.kernel.se.common.ModuleDataException;
21
22
23 /**
24 * Visit elements of the list package.
25 *
26 * @version $Revision: 1.1 $
27 * @author Michael Meyling
28 */
29 public interface ListVisitor {
30
31 /**
32 * Visit certain element. Begin of visit.
33 *
34 * @param atom Begin visit of this element.
35 * @throws ModuleDataException Major problem occurred.
36 */
37 public void visitEnter(Atom atom) throws ModuleDataException;
38
39 /**
40 * Visit certain element. Begin of visit.
41 *
42 * @param list Begin visit of this element.
43 * @throws ModuleDataException Major problem occurred.
44 */
45 public void visitEnter(ElementList list) throws ModuleDataException;
46
47 /**
48 * Visit certain element. End of visit.
49 *
50 * @param atom End visit of this element.
51 * @throws ModuleDataException Major problem occurred.
52 */
53 public void visitLeave(Atom atom) throws ModuleDataException;
54
55 /**
56 * Visit certain element. End of visit.
57 *
58 * @param list End visit of this element.
59 * @throws ModuleDataException Major problem occurred.
60 */
61 public void visitLeave(ElementList list) throws ModuleDataException;
62
63 }
|