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

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.
