1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.javagen.agile.core.visitor;
17
18 import java.util.Set;
19
20 import org.javagen.agile.core.model.Model;
21
22 /***
23 * Generic visitor interface. Can limit node visitation using an itinerary.
24 *
25 * @author Richard Easterling
26 */
27 public interface Visitor extends Visit {
28
29 /***
30 * A way to limit node traversal to a subset of model instances.
31 * @return set of tags defining a subset of model types to visit or null if all nodes should be visited.
32 */
33 Set<String> itinerary();
34
35 /***
36 * Called to perform a specific process on a model instance. May not be called
37 * if an itinerary is provided that does not match this model instance.
38 * @param model instance to visit.
39 */
40 void visit(Model model);
41
42 }