From 4cb0aa5a0b9adac2bb8d4a995be015651bdd5628 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Tue, 30 Jul 2019 18:57:01 +0200 Subject: Polyhedron scope propagator for non-containment references --- .../viatrasolver/logic2viatra/Modality.java | 31 +++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/Modality.java') diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/Modality.java b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/Modality.java index d2132cea..f3a6ec32 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/Modality.java +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/Modality.java @@ -2,21 +2,46 @@ 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() { - if(this.isCurrent()) return CURRENT; - else if(this.isMust())return MAY; - else return MUST; + 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(); } } -- cgit v1.2.3-70-g09d2