package com.sap.ide.refactoring.core.validation;
import java.util.Collection;
import org.eclipse.ltk.core.refactoring.RefactoringStatus;
import com.sap.furcas.metamodel.textblocks.TextBlock;
import com.sap.ide.refactoring.core.textual.RefactoringEditorFacade;
import com.sap.mi.textual.grammar.impl.ParsingError;
public class CheckBlockIsParsableCommand extends AbstractValidationCommand {
private final RefactoringEditorFacade facade;
private final TextBlock rootBlock;
public CheckBlockIsParsableCommand(RefactoringEditorFacade facade, TextBlock rootBlock) {
super(facade.getEditorConnection(), "Assert that block remains parsable");
this.facade = facade;
this.rootBlock = rootBlock;
}
@Override
public void doExecute() {
Collection<ParsingError> errors = facade.checkAndGetSyntacticalErrors(rootBlock);
for (ParsingError error : errors) {
String msg = "Syntax error present";
status.merge(RefactoringStatus.createWarningStatus(msg + ": " + error.getMessage()));
}
}
}