/// ******************************************************************************* // * 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 // */ // @SuppressWarnings("restriction") // public class ImportPackageBundleAndLibraryRule extends AbstractBundleManifestHeaderRule { // // private void validateResolutionDirective(BundleManifestHeader header, ManifestElement element, // BundleManifestValidationContext context) { // String resolution = element.getDirective(Constants.RESOLUTION_DIRECTIVE); // if (resolution != null) { // context.validateDirectiveValue(header, element, Constants.RESOLUTION_DIRECTIVE, // new String[] { Constants.RESOLUTION_MANDATORY, Constants.RESOLUTION_OPTIONAL }); // } // } // // private void validateVersionAttribute(BundleManifestHeader header, ManifestElement element, // BundleManifestValidationContext context) { // String version = null; // if (Constants.REQUIRE_BUNDLE.equals(header.getElementName())) { // version = element.getAttribute(Constants.BUNDLE_VERSION_ATTRIBUTE); // } else { // version = element.getAttribute(Constants.VERSION_ATTRIBUTE); // } // // if (version == null) // return; // IStatus status = VersionUtil.validateVersionRange(version); // if (!status.isOK()) { // String errorId = getIllegalVersionErrorId(header); // String artifactName = element.getValue(); // context.error(errorId, status.getMessage(), BundleManifestUtils // .getPackageLineNumber(context.getBundleManifest().getDocument(), header, // element), new ValidationProblemAttribute(ManifestValidationRuleConstants.IMPORT_ARTIFACT_NAME, artifactName)); // } // } // // protected String getIllegalVersionErrorId(BundleManifestHeader header) { // if (header.getElementName().equals(Constants.IMPORT_PACKAGE)) { // return ManifestValidationRuleConstants.ILLEGAL_IMPORT_PACKAGE_VERSION; // } else if (header.getElementName().equals("Import-Bundle")) { // return ManifestValidationRuleConstants.ILLEGAL_IMPORT_BUNDLE_VERSION; // } else if (header.getElementName().equals("Require-Bundle")) { // return ManifestValidationRuleConstants.ILLEGAL_REQUIRE_BUNDLE_VERSION; // } else if (header.getElementName().equals("Import-Library")) { // return ManifestValidationRuleConstants.ILLEGAL_IMPORT_LIBRARY_VERSION; // } // return ""; // } // // @Override // protected String[] getHeaderName() { // return new String[] { Constants.IMPORT_PACKAGE, "Import-Bundle", "Import-Library", Constants.REQUIRE_BUNDLE }; // } // // @Override // protected void validateHeader(BundleManifestHeader header, // BundleManifestValidationContext context) { // for (BundleManifestHeaderElement element : header.getBundleManifestHeaderElements()) { // validateResolutionDirective(header, element.getManifestElement(), context); // validateVersionAttribute(header, element.getManifestElement(), context); // } // } // // }