diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/validation/internal/appconfig/EObjectValidationVisitor.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/validation/internal/appconfig/EObjectValidationVisitor.java | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/validation/internal/appconfig/EObjectValidationVisitor.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/validation/internal/appconfig/EObjectValidationVisitor.java deleted file mode 100644 index a3b7909d5..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/validation/internal/appconfig/EObjectValidationVisitor.java +++ /dev/null @@ -1,165 +0,0 @@ -/******************************************************************************* - * 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.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.eclipse.core.resources.IFile; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EStructuralFeature; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; - -/** - * - * @author cbateman - */ -public abstract class EObjectValidationVisitor -{ - private EStructuralFeature _structuralFeature; - private Map _childFeatures; // == null; lazy initialized in validate - private final String _version; - - /** - * Used to indicate no child nodes - */ - protected final static EObjectValidationVisitor[] NO_CHILDREN = - new EObjectValidationVisitor[0]; - - /** - * @param version - * - */ - public EObjectValidationVisitor(String version) - { - _version = version; - } - - private EObjectValidationVisitor getVisitorForFeature(EStructuralFeature feature) - { - if (_childFeatures == null) - { - _childFeatures = new HashMap(); - - EObjectValidationVisitor[] children = getChildNodeValidators(); - - for (int i = 0; i < children.length; i++) - { - final EObjectValidationVisitor child = children[i]; - _childFeatures.put(child.getStructuralFeature(), child); - } - } - - return (EObjectValidationVisitor) _childFeatures.get(feature); - } - - /** - * @param structuralFeature - * @param version - */ - public EObjectValidationVisitor(EStructuralFeature structuralFeature, String version) - { - this(version); - _structuralFeature = structuralFeature; - } - - /** - * @param eObject - * @param messages - * @param file - */ - public final void validate(EObject eObject, List messages, IFile file) - { - doValidate(eObject, messages, file); - - List features = eObject.eClass().getEAllStructuralFeatures(); - - for (final Iterator it = features.iterator(); it.hasNext();) - { - final EStructuralFeature feature = (EStructuralFeature) it.next(); - final EObjectValidationVisitor visitor = - getVisitorForFeature(feature); - - if (visitor != null) - { - final Object obj = eObject.eGet(feature); - - if (obj instanceof List - && feature.isMany()) - { - for (final Iterator childIt = ((List)obj).iterator(); - childIt.hasNext();) - { - Object child = childIt.next(); - if (child instanceof EObject) - { - visitor.validate((EObject)child, messages, file); - } - } - } - else if (obj instanceof EObject) - { - visitor.validate((EObject)obj , messages, file); - } - } - } - } - - /** - * Do the validation for this visitor on this node. Add any Message's to - * the messages list - * - * @param eObject - * @param messages - * @param file - */ - protected abstract void doValidate(EObject eObject, List messages, IFile file); - - /** - * @return an array of visitors that validate children of the current node - */ - protected abstract EObjectValidationVisitor[] getChildNodeValidators(); - - /** - * @return the structural feature - */ - protected final EStructuralFeature getStructuralFeature() - { - return _structuralFeature; - } - - /** - * @return the version of the runtime - */ - protected final String getVersion() - { - return _version; - } - - /** - * @param messages - * @param message - * @param eObj - * @param file - */ - protected static void addMessageInfo(List messages, IMessage message, EObject eObj, IFile file) - { - if (message != null) - { - message.setOffset(AppConfigValidationUtil.getStartOffset(eObj)); - message.setLength(AppConfigValidationUtil.getLength(eObj)); - message.setTargetObject(file); - messages.add(message); - } - } -} |