package com.sap.ide.refactoring.core.constraints;
import org.eclipse.ltk.core.refactoring.RefactoringStatus;
import org.eclipse.ltk.core.refactoring.RefactoringStatusContext;
import org.eclipse.ltk.core.refactoring.RefactoringStatusEntry;
import com.sap.ide.refactoring.Activator;
import com.sap.ide.refactoring.core.RefactoringSeverity;
import com.sap.ide.refactoring.model.RefactoringModelUtil;
import com.sap.ide.refactoring.ui.ConstraintViolationStatusContext;
import com.sap.tc.moin.repository.mmi.reflect.RefObject;
import com.sap.tc.moin.repository.ocl.metamodel.OclMetaModelConstraintRegistration;
public class ConstraintViolation {
public final OclMetaModelConstraintRegistration registration;
public final RefObject elementInError;
public ConstraintViolation(RefObject elementInError, OclMetaModelConstraintRegistration registration) {
this.elementInError = elementInError;
this.registration = registration;
}
/**
* Short
*/
public String getMessage() {
return "Invalid constraint " + registration.getName() + " for " + RefactoringModelUtil.getModelElementNameAndType(elementInError);
}
/**
* Detailed
*/
public String getDescription() {
return registration.getName() + ":\n\n" + registration.getOclExpression();
}
public RefactoringStatus asRefactoringStatus() {
RefactoringStatusContext context = new ConstraintViolationStatusContext(this);
int severity = getSeverity().asEclipseRefactoringSeverity();
return RefactoringStatus.createStatus(severity, getMessage(), context, Activator.PLUGIN_ID, RefactoringStatusEntry.NO_CODE, null);
}
public RefactoringSeverity getSeverity() {
return RefactoringSeverity.getForMoinSeverity(registration.getSeverity());
}
}