###############################################################################
# Copyright (c) 2000, 2009 IBM Corporation and others.
#
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################

Expression_attribute_missing=Mandatory attribute {0} is missing
Expression_attribute_invalid_value=Attribute value {0} is not valid

Expression_variable_not_a_collection= The default variable is not of type java.util.Collection. Failed expression: \n{0}
Expression_variable_not_a_list= The default variable is not of type java.util.List. Failed expression: \n{0}

Expression_variable_not_iterable= The default variable is not iterable. Failed expression: \n{0}
Expression_variable_not_countable= The default variable is not countable. Failed expression: \n{0}

Expression_unknown_element= Unknown expression element {0}
Missing_Expression= Unable to locate expression definition {0}

Expression_string_not_correctly_escaped= The String {0} is not correctly escaped. Wrong number of apostrophe characters.
Expression_string_not_terminated= The String {0} is not correctly terminated with an apostrophe character.

TypeExtender_unknownMethod= No property tester contributes a property {0} to type {1}
TypeExtender_incorrectType=The implementation class is not a sub type of org.eclipse.core.expressions.PropertyTester

TestExpression_no_name_space= The property attribute of the test expression must be qualified by a name space.

WithExpression_variable_not_defined= The variable {0} is not defined

ResolveExpression_variable_not_defined= The variable {0} is not defined

PropertyTesterDescriptor_no_namespace= The mandatory attribute namespace is missing. Tester has been disabled.
PropertyTesterDescritpri_no_properties= The mandatory attribute properties is missing. Tester has been disabled.

ElementHandler_unsupported_element=The element handler does not support DOM element conversion.
