diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/validation/internal/XMLViewDefnValidator.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/validation/internal/XMLViewDefnValidator.java | 203 |
1 files changed, 0 insertions, 203 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/validation/internal/XMLViewDefnValidator.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/validation/internal/XMLViewDefnValidator.java deleted file mode 100644 index 9de83d19e..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/validation/internal/XMLViewDefnValidator.java +++ /dev/null @@ -1,203 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2008 Oracle Corporation and others. - * All rights reserved. This program and the accompanying materials - * are 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: - * Oracle Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.jst.jsf.validation.internal; - -import java.io.IOException; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.Platform; -import org.eclipse.jst.jsf.core.internal.JSFCorePlugin; -import org.eclipse.jst.jsf.core.internal.region.Region2AttrAdapter; -import org.eclipse.jst.jsf.core.internal.region.Region2ElementAdapter; -import org.eclipse.jst.jsf.core.internal.region.Region2ElementAdapter.NoElementException; -import org.eclipse.jst.jsf.designtime.DTAppManagerUtil; -import org.eclipse.jst.jsf.designtime.internal.view.IDTViewHandler; -import org.eclipse.jst.jsf.designtime.resolver.IStructuredDocumentSymbolResolverFactory; -import org.eclipse.jst.jsf.designtime.resolver.StructuredDocumentSymbolResolverFactory; -import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory; -import org.eclipse.jst.jsf.validation.internal.strategy.AttributeValidatingStrategy; -import org.eclipse.jst.jsf.validation.internal.strategy.ContainmentValidatingStrategy; -import org.eclipse.wst.sse.core.StructuredModelManager; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext; - -/** - * Validator for JSF view definitions that are structured in XML format - * - * @author cbateman - * - */ -public class XMLViewDefnValidator implements IJSFViewValidator -{ - // TODO: should the source validator be a separate class in jsp.ui? - // problem with simple split off is that preference must also be split off - static final boolean DEBUG; - static - { - final String value = Platform - .getDebugOption("org.eclipse.jst.jsf.core/validation"); //$NON-NLS-1$ - DEBUG = value != null && value.equalsIgnoreCase("true"); //$NON-NLS-1$ - } - - // default. Overridable by calling setSymbolResolverFactory - private IStructuredDocumentSymbolResolverFactory _symbolResolverFactory = - StructuredDocumentSymbolResolverFactory.getInstance(); - - /** - * Validates a JSP tag. - * - * Currently only attribute values with supplied annotation meta-data is - * being validated. Also, only JSF EL is being validated and not JSP EL. - * - * This method may be extended in the future to validate tag semantics an - * other cross attribute validations. - * - * @param container - * @param jsfValidationContext - * - */ - private void validateTag(final IStructuredDocumentRegion container, - final JSFValidationContext jsfValidationContext, - final ContainmentValidatingStrategy containmentStrategy) - { - // TODO: later when we move to composite strategy, run in SafeRunner - // to protect against exceptions generated in external code. - try - { - final Region2ElementAdapter regionAdapter = new Region2ElementAdapter( - container); - -// final IStructuredDocumentContext elementContext = -// IStructuredDocumentContextFactory.INSTANCE -// .getContext(container.getParentDocument(), container -// .getStartOffset()); - - if (containmentStrategy.isInteresting(regionAdapter)) - { - containmentStrategy.validate(regionAdapter); - } - - final AttributeValidatingStrategy strategy = - new AttributeValidatingStrategy(jsfValidationContext); - - for (final Region2AttrAdapter attrAdapter : regionAdapter - .getAttributes().values()) - { - if (strategy.isInteresting(attrAdapter)) - { - strategy.validate(attrAdapter); - } - } - } - catch (NoElementException ne) - { - // XXX: - } - } - - public void validateView(final IFile viewFile, final IValidationReporter reporter) - { - IStructuredModel model = null; - if (DEBUG) - { - System.out.println("executing JSPSemanticsValidator.validateFile"); //$NON-NLS-1$ - } - - try - { - final JSFValidationContext jsfValidationContext = - createValidationContext(false, viewFile, reporter); - - if (jsfValidationContext == null) - { - return; - } - - model = StructuredModelManager.getModelManager().getModelForRead( - viewFile); - - final IStructuredDocument structuredDoc = - model.getStructuredDocument(); - final IStructuredDocumentRegion[] regions = - structuredDoc.getStructuredDocumentRegions(); - validateRegions(regions, jsfValidationContext, - new ContainmentValidatingStrategy(jsfValidationContext)); - } - catch (final CoreException e) - { - JSFCorePlugin.log("Error validating JSF", e); //$NON-NLS-1$ - } - catch (final IOException e) - { - JSFCorePlugin.log("Error validating JSF", e); //$NON-NLS-1$ - } - finally - { - if (null != model) - { - model.releaseFromRead(); - } - } - } - - public void validateView(IFile viewFile, - IStructuredDocumentRegion[] regions, IValidationReporter reporter) - { - final JSFValidationContext jsfValidationContext = - createValidationContext(true, viewFile, reporter); - - if (jsfValidationContext == null) - { - return; - } - - validateRegions(regions, jsfValidationContext, - new ContainmentValidatingStrategy(jsfValidationContext)); - } - - private void validateRegions(final IStructuredDocumentRegion[] regions, - final JSFValidationContext context, - final ContainmentValidatingStrategy containmentValidator) - { - for (final IStructuredDocumentRegion curNode : regions) - { - if (curNode.getFirstRegion().getType() == DOMRegionContext.XML_TAG_OPEN) - { - validateTag(curNode, context, containmentValidator); - } - } - } - - private JSFValidationContext createValidationContext( - final boolean isIncremental, final IFile file, - final IValidationReporter reporter) - { - final ValidationPreferences prefs = new ValidationPreferences( - JSFCorePlugin.getDefault().getPreferenceStore()); - prefs.load(); - final DiagnosticFactory diagnosticFactory = new DiagnosticFactory(); - - final IDTViewHandler viewHandler = DTAppManagerUtil.getViewHandler(file - .getProject()); - - // only validate files that our designtime supports - if (viewHandler == null || !viewHandler.supportsViewDefinition(file)) - { - return null; - } - - return new JSFValidationContext(isIncremental, prefs, viewHandler, - diagnosticFactory, file, reporter, _symbolResolverFactory); - } -} |