~tapaal-contributor/tapaal/weight-values-fix-1770637

« back to all changes in this revision

Viewing changes to src/dk/aau/cs/TCTL/visitors/VerifyTransitionNamesVisitor.java

merged branch lp:~tapaal-contributor/tapaal/ctl-query-fix-1540367

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package dk.aau.cs.TCTL.visitors;
 
2
 
 
3
import java.util.ArrayList;
 
4
import java.util.HashSet;
 
5
 
 
6
import dk.aau.cs.TCTL.TCTLAbstractProperty;
 
7
import dk.aau.cs.TCTL.TCTLTransitionNode;
 
8
import dk.aau.cs.util.Tuple;
 
9
 
 
10
public class VerifyTransitionNamesVisitor extends VisitorBase {
 
11
        private ArrayList<Tuple<String, String>> templateTransitionNames;
 
12
 
 
13
        public VerifyTransitionNamesVisitor(ArrayList<Tuple<String, String>> templateTransitionNames) {
 
14
                this.templateTransitionNames = templateTransitionNames;
 
15
        }
 
16
 
 
17
        public Context verifyTransitionNames(TCTLAbstractProperty query) {
 
18
                Context c = new Context();
 
19
 
 
20
                query.accept(this, c);
 
21
 
 
22
                return c;
 
23
        }
 
24
 
 
25
        public void visit(TCTLTransitionNode transitionNode, Object context) {
 
26
                Context c = (Context) context;
 
27
                if (!templateTransitionNames.contains(new Tuple<String,String>(transitionNode.getTemplate(), transitionNode.getTransition()))) {
 
28
                        String temp = transitionNode.getTemplate() != "" ? transitionNode.getTemplate() + "." : "";
 
29
                        c.addIncorrectTransitionName(temp + transitionNode.getTransition());
 
30
                        c.setResult(false);
 
31
                }
 
32
        }
 
33
        
 
34
        // / context class
 
35
        public class Context {
 
36
                private Boolean result;
 
37
                private HashSet<String> incorrectTransitionNames;
 
38
 
 
39
                public Boolean getResult() {
 
40
                        return result;
 
41
                }
 
42
 
 
43
                public void setResult(Boolean result) {
 
44
                        this.result = result;
 
45
                }
 
46
 
 
47
                public HashSet<String> getIncorrectTransitionNames() {
 
48
                        return incorrectTransitionNames;
 
49
                }
 
50
 
 
51
                public void addIncorrectTransitionName(String incorrectTransitionName) {
 
52
                        incorrectTransitionNames.add(incorrectTransitionName);
 
53
                }
 
54
 
 
55
                public Context() {
 
56
                        result = true;
 
57
                        incorrectTransitionNames = new HashSet<String>();
 
58
                }
 
59
        }
 
60
}