View Javadoc

1   package com.sri.emo.dbobj.model_tree;
2   
3   import java.util.Iterator;
4   
5   
6   /***
7    * This represents the 'public' interface for traversing the model and
8    * reading it.  It does not consider mutability since that is really
9    * for the consideration of the model builder only.  Look at {@link MutableModelNode}
10   * if you need for some reason to modify the model at runtime.
11   *
12   * @author Michael Rimov
13   */
14  public interface Model {
15  
16  
17      /***
18       * Allows for the client to visit the nodes one-by-one.
19       *
20       * @return Iterator
21       */
22      Iterator iterator();
23  
24  
25      /***
26       * Allows for client to visit the nodes one-by-one but still engage
27       * in the semantics of tree traversal by firing an event whenever a 'level'
28       * in the tree is entered and exited.
29       *
30       * @param eventListener TreeTraversalListener the target for the events
31       * @return Iterator
32       */
33      Iterator iterator(TreeTraversalListener eventListener);
34  
35      /***
36       * Retrieves the root of the tree hierarchy to allow for manual
37       * manipulation if needed.  Otherwise, use {@link #iterator}.
38       *
39       * @return ModelNode instance.
40       */
41      ModelNode getRoot();
42  
43  }