/// ******************************************************************************* // * Copyright (c) 2009, 2012 SpringSource, a divison of VMware, Inc. // * 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: // * SpringSource, a division of VMware, Inc. - initial API and implementation // *******************************************************************************/ // package org.eclipse.virgo.ide.manifest.internal.core.validation.rules; // // /// ** // * @author Christian Dupuis // * @since 1.0.0 // */ /// ** // * TODO CD add comments // */ // public abstract class AbstractManifestHeaderRule implements // IValidationRule<BundleManifest, BundleManifestValidationContext> { // // public boolean supports(IModelElement element, IValidationContext context) { // return element instanceof BundleManifest && context instanceof BundleManifestValidationContext // && ((BundleManifest) element).getProblems().size() == 0 // && supportsContext((BundleManifestValidationContext) context); // } // // public final void validate(BundleManifest element, BundleManifestValidationContext context, IProgressMonitor monitor) /// { // IResource resource = context.getRootElement().getElementResource(); // // for (String headerName : getHeaderName()) { // BundleManifestHeader header = null; // if (isRequiredHeader(resource)) { // header = context.validateRequiredHeader(headerName, getMissingRequiredHeaderErrorId()); // } // else { // header = context.getBundleManifest().getHeader(headerName); // } // if (header != null) { // validateHeader(header, context); // } // } // } // // /** // * Intended to be overridden by validation rules to provide a unique error id that will be added to the marker in // * the case that the header is required and missing. // */ // protected String getMissingRequiredHeaderErrorId() { // return "MISSING_REQUIRED_HEADER"; // } // // protected abstract String[] getHeaderName(); // // protected boolean isRequiredHeader(IResource resource) { // return false; // } // // protected abstract boolean supportsContext(BundleManifestValidationContext context); // // protected abstract void validateHeader(BundleManifestHeader header, BundleManifestValidationContext context); // }