View Javadoc

1   /* This file is part of the project "Hilbert II" - http://www.qedeq.org" target="alexandria_uri">http://www.qedeq.org
2    *
3    * Copyright 2000-2014,  Michael Meyling <mime@qedeq.org>.
4    *
5    * "Hilbert II" is free software; you can redistribute
6    * it and/or modify it under the terms of the GNU General Public
7    * License as published by the Free Software Foundation; either
8    * version 2 of the License, or (at your option) any later version.
9    *
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   * @author Michael Meyling
27   */
28  public interface ListVisitor {
29  
30      /**
31       * Visit certain element. Begin of visit.
32       *
33       * @param atom  Begin visit of this element.
34       * @throws      ModuleDataException  Major problem occurred.
35       */
36      public void visitEnter(Atom atom) throws ModuleDataException;
37  
38      /**
39       * Visit certain element. Begin of visit.
40       *
41       * @param list  Begin visit of this element.
42       * @throws      ModuleDataException  Major problem occurred.
43       */
44      public void visitEnter(ElementList list) throws ModuleDataException;
45  
46      /**
47       * Visit certain element. End of visit.
48       *
49       * @param atom  End visit of this element.
50       * @throws      ModuleDataException  Major problem occurred.
51       */
52      public void visitLeave(Atom atom) throws ModuleDataException;
53  
54      /**
55       * Visit certain element. End of visit.
56       *
57       * @param list  End visit of this element.
58       * @throws      ModuleDataException  Major problem occurred.
59       */
60      public void visitLeave(ElementList list) throws ModuleDataException;
61  
62  }