Author: akazakov
Date: 2010-12-28 13:25:47 -0500 (Tue, 28 Dec 2010)
New Revision: 27779
Added:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/JSFELValidationDelegate.java
Removed:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/preferences/
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/ELValidator.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/JSFValidationMessages.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/messages.properties
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf/META-INF/MANIFEST.MF
trunk/jsf/plugins/org.jboss.tools.jsf/plugin.xml
Log:
https://issues.jboss.org/browse/JBIDE-7955
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/META-INF/MANIFEST.MF
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/META-INF/MANIFEST.MF 2010-12-28 18:21:58 UTC
(rev 27778)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/META-INF/MANIFEST.MF 2010-12-28 18:25:47 UTC
(rev 27779)
@@ -29,7 +29,6 @@
org.jboss.tools.jsf.model.impl,
org.jboss.tools.jsf.model.pv,
org.jboss.tools.jsf.model.pv.handler,
- org.jboss.tools.jsf.preferences,
org.jboss.tools.jsf.project,
org.jboss.tools.jsf.project.capabilities,
org.jboss.tools.jsf.project.facet,
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/plugin.xml
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/plugin.xml 2010-12-28 18:21:58 UTC (rev 27778)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/plugin.xml 2010-12-28 18:25:47 UTC (rev 27779)
@@ -464,7 +464,15 @@
resolver-class="org.jboss.tools.jsf.model.JSF2CCAttrsELCompletionEngine"/>
</el-resolver>
</extension>
+
<extension
+ point="org.jboss.tools.jst.web.kb.elValidationDelegate">
+ <delegate
+
class="org.jboss.tools.jsf.web.validation.JSFELValidationDelegate">
+ </delegate>
+ </extension>
+
+ <extension
point="org.jboss.tools.common.model.modelnatures">
<modelnature
name="org.jboss.tools.jsf.jsfnature"
@@ -484,25 +492,6 @@
</contribution>
</extension>
- <extension point="org.eclipse.core.runtime.preferences">
- <initializer
class="org.jboss.tools.jsf.preferences.JSFPreferenceInitializer"/>
- </extension>
-
- <extension id="elproblem" name="%KBProblemName"
point="org.eclipse.core.resources.markers">
- <super type="org.jboss.tools.jst.web.kb.kbproblemmarker">
- </super>
- <persistent value="true">
- </persistent>
- </extension>
-
- <extension
- point="org.jboss.tools.jst.web.kb.validator">
- <validator
- class="org.jboss.tools.jsf.web.validation.ELValidator"
- id="org.jboss.tools.jsf.ELValidator">
- </validator>
- </extension>
-
<extension point="org.eclipse.core.runtime.adapters">
<factory
class="org.jboss.tools.jsf.model.pv.JSFProjectsRootAdapterFactory"
Deleted:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/ELValidator.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/ELValidator.java 2010-12-28
18:21:58 UTC (rev 27778)
+++
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/ELValidator.java 2010-12-28
18:25:47 UTC (rev 27779)
@@ -1,510 +0,0 @@
- /*******************************************************************************
- * Copyright (c) 2007 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.jsf.web.validation;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jst.j2ee.project.facet.IJ2EEFacetConstants;
-import org.eclipse.wst.common.componentcore.ComponentCore;
-import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
-import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.validation.internal.core.ValidationException;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-import org.jboss.tools.common.el.core.ELReference;
-import org.jboss.tools.common.el.core.model.ELExpression;
-import org.jboss.tools.common.el.core.model.ELInvocationExpression;
-import org.jboss.tools.common.el.core.model.ELPropertyInvocation;
-import org.jboss.tools.common.el.core.parser.ELParserFactory;
-import org.jboss.tools.common.el.core.parser.ELParserUtil;
-import org.jboss.tools.common.el.core.parser.LexicalToken;
-import org.jboss.tools.common.el.core.parser.SyntaxError;
-import org.jboss.tools.common.el.core.resolver.ELContext;
-import org.jboss.tools.common.el.core.resolver.ELContextImpl;
-import org.jboss.tools.common.el.core.resolver.ELResolution;
-import org.jboss.tools.common.el.core.resolver.ELResolver;
-import org.jboss.tools.common.el.core.resolver.ELResolverFactoryManager;
-import org.jboss.tools.common.el.core.resolver.ELSegment;
-import org.jboss.tools.common.el.core.resolver.IVariable;
-import org.jboss.tools.common.el.core.resolver.JavaMemberELSegmentImpl;
-import org.jboss.tools.common.el.core.resolver.SimpleELContext;
-import org.jboss.tools.common.el.core.resolver.TypeInfoCollector;
-import org.jboss.tools.common.el.core.resolver.Var;
-import org.jboss.tools.common.model.util.EclipseResourceUtil;
-import org.jboss.tools.jsf.JSFModelPlugin;
-import org.jboss.tools.jsf.preferences.JSFSeverityPreferences;
-import org.jboss.tools.jsf.project.JSFNature;
-import org.jboss.tools.jst.web.kb.IKbProject;
-import org.jboss.tools.jst.web.kb.KbProjectFactory;
-import org.jboss.tools.jst.web.kb.PageContextFactory;
-import org.jboss.tools.jst.web.kb.internal.KbProject;
-import org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper;
-import org.jboss.tools.jst.web.kb.internal.validation.SimpleValidatingProjectTree;
-import org.jboss.tools.jst.web.kb.internal.validation.ValidatingProjectSet;
-import org.jboss.tools.jst.web.kb.internal.validation.ValidationErrorManager;
-import org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager;
-import org.jboss.tools.jst.web.kb.validation.IProjectValidationContext;
-import org.jboss.tools.jst.web.kb.validation.IValidatingProjectSet;
-import org.jboss.tools.jst.web.kb.validation.IValidatingProjectTree;
-import org.jboss.tools.jst.web.kb.validation.IValidator;
-
-/**
- * EL Validator
- * @author Alexey Kazakov
- */
-public class ELValidator extends ValidationErrorManager implements IValidator {
-
- public static final String ID = "org.jboss.tools.jsf.ELValidator";
//$NON-NLS-1$
- public static final String PROBLEM_TYPE = "org.jboss.tools.jsf.elproblem";
//$NON-NLS-1$
-
- private ELResolver[] resolvers;
- protected ELParserFactory mainFactory;
-
- private IProject currentProject;
- private IResource[] currentSources;
- private IContainer webRootFolder;
- private boolean revalidateUnresolvedELs = false;
- private boolean validateVars = true;
-
- public ELValidator() {
- }
-
- /*
- * (non-Javadoc)
- * @see
org.jboss.tools.jst.web.kb.internal.validation.ValidationErrorManager#getMarkerType()
- */
- @Override
- public String getMarkerType() {
- return PROBLEM_TYPE;
- }
-
- /*
- * (non-Javadoc)
- * @see
org.jboss.tools.jst.web.kb.validation.IValidator#isEnabled(org.eclipse.core.resources.IProject)
- */
- public boolean isEnabled(IProject project) {
- return JSFSeverityPreferences.isValidationEnabled(project) &&
JSFSeverityPreferences.shouldValidateEL(project);
- }
-
- /*
- * (non-Javadoc)
- * @see
org.jboss.tools.jst.web.kb.internal.validation.ValidationErrorManager#getMaxNumberOfMarkersPerFile(org.eclipse.core.resources.IProject)
- */
- @Override
- public int getMaxNumberOfMarkersPerFile(IProject project) {
- return JSFSeverityPreferences.getMaxNumberOfProblemMarkersPerFile(project);
- }
-
- /*
- * (non-Javadoc)
- * @see
org.jboss.tools.jst.web.kb.internal.validation.ValidationErrorManager#init(org.eclipse.core.resources.IProject,
org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper,
org.jboss.tools.jst.web.kb.validation.IProjectValidationContext,
org.eclipse.wst.validation.internal.provisional.core.IValidator,
org.eclipse.wst.validation.internal.provisional.core.IReporter)
- */
- @Override
- public void init(IProject project, ContextValidationHelper validationHelper,
IProjectValidationContext context,
org.eclipse.wst.validation.internal.provisional.core.IValidator manager, IReporter
reporter) {
- super.init(project, validationHelper, context, manager, reporter);
- resolvers = ELResolverFactoryManager.getInstance().getResolvers(project);
- mainFactory = ELParserUtil.getDefaultFactory();
- validateVars =
JSFSeverityPreferences.ENABLE.equals(JSFSeverityPreferences.getInstance().getProjectPreference(validatingProject,
JSFSeverityPreferences.CHECK_VARS));
- currentProject = null;
- }
-
- /*
- * (non-Javadoc)
- * @see org.jboss.tools.jst.web.kb.validation.IValidator#validate(java.util.Set,
org.eclipse.core.resources.IProject,
org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper,
org.jboss.tools.jst.web.kb.validation.IProjectValidationContext,
org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager,
org.eclipse.wst.validation.internal.provisional.core.IReporter)
- */
- public IStatus validate(Set<IFile> changedFiles, IProject project,
ContextValidationHelper validationHelper, IProjectValidationContext context,
ValidatorManager manager, IReporter reporter) throws ValidationException {
- init(project, validationHelper, context, manager, reporter);
- webRootFolder = null;
- initRevalidationFlag();
- IWorkspaceRoot wsRoot = ResourcesPlugin.getWorkspace().getRoot();
-
- Set<IFile> filesToValidate = new HashSet<IFile>();
- boolean containsJavaOrComponentsXml = false;
- for (IFile file : changedFiles) {
- filesToValidate.add(file);
- if(!containsJavaOrComponentsXml) {
- String fileName = file.getName().toLowerCase();
- containsJavaOrComponentsXml = fileName.endsWith(".java") ||
fileName.endsWith(".properties") || fileName.equals("components.xml");
//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- }
- }
-
- if(containsJavaOrComponentsXml) {
- if(revalidateUnresolvedELs) {
- Set<IPath> unnamedResources = validationContext.getUnnamedElResources();
- for (IPath path : unnamedResources) {
- IFile file = wsRoot.getFile(path);
- if(file.exists()) {
- filesToValidate.add(file);
- }
- }
- }
- }
-
- Set<ELReference> elsToValidate =
validationContext.getElsForValidation(changedFiles, false);
- validationContext.removeLinkedEls(filesToValidate);
- for (IFile file : filesToValidate) {
- if(!reporter.isCancelled()) {
- validateFile(file);
- }
- }
- if(revalidateUnresolvedELs) {
- int i=0;
- for (ELReference el : elsToValidate) {
- // Don't re-validate more than 1000 ELs.
- if(!filesToValidate.contains(el.getResource())) {
- if(i++>1000) {
- break;
- }
- validateEL(el);
- }
- }
- }
-
- validationContext.clearOldVariableNameForElValidation();
- return OK_STATUS;
- }
-
- private void initRevalidationFlag() {
- String revalidateUnresolvedELsString =
JSFSeverityPreferences.getInstance().getProjectPreference(validatingProject,
JSFSeverityPreferences.RE_VALIDATE_UNRESOLVED_EL);
- revalidateUnresolvedELs =
JSFSeverityPreferences.ENABLE.equals(revalidateUnresolvedELsString);
- }
-
- /*
- * (non-Javadoc)
- * @see
org.jboss.tools.jst.web.kb.validation.IValidator#validateAll(org.eclipse.core.resources.IProject,
org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper,
org.jboss.tools.jst.web.kb.validation.IProjectValidationContext,
org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager,
org.eclipse.wst.validation.internal.provisional.core.IReporter)
- */
- public IStatus validateAll(IProject project, ContextValidationHelper validationHelper,
IProjectValidationContext context, ValidatorManager manager, IReporter reporter) throws
ValidationException {
- init(project, validationHelper, context, manager, reporter);
- webRootFolder = null;
- initRevalidationFlag();
- Set<IFile> files = validationHelper.getProjectSetRegisteredFiles();
- for (IFile file : files) {
- if(!reporter.isCancelled()) {
- if(file.exists()) {
- validateFile(file);
- } else {
- validationContext.removeUnnamedElResource(file.getFullPath());
- }
- }
- }
- return OK_STATUS;
- }
-
- private static final String JAVA_EXT = "java"; //$NON-NLS-1$
-
- private boolean enabled = true;
-
- private boolean shouldFileBeValidated(IFile file) {
- if(!file.isAccessible()) {
- return false;
- }
- IProject project = file.getProject();
- if(!file.isSynchronized(IResource.DEPTH_ZERO)) {
- // The resource is out of sync with the file system
- // Just ignore this resource.
- return false;
- }
- if(!project.equals(currentProject)) {
- currentProject = project;
- enabled = isEnabled(project);
- if(!enabled) {
- return false;
- }
- if(webRootFolder!=null && !project.equals(webRootFolder.getProject())) {
- webRootFolder = null;
- }
- if(webRootFolder==null) {
- IFacetedProject facetedProject = null;
- try {
- facetedProject = ProjectFacetsManager.create(project);
- } catch (CoreException e) {
- JSFModelPlugin.getDefault().logError(JSFValidationMessages.EL_VALIDATOR_ERROR_VALIDATING,
e);
- }
- if(facetedProject!=null &&
facetedProject.getProjectFacetVersion(IJ2EEFacetConstants.DYNAMIC_WEB_FACET)!=null) {
- IVirtualComponent component = ComponentCore.createComponent(project);
- if(component!=null) {
- IVirtualFolder webRootVirtFolder = component.getRootFolder().getFolder(new
Path("/")); //$NON-NLS-1$
- webRootFolder = webRootVirtFolder.getUnderlyingFolder();
- }
- }
- }
- currentProject = project;
- currentSources = EclipseResourceUtil.getJavaSourceRoots(project);
- }
- if(!enabled) {
- return false;
- }
- // Validate all files from java source folders.
- for (int i = 0; currentSources!=null && i < currentSources.length; i++) {
- if(currentSources[i].getLocation().isPrefixOf(file.getLocation())) {
- return true;
- }
- }
- // If *.java is out of Java Source path then ignore it.
- if(JAVA_EXT.equalsIgnoreCase(file.getFileExtension())) {
- return false;
- }
- // Otherwise validate only files from Web-Content (in case of WTP project)
- if(webRootFolder!=null) {
- return webRootFolder.getLocation().isPrefixOf(file.getLocation());
- }
- return true;
- }
-
- private int markers;
-
- private void validateFile(IFile file) {
- if(!shouldFileBeValidated(file)) {
- return;
- }
- removeAllMessagesFromResource(file);
- markers = 0;
- displaySubtask(JSFValidationMessages.VALIDATING_EL_FILE, new
String[]{file.getProject().getName(), file.getName()});
- ELContext context = PageContextFactory.createPageContext(file);
- if(context!=null) {
- ELReference[] references = context.getELReferences();
- for (int i = 0; i < references.length; i++) {
- if(!references[i].getSyntaxErrors().isEmpty()) {
- for (SyntaxError error: references[i].getSyntaxErrors()) {
- markers++;
- addError(JSFValidationMessages.EL_SYNTAX_ERROR,
JSFSeverityPreferences.EL_SYNTAX_ERROR, new String[]{"" + error.getProblem()},
references[i].getLineNumber(), 1, references[i].getStartPosition() + error.getPosition(),
context.getResource());
-// IMarker marker = addError(JSFValidationMessages.EL_SYNTAX_ERROR,
JSFSeverityPreferences.EL_SYNTAX_ERROR, new String[]{"" + error.getProblem()},
1, references[i].getStartPosition() + error.getPosition(), context.getResource());
-// references[i].addMarker(marker);
- }
- }
- if(markers<getMaxNumberOfMarkersPerFile(file.getProject())) {
- validateEL(references[i]);
- }
- }
- }
- }
-
- private void validateEL(ELReference el) {
- if(!reporter.isCancelled()) {
- displaySubtask(JSFValidationMessages.VALIDATING_EL_FILE, new
String[]{el.getResource().getProject().getName(), el.getResource().getName()});
- el.deleteMarkers();
- for (ELExpression expresion : el.getEl()) {
- validateELExpression(el, expresion);
- }
- }
- }
-
- private void validateELExpression(ELReference elReference, ELExpression el) {
- if(el == null) return;
- List<ELInvocationExpression> es = el.getInvocations();
- for (ELInvocationExpression token: es) {
- validateElOperand(elReference, token);
- }
- }
-
- private void validateElOperand(ELReference elReference, ELInvocationExpression
operandToken) {
- IFile file = elReference.getResource();
- int documnetOffset = elReference.getStartPosition();
- String operand = operandToken.getText();
- if(operand.trim().length()==0) {
- return;
- }
- String varName = operand;
- int offsetOfVarName = documnetOffset + operandToken.getFirstToken().getStart();
- int lengthOfVarName = varName.length();
- boolean unresolvedTokenIsVariable = false;
- if (!operand.endsWith(".")) { //$NON-NLS-1$
- ELResolution resolution = null;
- ELContext context = PageContextFactory.createPageContext(file);
- if(context==null) {
- context = new SimpleELContext();
- context.setResource(file);
- context.setElResolvers(resolvers);
- }
- int maxNumberOfResolvedSegments = -1;
- List<Var> vars = null;
- ELContextImpl c = null;
- if(!validateVars && context instanceof ELContextImpl) {
- c = (ELContextImpl)context;
- vars = c.getAllVars();
- c.setAllVars(new ArrayList<Var>());
- }
-
- for (int i = 0; i < resolvers.length; i++) {
- ELResolution elResolution = resolvers[i].resolve(context, operandToken,
documnetOffset);
- if(elResolution==null) {
- continue;
- }
- if(elResolution.isResolved()) {
- resolution = elResolution;
- break;
- }
- int number = elResolution.getNumberOfResolvedSegments();
- if(number>maxNumberOfResolvedSegments) {
- maxNumberOfResolvedSegments = number;
- resolution = elResolution;
- }
- }
-
- if(c!=null) {
- c.setAllVars(vars);
- }
-
- if(!resolution.isResolved()) {
- Set<String> names = findVariableNames(operandToken);
- for (String name : names) {
- validationContext.addLinkedEl(name, elReference);
- }
- }
-
- List<ELSegment> segments = resolution.getSegments();
- List<IVariable> usedVariables = new ArrayList<IVariable>();
- for (ELSegment segment : segments) {
- if(!segment.getVariables().isEmpty()) {
- usedVariables.addAll(segment.getVariables());
- }
- // Check pair for getter/setter
- if(segment instanceof JavaMemberELSegmentImpl) {
- JavaMemberELSegmentImpl javaSegment = (JavaMemberELSegmentImpl)segment;
- if(!javaSegment.getUnpairedGettersOrSetters().isEmpty()) {
- TypeInfoCollector.MethodInfo unpairedMethod =
javaSegment.getUnpairedGettersOrSetters().values().iterator().next();
- String methodName = unpairedMethod.getName();
- String propertyName =
javaSegment.getUnpairedGettersOrSetters().keySet().iterator().next();
- String missingMethodName = JSFValidationMessages.EL_VALIDATOR_SETTER;
- String existedMethodName = JSFValidationMessages.EL_VALIDATOR_GETTER;
- if(methodName.startsWith("s")) { //$NON-NLS-1$
- missingMethodName = existedMethodName;
- existedMethodName = JSFValidationMessages.EL_VALIDATOR_SETTER;
- }
- int startPosition = documnetOffset + operandToken.getStartPosition();
- int length = operandToken.getLength();
- int startPr = operand.indexOf(propertyName);
- if(startPr>-1) {
- startPosition = startPosition + startPr;
- length = propertyName.length();
- }
-// addError(JSFValidationMessages.UNPAIRED_GETTER_OR_SETTER,
JSFSeverityPreferences.UNPAIRED_GETTER_OR_SETTER, new String[]{propertyName,
existedMethodName, missingMethodName}, length, startPosition, file);
- markers++;
- IMarker marker = addError(JSFValidationMessages.UNPAIRED_GETTER_OR_SETTER,
JSFSeverityPreferences.UNPAIRED_GETTER_OR_SETTER, new String[]{propertyName,
existedMethodName, missingMethodName}, elReference.getLineNumber(), length, startPosition,
file);
- elReference.addMarker(marker);
- }
- }
- }
- // Save links between resource and used variables names
- for(IVariable variable: usedVariables) {
- validationContext.addLinkedEl(variable.getName(), elReference);
- }
-
- if (resolution.isResolved()) {
- // It's valid EL.
- return;
- }
-
- ELSegment segment = resolution.getUnresolvedSegment();
- if(segment==null) {
- return;
- }
- LexicalToken token = segment.getToken();
-
- varName = token.getText();
- if(varName == null) {
- //This is syntax error case. Reported by parser.
- return;
- }
- offsetOfVarName = documnetOffset + token.getStart();
- lengthOfVarName = varName == null ? 0 : varName.length();
- if(usedVariables.isEmpty()) {
- unresolvedTokenIsVariable = true;
- }
- }
- markers++;
- // Mark invalid EL
- if(unresolvedTokenIsVariable) {
-// addError(JSFValidationMessages.UNKNOWN_EL_VARIABLE_NAME,
JSFSeverityPreferences.UNKNOWN_EL_VARIABLE_NAME, new String[]{varName}, lengthOfVarName,
offsetOfVarName, file);
- IMarker marker = addError(JSFValidationMessages.UNKNOWN_EL_VARIABLE_NAME,
JSFSeverityPreferences.UNKNOWN_EL_VARIABLE_NAME, new String[]{varName},
elReference.getLineNumber(), lengthOfVarName, offsetOfVarName, file);
- elReference.addMarker(marker);
- } else {
-// addError(JSFValidationMessages.UNKNOWN_EL_VARIABLE_PROPERTY_NAME,
JSFSeverityPreferences.UNKNOWN_EL_VARIABLE_PROPERTY_NAME, new String[]{varName},
lengthOfVarName, offsetOfVarName, file);
- IMarker marker = addError(JSFValidationMessages.UNKNOWN_EL_VARIABLE_PROPERTY_NAME,
JSFSeverityPreferences.UNKNOWN_EL_VARIABLE_PROPERTY_NAME, new String[]{varName},
elReference.getLineNumber(), lengthOfVarName, offsetOfVarName, file);
- elReference.addMarker(marker);
- }
- }
-
- private Set<String> findVariableNames(ELInvocationExpression
invocationExpression){
- Set<String> names = new HashSet<String>();
- while(invocationExpression != null) {
- if(invocationExpression instanceof ELPropertyInvocation) {
- String name = ((ELPropertyInvocation)invocationExpression).getQualifiedName();
- if(name != null) {
- names.add(name);
- }
- }
- invocationExpression = invocationExpression.getLeft();
- }
- return names;
- }
-
- /*
- * (non-Javadoc)
- * @see
org.jboss.tools.jst.web.kb.internal.validation.ValidationErrorManager#getPreference(org.eclipse.core.resources.IProject,
java.lang.String)
- */
- @Override
- protected String getPreference(IProject project, String preferenceKey) {
- return JSFSeverityPreferences.getInstance().getProjectPreference(project,
preferenceKey);
- }
-
- /*
- * (non-Javadoc)
- * @see org.jboss.tools.jst.web.kb.validation.IValidator#getId()
- */
- public String getId() {
- return ID;
- }
-
- /*
- * (non-Javadoc)
- * @see
org.jboss.tools.jst.web.kb.validation.IValidator#getValidatingProjects(org.eclipse.core.resources.IProject)
- */
- public IValidatingProjectTree getValidatingProjects(IProject project) {
- Set<IProject> projects = new HashSet<IProject>();
- projects.add(project);
- IKbProject kbProject = KbProjectFactory.getKbProject(project, false);
- if(kbProject!=null) {
- IProjectValidationContext rootContext = kbProject.getValidationContext();
- IValidatingProjectSet projectSet = new ValidatingProjectSet(project, projects,
rootContext);
- return new SimpleValidatingProjectTree(projectSet);
- }
- return new SimpleValidatingProjectTree(project);
- }
-
- /*
- * (non-Javadoc)
- * @see
org.jboss.tools.jst.web.kb.validation.IValidator#shouldValidate(org.eclipse.core.resources.IProject)
- */
- public boolean shouldValidate(IProject project) {
- try {
- return project!=null && project.isAccessible() &&
project.hasNature(JSFNature.NATURE_ID) &&
KbProject.checkKBBuilderInstalled(project);
- } catch (CoreException e) {
- JSFModelPlugin.getDefault().logError(e);
- }
- return false;
- }
-}
\ No newline at end of file
Added:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/JSFELValidationDelegate.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/JSFELValidationDelegate.java
(rev 0)
+++
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/JSFELValidationDelegate.java 2010-12-28
18:25:47 UTC (rev 27779)
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2010 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.jsf.web.validation;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.jboss.tools.jsf.JSFModelPlugin;
+import org.jboss.tools.jsf.project.JSFNature;
+import org.jboss.tools.jst.web.kb.IKbProject;
+import org.jboss.tools.jst.web.kb.KbProjectFactory;
+import org.jboss.tools.jst.web.kb.internal.KbProject;
+import org.jboss.tools.jst.web.kb.internal.validation.SimpleValidatingProjectTree;
+import org.jboss.tools.jst.web.kb.internal.validation.ValidatingProjectSet;
+import org.jboss.tools.jst.web.kb.validation.IELValidationDelegate;
+import org.jboss.tools.jst.web.kb.validation.IProjectValidationContext;
+import org.jboss.tools.jst.web.kb.validation.IValidatingProjectSet;
+import org.jboss.tools.jst.web.kb.validation.IValidatingProjectTree;
+
+/**
+ * @author Alexey Kazakov
+ */
+public class JSFELValidationDelegate implements IELValidationDelegate {
+
+ /* (non-Javadoc)
+ * @see
org.jboss.tools.jst.web.kb.validation.IELValidationDelegate#getValidatingProjects(org.eclipse.core.resources.IProject)
+ */
+ public IValidatingProjectTree getValidatingProjects(IProject project) {
+ Set<IProject> projects = new HashSet<IProject>();
+ projects.add(project);
+ IKbProject kbProject = KbProjectFactory.getKbProject(project, false);
+ if(kbProject!=null) {
+ IProjectValidationContext rootContext = kbProject.getValidationContext();
+ IValidatingProjectSet projectSet = new ValidatingProjectSet(project, projects,
rootContext);
+ return new SimpleValidatingProjectTree(projectSet);
+ }
+ return new SimpleValidatingProjectTree(project);
+ }
+
+ /* (non-Javadoc)
+ * @see
org.jboss.tools.jst.web.kb.validation.IELValidationDelegate#shouldValidate(org.eclipse.core.resources.IProject)
+ */
+ public boolean shouldValidate(IProject project) {
+ try {
+ return project!=null && project.isAccessible() &&
project.hasNature(JSFNature.NATURE_ID) &&
KbProject.checkKBBuilderInstalled(project);
+ } catch (CoreException e) {
+ JSFModelPlugin.getDefault().logError(e);
+ }
+ return false;
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/JSFELValidationDelegate.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Deleted:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/JSFValidationMessages.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/JSFValidationMessages.java 2010-12-28
18:21:58 UTC (rev 27778)
+++
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/JSFValidationMessages.java 2010-12-28
18:25:47 UTC (rev 27779)
@@ -1,22 +0,0 @@
-package org.jboss.tools.jsf.web.validation;
-
-import org.eclipse.osgi.util.NLS;
-
-public class JSFValidationMessages {
- private static final String BUNDLE_NAME =
"org.jboss.tools.jsf.web.validation.messages"; //$NON-NLS-1$
-
- public static String UNKNOWN_EL_VARIABLE_NAME;
- public static String UNKNOWN_EL_VARIABLE_PROPERTY_NAME;
- public static String UNPAIRED_GETTER_OR_SETTER;
- public static String EL_SYNTAX_ERROR;
-
- public static String VALIDATING_EL_FILE;
-
- public static String EL_VALIDATOR_ERROR_VALIDATING;
- public static String EL_VALIDATOR_SETTER;
- public static String EL_VALIDATOR_GETTER;
-
- static {
- NLS.initializeMessages(BUNDLE_NAME, JSFValidationMessages.class);
- }
-}
\ No newline at end of file
Deleted:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/messages.properties
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/messages.properties 2010-12-28
18:21:58 UTC (rev 27778)
+++
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/messages.properties 2010-12-28
18:25:47 UTC (rev 27779)
@@ -1,23 +0,0 @@
-#*******************************************************************************
-#* Copyright (c) 2007 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
-#******************************************************************************/
-
-#Expression Language
-UNKNOWN_EL_VARIABLE_NAME="{0}" cannot be resolved
-UNKNOWN_EL_VARIABLE_PROPERTY_NAME="{0}" cannot be resolved
-UNPAIRED_GETTER_OR_SETTER=Property "{0}" has only {1}. {2} is missing.
-EL_SYNTAX_ERROR=EL syntax error: {0}.
-
-#Messages for Progress Monitor
-VALIDATING_EL_FILE=project "{0}"; EL in "{1}" (JSF EL Validator)
-
-EL_VALIDATOR_ERROR_VALIDATING=Error validating EL
-EL_VALIDATOR_SETTER=Setter
-EL_VALIDATOR_GETTER=Getter
\ No newline at end of file