~cpn-gui/tapaal/arcEditorPanel

« back to all changes in this revision

Viewing changes to src/dk/aau/cs/model/tapn/Colored/Expressions/OrExpression.java

  • Committer: mglavi14 at aau
  • Date: 2018-12-11 15:22:01 UTC
  • mfrom: (991.1.15 transitionEditorPanel)
  • Revision ID: mglavi14@student.aau.dk-20181211152201-jdi98hxxk8j7o7s7
Merge from coored transition editorpanel as feature is completed

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
package dk.aau.cs.model.tapn.Colored.Expressions;
2
2
 
 
3
import dk.aau.cs.model.tapn.Colored.ExpressionSupport.ExprStringPosition;
3
4
import dk.aau.cs.model.tapn.Colored.Variable;
4
5
 
5
6
import java.util.Set;
14
15
        this.right = right;
15
16
    }
16
17
 
 
18
    public GuardExpression getLeftExpression() {
 
19
        return this.left;
 
20
    }
 
21
    public GuardExpression getRightExpression() {
 
22
        return this.right;
 
23
    }
 
24
 
 
25
    @Override
 
26
    public boolean isSimpleProperty() {return false; }
 
27
 
 
28
    @Override
 
29
    public ExprStringPosition[] getChildren() {
 
30
        ExprStringPosition[] children = new ExprStringPosition[2];
 
31
 
 
32
        int i = 0;
 
33
        int endPrev = 0;
 
34
        boolean wasPrevSimple = false;
 
35
        int start = 0;
 
36
        int end = 0;
 
37
 
 
38
        end = start + left.toString().length();
 
39
        endPrev = end;
 
40
        ExprStringPosition pos = new ExprStringPosition(start, end, left);
 
41
        children[0] = pos;
 
42
 
 
43
        start = endPrev + 4;
 
44
        end = start + right.toString().length();
 
45
        pos = new ExprStringPosition(start, end, right);
 
46
        children[1] = pos;
 
47
        return children;
 
48
    }
 
49
 
 
50
    @Override
 
51
    public boolean equals(Object o) {
 
52
        if (o instanceof OrExpression) {
 
53
            OrExpression expr = (OrExpression)o;
 
54
            return left.equals(expr.left) && right.equals(expr.right);
 
55
        }
 
56
        else
 
57
            return false;
 
58
    }
 
59
 
 
60
    @Override
 
61
    public GuardExpression copy() {
 
62
        return new AndExpression(left, right);
 
63
    }
 
64
 
17
65
    @Override
18
66
    public GuardExpression replace(Expression object1, Expression object2) {
19
 
        return null;
20
 
    }
21
 
 
22
 
    @Override
23
 
    public GuardExpression copy() {
24
 
        return null;
 
67
        if (this == object1 && object2 instanceof GuardExpression) {
 
68
            GuardExpression ge = (GuardExpression)object2;
 
69
            ge.setParent(parent);
 
70
            return ge;
 
71
        }
 
72
        else  {
 
73
            left = left.replace(object1, object2);
 
74
            right = right.replace(object1, object2);
 
75
            return this;
 
76
        }
25
77
    }
26
78
 
27
79
    @Override
28
80
    public boolean containsPlaceHolder() {
29
 
        return false;
 
81
        return left.containsPlaceHolder() || right.containsPlaceHolder();
30
82
    }
31
83
 
32
84
    @Override
33
85
    public GuardExpression findFirstPlaceHolder() {
34
 
        return null;
 
86
        GuardExpression ph = null;
 
87
        if (left.containsPlaceHolder()) {
 
88
            return left.findFirstPlaceHolder();
 
89
        }
 
90
        else {
 
91
            return right.findFirstPlaceHolder();
 
92
        }
35
93
    }
36
94
 
37
95
    public void getVariables(Set<Variable> variables) {
48
106
    public String toString() {
49
107
        return left.toString() + " or " + right.toString();
50
108
    }
 
109
 
51
110
}