aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/Modality.java
blob: f3a6ec329665032dd1cbca336b09135c4ebc5dec (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra;

public enum Modality {
	MUST, MAY, CURRENT;

	public boolean isMust() {
		return this == MUST;
	}

	public boolean isMay() {
		return this == MAY;
	}

	public boolean isCurrent() {
		return this == CURRENT;
	}

	public boolean isMustOrCurrent() {
		return isMust() || isCurrent();
	}

	public Modality getDual() {
		switch (this) {
		case CURRENT:
			return CURRENT;
		case MUST:
			return MAY;
		case MAY:
			return MUST;
		default:
			throw new UnsupportedOperationException("Unknown Modality: " + this);
		}
	}

	public Modality toBase() {
		if (this.isCurrent()) {
			return MUST;
		} else {
			return this;
		}
	}

	@Override
	public String toString() {
		return super.toString().toLowerCase();
	}
}