/*******************************************************************************
* Copyright (c) 2012 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.common.validation;
import java.util.HashSet;
import java.util.Set;
import org.eclipse.core.resources.IProject;
import org.eclipse.jface.text.IDocument;
/**
* Validation context used in as-you-type validation.
* @author Alexey Kazakov
*/
public class EditorValidationContext extends ValidationContext {
private IDocument document;
private Set<IStringValidator> stringValidators;
private Set<IJavaElementValidator> javaElementValidators;
public EditorValidationContext(IProject project, IDocument document) {
super(project);
this.document = document;
stringValidators = new HashSet<IStringValidator>();
javaElementValidators = new HashSet<IJavaElementValidator>();
for (IValidator validator : validators) {
if(validator instanceof IStringValidator) {
stringValidators.add((IStringValidator)validator);
}
if(validator instanceof IJavaElementValidator) {
javaElementValidators.add((IJavaElementValidator)validator);
}
}
}
/*
* (non-Javadoc)
* @see org.jboss.tools.common.validation.ValidationContext#shouldValidate(org.jboss.tools.common.validation.IValidator, org.eclipse.core.resources.IProject)
*/
@Override
protected boolean shouldValidate(IValidator validator, IProject project) {
return validator instanceof IAsYouTypeValidator &&
((IAsYouTypeValidator)validator).shouldValidateAsYouType(project);
}
/**
* @return the document
*/
public IDocument getDocument() {
return document;
}
/**
* @return the stringValidators
*/
public Set<IStringValidator> getStringValidators() {
return stringValidators;
}
/**
* @return the javaElementValidators
*/
public Set<IJavaElementValidator> getJavaElementValidators() {
return javaElementValidators;
}
}