/*******************************************************************************
 * Copyright (c) 2000, 2006 IBM 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:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.core.internal.expressions;

import org.eclipse.osgi.util.NLS;

public final class ExpressionMessages extends NLS {

	private static final String BUNDLE_NAME= "org.eclipse.core.internal.expressions.ExpressionMessages";//$NON-NLS-1$

	private ExpressionMessages() {
		// Do not instantiate
	}

	public static String Expression_attribute_missing;
	public static String Expression_attribute_invalid_value;
	public static String Expression_variable_not_a_collection;
	public static String Expression_variable_not_a_list;
	
	public static String Expression_variable_not_iterable;
	public static String Expression_variable_not_countable;
	
	public static String Expression_unknown_element;
	public static String Missing_Expression;
	public static String Expression_string_not_correctly_escaped;
	public static String Expression_string_not_terminated;
	
	public static String TypeExtender_unknownMethod;
	public static String TypeExtender_incorrectType;
	
	public static String TestExpression_no_name_space;
	
	public static String WithExpression_variable_not_defined;
	
	public static String ResolveExpression_variable_not_defined;
	
	public static String PropertyTesterDescriptor_no_namespace;
	public static String PropertyTesterDescritpri_no_properties;

	public static String PropertyTester_error_activating_plugin;

	public static String ElementHandler_unsupported_element;

	static {
		NLS.initializeMessages(BUNDLE_NAME, ExpressionMessages.class);
	}
}
