blob: 4d192430a4520c46ac91c12b0b9c36256003ce9e [file] [log] [blame]
package org.eclipse.wst.validation.tests;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.wst.validation.AbstractValidator;
import org.eclipse.wst.validation.ValidationResult;
import org.eclipse.wst.validation.ValidationState;
import org.eclipse.wst.validation.ValidatorMessage;
import org.eclipse.wst.validation.internal.Tracing;
/**
* A validator that processes *.html and *.htm files.
* @author karasiuk
*
*/
public class TestValidator3 extends AbstractValidator {
private static final String Name = "TestValidator3";
static final String ID = "org.eclipse.wst.validation.tests.TestValidator3";
public String getName() {
return Name;
}
@Override
public ValidationResult validate(IResource resource, int kind, ValidationState state, IProgressMonitor monitor){
Tracing.log(Name+"-04: validating: " + resource);
checkState(state);
if (resource.getName().equals("test.html")){
ValidationResult vr = new ValidationResult();
ValidatorMessage vm = ValidatorMessage.create("A specific test.html error", resource);
vm.setAttribute(IMarker.LINE_NUMBER, 1);
vm.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_ERROR);
vr.add(vm);
IResource other = resource.getParent().findMember("test2.html");
if (other != null)vr.setValidated(new IResource[]{other});
IResource depends = resource.getParent().findMember("master.html");
if (depends != null)vr.setDependsOn(new IResource[]{depends});
return vr;
}
ValidationResult vr = new ValidationResult();
ValidatorMessage vm = ValidatorMessage.create("A sample message from " + getName(), resource);
vm.setAttribute(IMarker.LINE_NUMBER, 1);
vm.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_ERROR);
vr.add(vm);
vm = ValidatorMessage.create("A different message from " + getName(), resource);
vm.setAttribute(IMarker.LINE_NUMBER, 3);
vm.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_WARNING);
vr.add(vm);
return vr;
}
@Override
public void validationStarting(IProject project, ValidationState state, IProgressMonitor monitor) {
String name = project == null ? "NULL" : project.getName();
Tracing.log(Name+"-05: thinks validation is starting for project: ", name);
if (!checkState(state)){
state.put(ID, "my state");
}
}
@Override
public void validationFinishing(IProject project, ValidationState state, IProgressMonitor monitor) {
String name = project == null ? "NULL" : project.getName();
Tracing.log(Name+"-01: thinks validation is finishing for project: ", name);
checkState(state);
}
@Override
public void clean(IProject project, ValidationState state, IProgressMonitor monitor) {
String name = project == null ? "NULL" : project.getName();
Tracing.log(Name+"-02: thinks a clean has been requested for project: ", name);
checkState(state);
}
private boolean checkState(ValidationState state){
if (state.get(ID) != null){
Tracing.log(Name+"-03: has state information");
return true;
}
return false;
}
}