Skip to content
Snippets Groups Projects
Commit ea08c647 authored by Vincent Aravantinos's avatar Vincent Aravantinos
Browse files

embeds verification in a command

refs 2553
parent c3c3de8a
No related branches found
No related tags found
No related merge requests found
......@@ -21,12 +21,14 @@ import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.fortiss.tooling.kernel.ToolingKernelActivator;
import org.fortiss.tooling.kernel.extension.IConstraintVerifier;
import org.fortiss.tooling.kernel.extension.data.ITopLevelElement;
import org.fortiss.tooling.kernel.model.constraints.ConstrainedWithChecksum;
import org.fortiss.tooling.kernel.model.constraints.ConstraintsFactory;
import org.fortiss.tooling.kernel.model.constraints.IConstrained;
import org.fortiss.tooling.kernel.model.constraints.IConstraint;
import org.fortiss.tooling.kernel.model.constraints.IConstraintVerificationStatus;
import org.fortiss.tooling.kernel.service.IConstraintVerificationService;
import org.fortiss.tooling.kernel.service.IPersistencyService;
import org.fortiss.tooling.kernel.service.base.EObjectAwareServiceBase;
import org.fortiss.tooling.kernel.utils.EcoreUtils;
import org.fortiss.tooling.kernel.utils.LoggingUtils;
......@@ -37,7 +39,7 @@ import org.fortiss.tooling.kernel.utils.LoggingUtils;
* @author aravantinos
* @author $Author$
* @version $Rev$
* @ConQAT.Rating YELLOW Hash: 3B08090E073A0A96815E002991A128A7
* @ConQAT.Rating YELLOW Hash: 101AAAD68A0AC283E6B4772998186B71
*/
public final class ConstraintVerificationService extends
EObjectAwareServiceBase<IConstraintVerifier<IConstraint>> implements
......@@ -48,11 +50,18 @@ public final class ConstraintVerificationService extends
public void verify(IConstraint constraint) {
IConstraintVerifier<IConstraint> verifier = getFirstVerifier(constraint);
if(verifier != null) {
verifier.verify(constraint);
// Updating checksums must be done *after* verification because the verification can
// have side effects.
updateChecksums(constraint);
constraint.getVerificationStatus().setConstraint(constraint);
ITopLevelElement modelContext =
IPersistencyService.INSTANCE.getTopLevelElementFor(constraint);
modelContext.runAsCommand(new Runnable() {
@Override
public void run() {
verifier.verify(constraint);
// Updating checksums must be done *after* verification because the verification
// can have side effects.
updateChecksums(constraint);
constraint.getVerificationStatus().setConstraint(constraint);
}
});
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment