source: trunk/autoquest-plugin-usability2/src/main/java/de/ugoe/cs/autoquest/plugin/usability2/rules/metrics/visitor/AbstractVisitor.java @ 1326

Last change on this file since 1326 was 1326, checked in by khartmann, 10 years ago

Moved alexanders code into a new plugin project.
First commit of my experimental code (needs a lot of cleanup).

File size: 2.2 KB
Line 
1
2package de.ugoe.cs.autoquest.plugin.usability2.rules.metrics.visitor;
3
4import java.util.Iterator;
5
6import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTaskInstance;
7import de.ugoe.cs.autoquest.tasktrees.treeifc.IIterationInstance;
8import de.ugoe.cs.autoquest.tasktrees.treeifc.IOptionalInstance;
9import de.ugoe.cs.autoquest.tasktrees.treeifc.ISelectionInstance;
10import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequenceInstance;
11import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskInstance;
12
13public abstract class AbstractVisitor implements IInstanceVisitor {
14
15    @Override
16    public void visit(ITaskInstance instance) {
17        if (instance instanceof IEventTaskInstance) {
18            traverse((IEventTaskInstance) instance);
19        }
20        else if (instance instanceof IIterationInstance) {
21            traverse((IIterationInstance) instance);
22        }
23        else if (instance instanceof IOptionalInstance) {
24            traverse((IOptionalInstance) instance);
25        }
26        else if (instance instanceof ISelectionInstance) {
27            traverse((ISelectionInstance) instance);
28        }
29        else if (instance instanceof ISequenceInstance) {
30            traverse((ISequenceInstance) instance);
31        }
32
33    }
34
35    private void iterate(Iterator<ITaskInstance> iterator) {
36        while (iterator.hasNext()) {
37            visit(iterator.next());
38        }
39    }
40
41    private void traverse(ISequenceInstance instance) {
42        visit(instance);
43        iterate(instance.iterator());
44    }
45
46    private void traverse(ISelectionInstance instance) {
47        visit(instance);
48    }
49
50    private void traverse(IOptionalInstance instance) {
51        visit(instance);
52
53    }
54
55    private void traverse(IIterationInstance instance) {
56        visit(instance);
57        iterate(instance.iterator());
58    }
59
60    private void traverse(IEventTaskInstance instance) {
61        visit(instance);
62    }
63
64    @Override
65    public void visit(IEventTaskInstance instance) {}
66
67    @Override
68    public void visit(IIterationInstance instance) {}
69
70    @Override
71    public void visit(IOptionalInstance instance) {}
72
73    @Override
74    public void visit(ISelectionInstance instance) {}
75
76    @Override
77    public void visit(ISequenceInstance instance) {}
78}
Note: See TracBrowser for help on using the repository browser.