View Javadoc

1   package com.sri.emo.dbobj.model_tree;
2   
3   import com.sri.emo.dbobj.*;
4   
5   /***
6    * <tt>Visitor</tt> that allows for visiting of IViewable interface objects.
7    * Because of the nature of the Visitor pattern, every time a new object
8    * is added that derives from IViewable, you need to modify the ViewVisitor
9    * interface appropriately.
10   * <p>Each visit may throw a ViewVisitorException which is a runtime
11   * exception.  You may catch it while processing the nodes if you wish.</p>
12   *
13   * @author Michael Rimov
14   */
15  public interface ModelVisitor {
16  
17      /***
18       * Visits an attribute.
19       *
20       * @param attribute Attribute
21       * @throws ViewVisitorException upon error.
22       */
23      void visitAttribute(Attribute attribute);
24  
25      /***
26       * Visits a Node.
27       *
28       * @param node Node
29       * @throws ViewVisitorException upon error.
30       */
31      void visitNode(Node node);
32  
33      /***
34       * Visits a <tt>NodeType<tt>
35       *
36       * @param nodeType NodeType
37       * @throws ViewVisitorException upon error.
38       */
39      void visitNodeType(NodeType nodeType);
40  
41      /***
42       * Visits a <tt>Part</tt>
43       *
44       * @param part Part
45       * @throws ViewVisitorException upon error.
46       */
47      void visitPart(Part part);
48  
49      /***
50       * Visits a picklist.
51       *
52       * @param picklist PickList
53       * @throws ViewVisitorException upon error.
54       */
55      void visitPickList(PickList picklist);
56  
57      /***
58       * Visits a <tt>Relation</tt>
59       *
60       * @param relation Relation
61       * @throws ViewVisitorException upon error.
62       */
63      void visitRelation(Relation relation);
64  
65  }