/*******************************************************************************
 * Copyright (c) 2000, 2019 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 - Initial API and implementation
 * Jesper Steen Moller - Enhancement 254677 - filter getters/setters
 *******************************************************************************/
package org.eclipse.jdt.internal.debug.ui;

import org.eclipse.osgi.util.NLS;

public class DebugUIMessages extends NLS {
	private static final String BUNDLE_NAME = "org.eclipse.jdt.internal.debug.ui.DebugUIMessages";//$NON-NLS-1$

	public static String ExceptionHandler_seeErrorLogMessage;

	public static String HeapWalkingPreferencePage_0;

	public static String HeapWalkingPreferencePage_1;

	public static String HeapWalkingPreferencePage_2;

	public static String HeapWalkingPreferencePage_3;

	public static String HeapWalkingPreferencePage_4;

	public static String HeapWalkingPreferencePage_5;

	public static String HeapWalkingPreferencePage_6;

	public static String ImageDescriptorRegistry_Allocating_image_for_wrong_display_1;

	public static String JavaDebugPreferencePage_21;

	public static String JavaDebugPreferencePage_22;

	public static String JavaDebugPreferencePage_23;

	public static String JavaDebugPreferencePage_24;

	public static String JavaDebugPreferencePage_25;

	public static String JavaDebugPreferencePage_26;

	public static String JavaDebugPreferencePage_27;

	public static String JavaDebugPreferencePage_SuspendOnRecurrencePolicy;

	public static String JavaDebugPreferencePage_SuspendOnRecurrencePolicy_Always;

	public static String JavaDebugPreferencePage_SuspendOnRecurrencePolicy_Unconfigured;

	public static String JavaDebugPreferencePage_SuspendOnRecurrencePolicy_OnlyOnce;

	public static String JavaDebugPreferencePage_description;
	public static String JavaDebugPreferencePage_Enable_hot_code_replace_1;
	public static String JavaDebugPreferencePage_Alert_me_when_hot_code_replace_fails_1;
	public static String JavaDebugPreferencePage_Alert_me_when_hot_code_replace_is_not_supported_1;
	public static String JavaDebugPreferencePage_Alert_me_when_obsolete_methods_remain_1;
	public static String JavaDebugPreferencePage_Display__hexadecimal_values__byte__short__char__int__long__3;
	public static String JavaDebugPreferencePage_Display__unsigned_values__byte__5;
	public static String JavaDebugPreferencePage_Display_ASCII__character_values__byte__short__int__long__4;
	public static String JavaDebugPreferencePage_Hot_Code_Replace_2;
	public static String JavaDebugPreferencePage_Suspend__execution_on_uncaught_exceptions_1;
	public static String JavaDebugPreferencePage_Suspend_Execution_1;
	public static String JavaDebugPreferencePage_Suspend_execution_on_co_mpilation_errors_1;
	public static String JavaDebugPreferencePage_Value_must_be_a_valid_integer_greater_than__0__ms_1;
	public static String JavaDebugPreferencePage_Replace_classfiles_containing_compilation_errors_1;
	public static String JavaDebugPreferencePage_ShowStepResult_1;
	public static String JavaDebugPreferencePage_ShowStepTimeout_ms_1;
	public static String JavaDebugPreferencePage_Communication_1;
	public static String JavaDebugPreferencePage_Debugger__timeout__2;
	public static String JavaDebugPreferencePage__Launch_timeout__ms___1;
	public static String JavaDebugPreferencePage_14;
	public static String JavaDebugPreferencePage_19;
	public static String JavaDebugPreferencePage_0;
	public static String JavaDebugPreferencePage_20;

	public static String JavaDebugPreferencePage_advancedSourcelookup;
	public static String JavaDebugPreferencePage_listenToThreadNameChanges;

	public static String JavaDebugPreferencePage_only_include_exported_entries;
	public static String JavaDebugPreferencePage_filterUnrelatedBreakpoints;
	public static String JavaDebugPreferencePage_promptWhenDeletingCondidtionalBreakpoint;


	public static String JavaDetailFormattersManager_6;

	public static String JavaDetailFormattersManager_7;

	public static String JavaHotCodeReplaceListener_0;

	public static String JavaStepFilterPreferencePage_0;

	public static String JavaStepFilterPreferencePage_Filter_co_nstructors_19;
	public static String JavaStepFilterPreferencePage_Filter_s_ynthetic_methods__requires_VM_support__17;
	public static String JavaStepFilterPreferencePage_Filter_static__initializers_18;
	public static String JavaStepFilterPreferencePage_Filter_getters;
	public static String JavaStepFilterPreferencePage_Filter_setters;
	public static String JavaStepFilterPreferencePage_title;
	public static String JavaStepFilterPreferencePage_description;
	public static String JavaStepFilterPreferencePage_Remove_all_selected_step_filters_16;
	public static String JavaStepFilterPreferencePage_Select_a_package_to_filter_when_stepping_27;
	public static String JavaStepFilterPreferencePage_Select_a_type_to_filter_when_stepping_23;
	public static String JavaStepFilterPreferencePage__Remove_15;
	public static String JavaStepFilterPreferencePage_Add__Filter_9;
	public static String JavaStepFilterPreferencePage_Add__Package____13;
	public static String JavaStepFilterPreferencePage_Add__Type____11;
	public static String JavaStepFilterPreferencePage_Add_package_to_step_filters_24;
	public static String JavaStepFilterPreferencePage_Add_type_to_step_filters_20;
	public static String JavaStepFilterPreferencePage_Choose_a_Java_type_and_add_it_to_step_filters_12;
	public static String JavaStepFilterPreferencePage_Choose_a_package_and_add_it_to_step_filters_14;
	public static String JavaStepFilterPreferencePage_Could_not_open_package_selection_dialog_for_step_filters_25;
	public static String JavaStepFilterPreferencePage_Could_not_open_type_selection_dialog_for_step_filters_21;
	public static String JavaStepFilterPreferencePage_Defined_step_fi_lters__8;
	public static String JavaStepFilterPreferencePage_Key_in_the_name_of_a_new_step_filter_10;
	public static String JavaStepFilterPreferencePage__Select_All_1;
	public static String JavaStepFilterPreferencePage_Selects_all_step_filters_2;
	public static String JavaStepFilterPreferencePage_Deselect_All_3;
	public static String JavaStepFilterPreferencePage_Deselects_all_step_filters_4;

	public static String JDIDebugUIPlugin__0__contains_obsolete_methods_1;
	public static String JDIDebugUIPlugin__0__was_unable_to_replace_the_running_code_with_the_code_in_the_workspace__2;

    public static String JDIDebugUIPlugin_0;
	public static String JDIDebugUIPlugin_1;
	public static String JDIDebugUIPlugin_2;
	public static String JDIDebugUIPlugin_Error_1;
	public static String JDIDebugUIPlugin_Hot_code_replace_failed_1;
	public static String JDIDebugUIPlugin_Obsolete_methods_remain_1;
	public static String JDIDebugUIPlugin_Stepping_may_be_hazardous_1;
	public static String JDIDebugUIPlugin_The_target_VM_does_not_support_hot_code_replace_1;
	public static String JDIDebugUIPlugin_3;
    public static String JDIDebugUIPlugin_4;

	public static String JDIModelPresentation__No_explicit_return_value__30;
	public static String JDIModelPresentation__conditional__2;
	public static String JDIModelPresentation___may_be_out_of_synch__2;
	public static String JDIModelPresentation___out_of_synch__1;
	public static String JDIModelPresentation___scoped__1;
	public static String JDIModelPresentation__1____0__63;
	public static String JDIModelPresentation__disconnected__4;
	public static String JDIModelPresentation__not_responding__6;
	public static String JDIModelPresentation__garbage_collected_object__6;
	public static String JDIModelPresentation__obsolete_method_in__1;
	public static String JDIModelPresentation__terminated__2;

	public static String JDIModelPresentation_117;

	public static String JDIModelPresentation_118;
	public static String JDIModelPresentation_access_71;
	public static String JDIModelPresentation_access_and_modification_70;
	public static String JDIModelPresentation_caught_61;
	public static String JDIModelPresentation_caught_and_uncaught_60;
	public static String JDIModelPresentation_Compilation_error_1;
	public static String JDIModelPresentation_entry_and_exit;
	public static String JDIModelPresentation_entry;
	public static String JDIModelPresentation_exit;
	public static String JDIModelPresentation_hit_count__67;
	public static String JDIModelPresentation_line__65;
	public static String JDIModelPresentation_line__76;
	public static String JDIModelPresentation_local_variables_unavailable;
	public static String JDIModelPresentation_modification_72;
	public static String JDIModelPresentation_native_method;
	public static String JDIModelPresentation_not_available;
	public static String JDIModelPresentation_Suspend_VM;
	public static String JDIModelPresentation_target_suspended;
	public static String JDIModelPresentation_thread_filtered;
	public static String JDIModelPresentation_uncaught_62;

	// thread label keys are built programmatically

	public static String thread_terminated;
	public static String thread_evaluating;
	public static String thread_running;
	public static String thread_stepping;
	public static String thread_suspended;
	public static String thread_suspended_problem;
	public static String thread_suspended_fieldaccess;
	public static String thread_suspended_linebreakpoint;
	public static String thread_suspended_methodentry;
	public static String thread_suspended_exception;
	public static String thread_suspended_exception_uncaught;
	public static String thread_suspended_methodexit;
	public static String thread_suspended_fieldmodification;
	public static String thread_suspended_runtoline;
	public static String thread_suspended_classprepare;

	public static String thread_daemon_terminated;
	public static String thread_daemon_evaluating;
	public static String thread_daemon_running;
	public static String thread_daemon_stepping;
	public static String thread_daemon_suspended;
	public static String thread_daemon_suspended_problem;
	public static String thread_daemon_suspended_fieldaccess;
	public static String thread_daemon_suspended_linebreakpoint;
	public static String thread_daemon_suspended_methodentry;
	public static String thread_daemon_suspended_exception;
	public static String thread_daemon_suspended_exception_uncaught;
	public static String thread_daemon_suspended_methodexit;
	public static String thread_daemon_suspended_fieldmodification;
	public static String thread_daemon_suspended_runtoline;
	public static String thread_daemon_suspended_classprepare;

	public static String thread_system_terminated;
	public static String thread_system_evaluating;
	public static String thread_system_running;
	public static String thread_system_stepping;
	public static String thread_system_suspended;
	public static String thread_system_suspended_problem;
	public static String thread_system_suspended_fieldaccess;
	public static String thread_system_suspended_linebreakpoint;
	public static String thread_system_suspended_methodentry;
	public static String thread_system_suspended_exception;
	public static String thread_system_suspended_exception_uncaught;
	public static String thread_system_suspended_methodexit;
	public static String thread_system_suspended_fieldmodification;
	public static String thread_system_suspended_runtoline;
	public static String thread_system_suspended_classprepare;

	public static String thread_daemon_system_terminated;
	public static String thread_daemon_system_evaluating;
	public static String thread_daemon_system_running;
	public static String thread_daemon_system_stepping;
	public static String thread_daemon_system_suspended;
	public static String thread_daemon_system_suspended_problem;
	public static String thread_daemon_system_suspended_fieldaccess;
	public static String thread_daemon_system_suspended_linebreakpoint;
	public static String thread_daemon_system_suspended_methodentry;
	public static String thread_daemon_system_suspended_exception;
	public static String thread_daemon_system_suspended_exception_uncaught;
	public static String thread_daemon_system_suspended_methodexit;
	public static String thread_daemon_system_suspended_fieldmodification;
	public static String thread_daemon_system_suspended_runtoline;
	public static String thread_daemon_system_suspended_classprepare;
	public static String SuspendTimeoutHandler_suspend;
	public static String SuspendTimeoutHandler_timeout_occurred;
	public static String JDIDebugUIPlugin_Searching_1;
	public static String JDIModelPresentation_unknown_name__1;
	public static String JDIModelPresentation_unknown_type__2;
	public static String JDIModelPresentation_unknown_value__3;
	public static String JDIModelPresentation_unknown_declaring_type__4;
	public static String JDIModelPresentation_unknown_receiving_type__5;
	public static String JDIModelPresentation_unknown_method_name__6;
	public static String JDIModelPresentation__unknown_arguements___7;
	public static String JDIModelPresentation__unknown_line_number__8;
	public static String JDIModelPresentation_instance_1;
	public static String NoLineNumberAttributesStatusHandler_Java_Breakpoint_1;
	public static String NoLineNumberAttributesStatusHandler_2;

	public static String JavaDetailFormattersPreferencePage_Add__Formatter____5;
	public static String JavaDetailFormattersPreferencePage_Allow_you_to_create_a_new_detail_formatter_6;
	public static String JavaDetailFormattersPreferencePage__Remove_7;
	public static String JavaDetailFormattersPreferencePage_0;
	public static String JavaDetailFormattersPreferencePage_1;
	public static String JavaDetailFormattersPreferencePage_2;
	public static String JavaDetailFormattersPreferencePage_3;
	public static String JavaDetailFormattersPreferencePage_4;
	public static String JavaDetailFormattersPreferencePage_Remove_all_selected_detail_formatters_8;
	public static String JavaDetailFormattersPreferencePage__Edit____9;
	public static String JavaDetailFormattersPreferencePage_Edit_the_selected_detail_formatter_10;
	public static String JavaDetailFormattersPreferencePage_Override_default___toString_____for_Variables_and_Expressions_view_details__1;
	public static String JavaDetailFormattersPreferencePage__Types_with_detail_formatters__2;
	public static String JavaDetailFormattersPreferencePage_Detail_formatter_code_snippet_defined_for_selected_type__3;

	public static String DetailFormatterDialog_Qualified_type__name__2;
	public static String DetailFormatterDialog_Qualified_type_name_must_not_be_empty__3;
	public static String DetailFormatterDialog_Select__type_4;
	public static String DetailFormatterDialog_Select_type_6;
	public static String DetailFormatterDialog_Could_not_open_type_selection_dialog_for_detail_formatters_7;
	public static String DetailFormatterDialog_Select_type_8;
	public static String DetailFormatterDialog_Select_type_9;
	public static String DetailFormatterDialog_Select_type_10;
	public static String DetailFormatterDialog_Select_a_type_to_format_when_displaying_its_detail_9;
	public static String DetailFormatterDialog_Edit_Detail_Formatter_1;
	public static String DetailFormatterDialog_Add_Detail_Formatter_2;
	public static String DetailFormatterDialog_Associated_code_must_not_be_empty_3;
	public static String DetailFormatterDialog_Detail_formatter__code_snippet__1;
	public static String DetailFormatterDialog_17;

	public static String No_type_with_the_given_name_found_in_the_workspace__1;
	public static String JavaDetailFormattersManager_Detail_formatter_error___1;
	public static String JavaDetailFormattersManager_An_exception_occurred___0__3;
	public static String DetailFormatterDialog__Enable_1;
	public static String DetailFormatterDialog_A_detail_formatter_is_already_defined_for_this_type_2;

	public static String JavaUISourceLocator_Select_Source_1;
	public static String JavaUISourceLocator__Select_the_source_that_corresponds_to__0__2;
	public static String JavaUISourceLocator__Matching_files__3;
	public static String JavaUISourceLocator__Location__4;

	public static String ConditionalBreakpointErrorDialog_Conditional_Breakpoint_Error_1;
	public static String ConditionalBreakpointErrorDialog__Edit_Condition_2;

	public static String JavaDebugOptionsManager_Conditional_breakpoint_encountered_runtime_exception__1;
	public static String JavaDebugOptionsManager_Conditional_breakpoint_has_compilation_error_s___2;
	public static String JavaDetailFormattersManager_null;
	public static String JavaDetailFormattersManager_no_suspended_threads;
	public static String JavaDetailFormattersManager__unknown_;
	public static String JavaLogicalStructuresPreferencePage_0;
	public static String JavaLogicalStructuresPreferencePage_1;
	public static String JavaLogicalStructuresPreferencePage_10;
	public static String JavaLogicalStructuresPreferencePage_11;
	public static String JavaLogicalStructuresPreferencePage_12;
	public static String JavaLogicalStructuresPreferencePage_2;
	public static String JavaLogicalStructuresPreferencePage_3;
	public static String JavaLogicalStructuresPreferencePage_4;
	public static String JavaLogicalStructuresPreferencePage_5;
	public static String JavaLogicalStructuresPreferencePage_6;
	public static String JavaLogicalStructuresPreferencePage_7;
	public static String JavaLogicalStructuresPreferencePage_8;
	public static String JavaLogicalStructuresPreferencePage_9;
	public static String JDIModelPresentation_no_suspended_threads;

	public static String JavaDebugOptionsManager_Breakpoint___1;
	public static String JavaDebugOptionsManager_Method_breakpoint___2;
	public static String JavaDebugOptionsManager_Watchpoint___3;
	public static String JavaDebugOptionsManager_0;

	public static String JavaDebugOptionsManager_exceptionRecurrence_dialogTitle;
	public static String JavaDebugOptionsManager_exceptionRecurrence_dialogMessage;
	public static String JavaDebugOptionsManager_skip_buttonLabel;
	public static String JavaDebugOptionsManager_suspend_buttonLabel;
	public static String JavaDebugOptionsManager_exceptionRecurrence_remember_decision;

	public static String JavaDebugOptionsManager_Line_breakpoint___4;

	public static String JavaBreakpointWorkbenchAdapterFactory_1;

	public static String HotCodeReplaceErrorDialog_0;
	public static String HotCodeReplaceErrorDialog_1;
	public static String HotCodeReplaceErrorDialog_2;
	public static String HotCodeReplaceErrorDialog_3;
	public static String HotCodeReplaceErrorDialog_5;
	public static String HotCodeReplaceErrorDialog_6;
	public static String HotCodeReplaceErrorDialog_7;
	public static String HotCodeReplaceErrorDialog_8;

	public static String CreateStepFilterDialog_2;
	public static String CreateStepFilterDialog_3;
	public static String CreateStepFilterDialog_4;
	public static String CreateStepFilterDialog_5;
	public static String TypeNameResolver_0;
	public static String JDIModelPresentation_116;
	public static String JDIModelPresentation_0;
	public static String JDIModelPresentation_1;
	public static String JDIModelPresentation_2;
	public static String JDIModelPresentation_3;
	public static String JDIModelPresentation_4;
	public static String JDIModelPresentation_5;
	public static String JDIModelPresentation_6;
	public static String NoLineNumberAttributesStatusHandler_3;
	public static String EditLogicalStructureDialog_0;
	public static String EditLogicalStructureDialog_1;
	public static String EditLogicalStructureDialog_2;
	public static String EditLogicalStructureDialog_3;
	public static String EditLogicalStructureDialog_4;
	public static String EditLogicalStructureDialog_5;
	public static String EditLogicalStructureDialog_7;
	public static String EditLogicalStructureDialog_8;
	public static String EditLogicalStructureDialog_9;
	public static String EditLogicalStructureDialog_10;
	public static String EditLogicalStructureDialog_11;
	public static String EditLogicalStructureDialog_12;
	public static String EditLogicalStructureDialog_13;
	public static String EditLogicalStructureDialog_14;
	public static String EditLogicalStructureDialog_15;
	public static String EditLogicalStructureDialog_16;
	public static String EditLogicalStructureDialog_17;
	public static String EditLogicalStructureDialog_18;
	public static String EditLogicalStructureDialog_19;
	public static String EditLogicalStructureDialog_20;
	public static String EditLogicalStructureDialog_21;
	public static String EditLogicalStructureDialog_22;
	public static String EditLogicalStructureDialog_23;
	public static String EditLogicalStructureDialog_24;
	public static String EditLogicalStructureDialog_25;
	public static String EditLogicalStructureDialog_26;
	public static String EditLogicalStructureDialog_27;
	public static String EditLogicalStructureDialog_28;
	public static String EditLogicalStructureDialog_29;
	public static String EditLogicalStructureDialog_30;
	public static String EditLogicalStructureDialog_31;

	static {
		// load message values from bundle file
		NLS.initializeMessages(BUNDLE_NAME, DebugUIMessages.class);
	}


	public static String EditLogicalStructureDialog_32;

	public static String EditLogicalStructureDialog_33;


	public static String JavaPrimitivesPreferencePage_0;

	public static String JavaPrimitivesPreferencePage_1;

	public static String JavaStepFilterPreferencePage__Use_step_filters;

	public static String JavaVariableLabelProvider_0;

	public static String JavaVariableContentAssistDescription_Keystroke;
}
