blob: 7067138f5bea39362a31dab48950cfc6ee15e7e1 [file] [log] [blame]
/// *******************************************************************************
// * 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;
//
// import java.util.ArrayList;
// import java.util.Arrays;
// import java.util.List;
//
//
//
/// **
// * @author Christian Dupuis
// * @since 1.0.0
// */
/// **
// * TODO CD add comments
// */
// public class BundleManifestValidationContext extends AbstractValidationContext {
//
// public static final String[] BOOLEAN_VALUES = new String[] { "true", "false" };
//
// public BundleManifestValidationContext(IResourceModelElement rootElement,
// IResourceModelElement contextElement) {
// super(rootElement, contextElement);
// }
//
// public void error(String problemId, String msg, int line, ValidationProblemAttribute... attributes) {
// error(getRootElement(), problemId, msg, mergeAttributes(line, attributes));
// }
//
// public void errorIllegalAttributeValue(BundleManifestHeader header, ManifestElement element,
// String key, String value) {
// String msg = NLS.bind(BundleManifestCoreMessages.BundleErrorReporter_att_value,
// (new String[] { value, key }));
// error(getRootElement(), "ILLEGAL_ATTRIBUTE_VALUE", msg, new ValidationProblemAttribute(
// IMarker.LINE_NUMBER, BundleManifestUtils.getLineNumber(getDocument(), header, key
// + "=")));
// }
//
// public void errorIllegalDirectiveValue(BundleManifestHeader header, ManifestElement element,
// String key, String value) {
// String msg = NLS.bind(BundleManifestCoreMessages.BundleErrorReporter_dir_value,
// (new String[] { value, key }));
// error(getRootElement(), "ILLEGAL_DIRECTIVE_VALUE", msg, new ValidationProblemAttribute(
// IMarker.LINE_NUMBER, BundleManifestUtils.getLineNumber(getDocument(), header, key
// + ":=")));
// }
//
// public void errorIllegalValue(BundleManifestHeader header, ManifestElement element, String illegalValue, String
/// errorId) {
// String msg = NLS.bind(BundleManifestCoreMessages.BundleErrorReporter_illegal_value, illegalValue);
// error(getRootElement(), errorId, msg, new ValidationProblemAttribute(
// IMarker.LINE_NUMBER, BundleManifestUtils
// .getLineNumber(getDocument(), header, illegalValue)));
// }
//
// public BundleManifest getBundleManifest() {
// return (BundleManifest) getRootElement();
// }
//
// public void info(String problemId, String msg, int line, ValidationProblemAttribute... attributes) {
// info(getRootElement(), problemId, msg, mergeAttributes(line, attributes));
// }
//
// public void validateAttributeValue(BundleManifestHeader header, ManifestElement element,
// String key, String[] allowedValues) {
// String value = element.getAttribute(key);
// if (value == null) {
// return;
// }
// for (int i = 0; i < allowedValues.length; i++) {
// if (allowedValues[i].equals(value)) {
// return;
// }
// }
// errorIllegalAttributeValue(header, element, key, value);
// }
//
// public void validateBooleanAttributeValue(BundleManifestHeader header, ManifestElement element,
// String key) {
// validateAttributeValue(header, element, key, BOOLEAN_VALUES);
// }
//
// public void validateBooleanDirectiveValue(BundleManifestHeader header, ManifestElement element,
// String key) {
// validateDirectiveValue(header, element, key, BOOLEAN_VALUES);
// }
//
// public void validateBooleanValue(BundleManifestHeader header) {
// validateHeaderValue(header, BOOLEAN_VALUES, "ILLEGAL_VALUE");
// }
//
// public void validateDirectiveValue(BundleManifestHeader header, ManifestElement element,
// String key, String[] allowedValues) {
// String value = element.getDirective(key);
// if (value == null) {
// return;
// }
// for (int i = 0; i < allowedValues.length; i++) {
// if (allowedValues[i].equals(value)) {
// return;
// }
// }
// errorIllegalDirectiveValue(header, element, key, value);
// }
//
// public void validateHeaderValue(BundleManifestHeader header, String[] allowedValues, String errorId) {
// BundleManifestHeaderElement[] elements = header.getBundleManifestHeaderElements();
// if (elements != null && elements.length > 0) {
// for (int i = 0; i < allowedValues.length; i++) {
// if (allowedValues[i].equals(elements[0].getManifestElement().getValue())) {
// return;
// }
// }
// errorIllegalValue(header, elements[0].getManifestElement(), elements[0]
// .getManifestElement().getValue(), errorId);
// }
// }
//
// public BundleManifestHeader validateRequiredHeader(String name, String missingRequiredHeaderErrorId) {
// BundleManifestHeader header = getBundleManifest().getHeader(name);
// if (header == null) {
// String msg = NLS.bind(BundleManifestCoreMessages.BundleErrorReporter_headerMissing,
// name);
// error(getRootElement(), missingRequiredHeaderErrorId, msg, new ValidationProblemAttribute(
// IMarker.LINE_NUMBER, new Integer(1)));
// }
// return header;
// }
//
// public void warning(String problemId, String msg, int line, ValidationProblemAttribute... attributes) {
// warning(getRootElement(), problemId, msg, mergeAttributes(line, attributes));
// }
//
// private ValidationProblemAttribute[] mergeAttributes(int line, ValidationProblemAttribute... attributes) {
// List<ValidationProblemAttribute> attributeList = new ArrayList<ValidationProblemAttribute>();
// if (attributes != null && attributes.length > 0) {
// attributeList.addAll(Arrays.asList(attributes));
// }
// attributeList.add(new ValidationProblemAttribute(IMarker.LINE_NUMBER, line));
// return attributeList.toArray(new ValidationProblemAttribute[attributeList.size()]);
// }
//
// private IDocument getDocument() {
// return getBundleManifest().getDocument();
// }
//
// }