| /******************************************************************************* |
| * Copyright (c) 2001, 2007 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.appconfig; |
| |
| import java.util.List; |
| |
| import org.eclipse.core.resources.IFile; |
| import org.eclipse.emf.ecore.EObject; |
| import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigPackage; |
| |
| /** |
| * Recursive validator for navigation-rule |
| * |
| * @author cbateman |
| * |
| */ |
| public class NavigationRuleValidator extends EObjectValidationVisitor |
| { |
| /** |
| * Constructor |
| * @param version |
| */ |
| public NavigationRuleValidator(final String version) |
| { |
| super(FacesConfigPackage.eINSTANCE.getFacesConfigType_NavigationRule() |
| , version); |
| } |
| |
| protected void doValidate(EObject eobj, List messages, IFile file) |
| { |
| // nothing to do |
| } |
| |
| protected EObjectValidationVisitor[] getChildNodeValidators() |
| { |
| return new EObjectValidationVisitor[] |
| { |
| new NavigationCaseValidationVisitor(getVersion()) |
| }; |
| } |
| // private static class FromViewIdValidator extends ViewIdValidator |
| // { |
| // FromViewIdValidator() |
| // { |
| // super(Node.ELEMENT_NODE, "from-view-id"); |
| // } |
| // |
| // protected void doValidate(Node node, List messages, IFile file) |
| // { |
| // // only validate if a custom navigation handler is not set |
| // // since we can only validate against what the default navigation |
| // // handler will expect |
| // if (!hasCustomNavigationHandler(file)) |
| // { |
| // final String textContent = node.getTextContent(); |
| // final IProject project = file.getProject(); |
| // |
| // |
| // } |
| // } |
| // |
| // private boolean hasCustomNavigationHandler(IFile file) |
| // { |
| // JSFAppConfigManager configManager = |
| // JSFAppConfigManager.getInstance(file.getProject()); |
| // |
| // for (final Iterator appIt = configManager.getApplications().iterator(); appIt.hasNext();) |
| // { |
| // ApplicationType appType = (ApplicationType) appIt.next(); |
| // if (appType.getNavigationHandler().size() > 0) |
| // { |
| // return true; |
| // } |
| // } |
| // |
| // return false; |
| // } |
| // |
| // protected NodeValidationVisitor[] getChildNodeValidators() { |
| // return EMPTY_CHILDREN; |
| // } |
| // } |
| } |