/*******************************************************************************
 * Copyright (c) 2000, 2016 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 - 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_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_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_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_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_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_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_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_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;
}
