package gov.nasa.jpl.mbee.mdk.model;
import com.nomagic.magicdraw.core.Application;
import gov.nasa.jpl.mbee.mdk.api.incubating.convert.Converters;
import gov.nasa.jpl.mbee.mdk.docgen.validation.*;
import gov.nasa.jpl.mbee.mdk.validation.ValidationRule;
import gov.nasa.jpl.mbee.mdk.validation.ValidationRuleViolation;
import gov.nasa.jpl.mbee.mdk.validation.ValidationSuite;
import gov.nasa.jpl.mbee.mdk.validation.ViolationSeverity;
public class DocGenValidationDBSwitch extends DocGenValidationSwitch<Object> {
@Override
public Object caseRule(Rule object) {
ViolationSeverity vs = null;
if (object.getSeverity() == Severity.DEBUG) {
vs = ViolationSeverity.DEBUG;
}
else if (object.getSeverity() == Severity.ERROR) {
vs = ViolationSeverity.ERROR;
}
else if (object.getSeverity() == Severity.FATAL) {
vs = ViolationSeverity.FATAL;
}
else if (object.getSeverity() == Severity.INFO) {
vs = ViolationSeverity.INFO;
}
else {
vs = ViolationSeverity.WARNING;
}
ValidationRule res = new ValidationRule(object.getName(), object.getDescription(), vs);
for (Violation v : object.getViolations()) {
res.addViolation((ValidationRuleViolation) this.doSwitch(v));
}
return res;
}
@Override
public Object caseViolation(Violation object) {
if (object.getElementId() != null) {
ValidationRuleViolation res = new ValidationRuleViolation(Converters.getIdToElementConverter()
.apply(object.getElementId(), Application.getInstance().getProject()), object.getComment());
return res;
}
return null;
}
@Override
public Object caseSuite(Suite object) {
ValidationSuite res = new ValidationSuite(object.getName());
for (Rule r : object.getRules()) {
res.addValidationRule((ValidationRule) this.doSwitch(r));
}
res.setOwnSection(object.isOwnSection());
res.setShowDetail(object.isShowDetail());
res.setShowSummary(object.isShowSummary());
return res;
}
}