package com.sap.emf.ocl.attributegrammar;
import java.util.Map;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.ocl.ecore.OCLExpression;
public class RuleTypeConformanceException extends Exception {
private static final long serialVersionUID = -4640586353971746482L;
private Map<EStructuralFeature, OCLExpression> nonConformingRules;
public Map<EStructuralFeature, OCLExpression> getNonConformingRules() {
return nonConformingRules;
}
public RuleTypeConformanceException(Map<EStructuralFeature, OCLExpression> nonConformingRules) {
this.nonConformingRules = nonConformingRules;
}
@Override
public String getMessage() {
StringBuilder result = new StringBuilder("Attribute grammar rules with non-conforming types detected:\n");
for (Map.Entry<EStructuralFeature, OCLExpression> entry : getNonConformingRules().entrySet()) {
result.append(" expression's type ");
result.append(entry.getValue().getType());
result.append(" does not conform to the type of feature ");
result.append(entry.getKey());
result.append('\n');
}
return result.toString();
}
}