###############################################################################
# Copyright (c) 2000, 2007 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
###############################################################################

LocalEvaluationEngine_Evaluation_in_context_of_inner_type_not_supported__19=Evaluation in context of inner type not supported.
LocalEvaluationEngine_Evaluation_failed___unable_to_determine_receiving_type_context__18=Evaluation failed - unable to determine receiving type context.
LocalEvaluationEngine_Evaluation_failed___internal_error_retreiving_result__17=Evaluation failed - internal error retrieving result.
LocalEvaluationEngine_Evaluation_failed___unable_to_instantiate_code_snippet_class__11=Evaluation failed - unable to instantiate code snippet class.
LocalEvaluationEngine__0__occurred_deploying_class_file_for_evaluation_9={0} occurred deploying class file for evaluation
LocalEvaluationEngine_Evaluation_failed___evaluation_thread_must_be_suspended__8=Evaluation failed - evaluation thread must be suspended.
LocalEvaluationEngine_Evaluation_failed___evaluation_context_has_been_disposed__7=Evaluation failed - evaluation context has been disposed.
LocalEvaluationEngine_Evaluation_failed___unable_to_initialize_local_variables__6=Evaluation failed - unable to initialize local variables.
LocalEvaluationEngine_Evaluation_failed___unable_to_initialize___this___context__5=Evaluation failed - unable to initialize \'this\' context.
LocalEvaluationEngine_Evaluation_failed___unable_to_initialize_local_variables__4=Evaluation failed - unable to initialize local variables.
