/*******************************************************************************
 * 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 Corporation - initial API and implementation
 *     John Kaplan, johnkaplantech@gmail.com - 108071 [code templates] template for body of newly created class
 *     Sebastian Davids, sdavids@gmx.de - 187316 [preferences] Mark Occurences Pref Page; Link to
 *     Benjamin Muskalla <b.muskalla@gmx.net> - [preferences] Add preference for new compiler warning: MissingSynchronizedModifierInInheritedMethod - https://bugs.eclipse.org/bugs/show_bug.cgi?id=245240
 *     Guven Demir <guven.internet+eclipse@gmail.com> - [package explorer] Alternative package name shortening: abbreviation - https://bugs.eclipse.org/bugs/show_bug.cgi?id=299514
 *     Thomas Reinhardt <thomas@reinhardt.com> - [build path] user library dialog should allow to select JAR from workspace - http://bugs.eclipse.org/300542
 *     Stephan Herrmann <stephan@cs.tu-berlin.de> - Contributions for
 *     				[compiler][null] inheritance of null annotations as an option - https://bugs.eclipse.org/388281
 *     				Warning option for bug 410218 - https://bugs.eclipse.org/461999
 *     Gábor Kövesdán - Contribution for Bug 350000 - [content assist] Include non-prefix matches in auto-complete suggestions
 *     Jesper S Møller - Contributions for bug 529432 - Allow JDT UI to target Java 10
 *     Angelo Zerr <angelo.zerr@gmail.com> - [CodeMining] Provide Java References/Implementation CodeMinings - Bug 529127
 *******************************************************************************/
package org.eclipse.jdt.internal.ui.preferences;

import org.eclipse.osgi.util.NLS;


public final class PreferencesMessages extends NLS {

	private static final String BUNDLE_NAME= "org.eclipse.jdt.internal.ui.preferences.PreferencesMessages";//$NON-NLS-1$

	private PreferencesMessages() {
		// Do not instantiate
	}

	public static String BuildPathsPropertyPage_error_message;
	public static String BuildPathsPropertyPage_error_title;
	public static String BuildPathsPropertyPage_job_title;
	public static String BuildPathsPropertyPage_no_java_project_message;
	public static String BuildPathsPropertyPage_closed_project_message;
	public static String BuildPathsPropertyPage_unsavedchanges_title;
	public static String BuildPathsPropertyPage_unsavedchanges_message;
	public static String BuildPathsPropertyPage_unsavedchanges_button_save;
	public static String BuildPathsPropertyPage_unsavedchanges_button_discard;
	public static String BuildPathsPropertyPage_unsavedchanges_button_ignore;
	public static String ClasspathVariablesPreferencePage_title;
	public static String ClasspathVariablesPreferencePage_description;
	public static String ClasspathVariablesPreferencePage_savechanges_title;
	public static String ClasspathVariablesPreferencePage_savechanges_message;
	public static String CleanUpPreferencePage_Description;
	public static String CleanUpPreferencePage_Title;
	public static String CodeAssistAdvancedConfigurationBlock_default_table_category_column_title;
	public static String CodeAssistAdvancedConfigurationBlock_default_table_description;
	public static String CodeAssistAdvancedConfigurationBlock_default_table_keybinding_column_title;
	public static String CodeAssistAdvancedConfigurationBlock_key_binding_hint;
	public static String CodeAssistAdvancedConfigurationBlock_page_description;
	public static String CodeAssistAdvancedConfigurationBlock_separate_table_category_column_title;
	public static String CodeAssistAdvancedConfigurationBlock_separate_table_description;
	public static String CodeAssistAdvancedConfigurationBlock_no_shortcut;
	public static String CodeAssistAdvancedConfigurationBlock_Up;
	public static String CodeAssistAdvancedConfigurationBlock_Down;
	public static String CodeAssistAdvancedConfigurationBlock_parameterNameFromAttachedJavadoc_timeout;
	public static String CodeAssistAdvancedConfigurationBlock_parameterNameFromAttachedJavadoc_timeout_emptyInput;
	public static String CodeAssistAdvancedConfigurationBlock_parameterNameFromAttachedJavadoc_timeout_invalidInput;
	public static String CodeAssistAdvancedConfigurationBlock_parameterNameFromAttachedJavadoc_timeout_invalidRange;
	public static String ImportOrganizePreferencePage_title;
	public static String ImportOrganizeConfigurationBlock_order_label;
	public static String ImportOrganizeConfigurationBlock_other_static;
	public static String ImportOrganizeConfigurationBlock_other_normal;
	public static String ImportOrganizeConfigurationBlock_order_add_button;
	public static String ImportOrganizeConfigurationBlock_order_edit_button;
	public static String ImportOrganizeConfigurationBlock_order_up_button;
	public static String ImportOrganizeConfigurationBlock_order_down_button;
	public static String ImportOrganizeConfigurationBlock_order_remove_button;
	public static String ImportOrganizeConfigurationBlock_order_add_static_button;
	public static String ImportOrganizeConfigurationBlock_order_load_button;
	public static String ImportOrganizeConfigurationBlock_order_save_button;
	public static String ImportOrganizeConfigurationBlock_ignoreLowerCase_label;
	public static String ImportOrganizeConfigurationBlock_threshold_label;
	public static String ImportOrganizeConfigurationBlock_error_invalidthreshold;
	public static String ImportOrganizeConfigurationBlock_loadDialog_title;
	public static String ImportOrganizeConfigurationBlock_loadDialog_error_title;
	public static String ImportOrganizeConfigurationBlock_loadDialog_error_message;
	public static String ImportOrganizeConfigurationBlock_saveDialog_title;
	public static String ImportOrganizeConfigurationBlock_saveDialog_error_title;
	public static String ImportOrganizeConfigurationBlock_staticthreshold_label;
	public static String ImportOrganizeConfigurationBlock_saveDialog_error_message;
	public static String ImportOrganizeInputDialog_title;
	public static String ImportOrganizeInputDialog_browse_packages_button;
	public static String ImportOrganizeInputDialog_browse_types_label;
	public static String ImportOrganizeInputDialog_title_static;
	public static String ImportOrganizeInputDialog_ChoosePackageDialog_title;
	public static String ImportOrganizeInputDialog_ChoosePackageDialog_description;
	public static String ImportOrganizeInputDialog_ChoosePackageDialog_empty;
	public static String ImportOrganizeInputDialog_ChooseTypeDialog_title;
	public static String ImportOrganizeInputDialog_ChooseTypeDialog_description;
	public static String ImportOrganizeInputDialog_ChooseTypeDialog_error_message;
	public static String ImportOrganizeInputDialog_error_invalidName;
	public static String ImportOrganizeInputDialog_error_entryExists;
	public static String ImportOrganizeInputDialog_name_group_label;
	public static String ImportOrganizeInputDialog_name_group_static_label;
	public static String JavaBasePreferencePage_rebuildingIndexJobName;
	public static String JavaBasePreferencePage_rebuildIndexButtonName;
	public static String JavaBasePreferencePage_description;
	public static String JavaBasePreferencePage_doubleclick_action;
	public static String JavaBasePreferencePage_doubleclick_gointo;
	public static String JavaBasePreferencePage_doubleclick_expand;
	public static String JavaBasePreferencePage_refactoring_lightweight;
	public static String JavaBasePreferencePage_refactoring_title;
	public static String JavaBasePreferencePage_refactoring_auto_save;
	public static String JavaBasePreferencePage_search;
	public static String JavaBasePreferencePage_search_small_menu;
	public static String JavaBuildConfigurationBlock_build_recreate_modified;
	public static String JavadocConfigurationBlock_error_archive_not_found_in_workspace;
	public static String JavadocConfigurationBlock_external_radio;
	public static String JavadocConfigurationBlock_workspace_archive_selection_dialog_description;
	public static String JavadocConfigurationBlock_workspace_archive_selection_dialog_title;
	public static String JavadocConfigurationBlock_workspace_radio;
	public static String JavadocConfigurationPropertyPage_invalid_container;
	public static String JavadocConfigurationPropertyPage_not_supported;
	public static String JavadocConfigurationPropertyPage_read_only;
	public static String JavaEditorPropertyPage_SaveActionLink_Text;
	public static String NativeLibrariesPropertyPage_invalid_container;
	public static String NativeLibrariesPropertyPage_not_supported;
	public static String NativeLibrariesPropertyPage_read_only;
	public static String NewJavaProjectPreferencePage_title;
	public static String NewJavaProjectPreferencePage_description;
	public static String NewJavaProjectPreferencePage_sourcefolder_label;
	public static String NewJavaProjectPreferencePage_sourcefolder_project;
	public static String NewJavaProjectPreferencePage_sourcefolder_folder;
	public static String NewJavaProjectPreferencePage_folders_src;
	public static String NewJavaProjectPreferencePage_folders_bin;
	public static String NewJavaProjectPreferencePage_jrelibrary_label;
	public static String NewJavaProjectPreferencePage_jre_variable_description;
	public static String NewJavaProjectPreferencePage_jre_container_description;
	public static String NewJavaProjectPreferencePage_folders_error_namesempty;
	public static String NewJavaProjectPreferencePage_folders_error_invalidsrcname;
	public static String NewJavaProjectPreferencePage_folders_error_invalidbinname;
	public static String NewJavaProjectPreferencePage_folders_error_invalidcp;
	public static String NewJavaProjectPreferencePage_error_decode;
	public static String JavaEditorPreferencePage_analyseAnnotationsWhileTyping;
	public static String JavaEditorPreferencePage_multiLineComment;
	public static String JavaEditorPreferencePage_singleLineComment;
	public static String JavaEditorPreferencePage_returnKeyword;
	public static String JavaEditorPreferencePage_keywords;
	public static String JavaEditorPreferencePage_varKeyword;
	public static String JavaEditorPreferencePage_strings;
	public static String JavaEditorPreferencePage_others;
	public static String JavaEditorPreferencePage_operators;
	public static String JavaEditorPreferencePage_bracketHighlighting;
	public static String JavaEditorPreferencePage_brackets;
	public static String JavaEditorPreferencePage_javaCommentTaskTags;
	public static String JavaEditorPreferencePage_javaDocKeywords;
	public static String JavaEditorPreferencePage_javaDocHtmlTags;
	public static String JavaEditorPreferencePage_javaDocLinks;
	public static String JavaEditorPreferencePage_javaDocOthers;
	public static String JavaEditorPreferencePage_systemDefault;
	public static String JavaEditorPreferencePage_color;
	public static String JavaEditorPreferencePage_bold;
	public static String JavaEditorPreferencePage_italic;
	public static String JavaEditorPreferencePage_strikethrough;
	public static String JavaEditorPreferencePage_underline;
	public static String JavaEditorPreferencePage_enable;
	public static String JavaEditorPreferencePage_preview;
	public static String JavaEditorPreferencePage_highlightMatchingBracketAndCaretLocation;
	public static String JavaEditorPreferencePage_highlightEnclosingBrackets;
	public static String JavaEditorPreferencePage_highlightMatchingBracket;
	public static String JavaEditorPreferencePage_insertSingleProposalsAutomatically;
	public static String JavaEditorPreferencePage_disableCompletionProposalTriggerChars;
	public static String JavaEditorPreferencePage_showOnlyProposalsVisibleInTheInvocationContext;
	public static String JavaEditorPreferencePage_presentProposalsInAlphabeticalOrder;
	public static String JavaEditorPreferencePage_coloring_element;
	public static String JavaEditorPreferencePage_enableAutoActivation;
	public static String JavaEditorPreferencePage_automaticallyAddImportInsteadOfQualifiedName;
	public static String JavaEditorPreferencePage_suggestStaticImports;
	public static String JavaEditorPreferencePage_completionInserts;
	public static String JavaEditorPreferencePage_completionOverwrites;
	public static String JavaEditorPreferencePage_completionToggleHint;
	public static String JavaEditorPreferencePage_fillArgumentsOnMethodCompletion;
	public static String JavaEditorPreferencePage_fillParameterNamesOnMethodCompletion;
	public static String JavaEditorPreferencePage_fillBestGuessedArgumentsOnMethodCompletion;
	public static String JavaEditorPreferencePage_autoActivationDelay;
	public static String JavaEditorPreferencePage_autoActivationTriggersForJava;
	public static String JavaEditorPreferencePage_autoActivationTriggersForJavaDoc;
	public static String JavaEditorPreferencePage_completePrefixes;
	public static String JavaEditorPreferencePage_backgroundForMethodParameters;
	public static String JavaEditorPreferencePage_foregroundForMethodParameters;
	public static String JavaEditorPreferencePage_backgroundForCompletionReplacement;
	public static String JavaEditorPreferencePage_foregroundForCompletionReplacement;
	public static String JavaEditorPreferencePage_sourceHoverBackgroundColor;
	public static String JavaEditorPreferencePage_general;
	public static String JavaEditorPreferencePage_colors;
	public static String JavaEditorPreferencePage_empty_input;
	public static String JavaEditorPreferencePage_invalid_input;
	public static String JavaEditorPreferencePage_matchingBracketsHighlightColor2;
	public static String JavaEditorPreferencePage_appearanceOptions;
	public static String JavaEditorPreferencePage_typing_tabTitle;
	public static String JavaEditorPreferencePage_closeStrings;
	public static String JavaEditorPreferencePage_closeBrackets;
	public static String JavaEditorPreferencePage_closeBraces;
	public static String JavaEditorPreferencePage_closeJavaDocs;
	public static String JavaEditorPreferencePage_wrapStrings;
	public static String JavaEditorPreferencePage_escapeStrings;
	public static String JavaEditorPreferencePage_escapeStringsNonAscii;
	public static String JavaEditorPreferencePage_addJavaDocTags;
	public static String JavaEditorPreferencePage_smartPaste;
	public static String JavaEditorPreferencePage_link;
	public static String JavaEditorPreferencePage_importsOnPaste;
	public static String JavaEditorPreferencePage_subWordNavigation;
	public static String JavaEditorPreferencePage_typing_smartSemicolon;
	public static String JavaEditorPreferencePage_typing_smartOpeningBrace;
	public static String JavaEditorPreferencePage_typing_smartTab;
	public static String JavaEditorPreferencePage_hoverTab_title;
	public static String JavaEditorPreferencePage_smartInsertMode_message;
	public static String JavaEditorPreferencePage_smartAutoIndentAfterNewLine;
	public static String JavaEditorColoringConfigurationBlock_link;
	public static String JavaBasePreferencePage_openTypeHierarchy;
	public static String JavaBasePreferencePage_inView;
	public static String JavaBasePreferencePage_inPerspective;
	public static String JavaEditorPreferencePage_quickassist_lightbulb;
	public static String JavaEditorPreferencePage_showJavaElementOnly;
	public static String JavaEditorHoverConfigurationBlock_annotationRollover;
	public static String JavaEditorHoverConfigurationBlock_hoverPreferences;
	public static String JavaEditorHoverConfigurationBlock_keyModifier;
	public static String JavaEditorHoverConfigurationBlock_description;
	public static String JavaEditorHoverConfigurationBlock_modifierIsNotValid;
	public static String JavaEditorHoverConfigurationBlock_modifierIsNotValidForHover;
	public static String JavaEditorHoverConfigurationBlock_duplicateModifier;
	public static String JavaEditorHoverConfigurationBlock_nameColumnTitle;
	public static String JavaEditorHoverConfigurationBlock_modifierColumnTitle;
	public static String JavaEditorHoverConfigurationBlock_delimiter;
	public static String JavaEditorHoverConfigurationBlock_insertDelimiterAndModifierAndDelimiter;
	public static String JavaEditorHoverConfigurationBlock_insertModifierAndDelimiter;
	public static String JavaEditorHoverConfigurationBlock_insertDelimiterAndModifier;
	public static String MarkOccurrencesConfigurationBlock_title;
	public static String MarkOccurrencesConfigurationBlock_link;
	public static String MarkOccurrencesConfigurationBlock_markOccurrences;
	public static String MarkOccurrencesConfigurationBlock_markTypeOccurrences;
	public static String MarkOccurrencesConfigurationBlock_markMethodOccurrences;
	public static String MarkOccurrencesConfigurationBlock_markConstantOccurrences;
	public static String MarkOccurrencesConfigurationBlock_markFieldOccurrences;
	public static String MarkOccurrencesConfigurationBlock_markLocalVariableOccurrences;
	public static String MarkOccurrencesConfigurationBlock_markExceptionOccurrences;
	public static String MarkOccurrencesConfigurationBlock_markMethodExitPoints;
	public static String MarkOccurrencesConfigurationBlock_markImplementors;
	public static String MarkOccurrencesConfigurationBlock_markBreakContinueTargets;
	public static String MarkOccurrencesConfigurationBlock_stickyOccurrences;
	public static String JavadocConfigurationPropertyPage_IsPackageFragmentRoot_description;
	public static String JavadocConfigurationPropertyPage_IsIncorrectElement_description;
	public static String JavadocConfigurationPropertyPage_IsJavaProject_description;
	public static String JavadocConfigurationPropertyPage_location_path;
	public static String JavadocConfigurationPropertyPage_locationPath_none;
	public static String JavadocConfigurationBlock_browse_folder_button;
	public static String JavadocConfigurationBlock_error_notafolder;
	public static String JavadocConfigurationBlock_javadocFolderDialog_label;
	public static String JavadocConfigurationBlock_javadocFolderDialog_message;
	public static String JavadocConfigurationBlock_MalformedURL_error;
	public static String JavadocConfigurationBlock_validate_button;
	public static String JavadocConfigurationBlock_InvalidLocation_message;
	public static String JavadocConfigurationBlock_ValidPackageListJavadocLocation_message;
	public static String JavadocConfigurationBlock_ValidElementListJavadocLocation_message;
	public static String JavadocConfigurationBlock_OK_label;
	public static String JavadocConfigurationBlock_Open_label;
	public static String JavadocConfigurationBlock_UnableToValidateLocation_message;
	public static String JavadocConfigurationBlock_MessageDialog_title;
	public static String JavadocConfigurationBlock_location_type_path_label;
	public static String JavadocConfigurationBlock_location_type_jar_label;
	public static String JavadocConfigurationBlock_location_path_label;
	public static String JavadocConfigurationBlock_location_jar_label;
	public static String JavadocConfigurationBlock_jar_path_label;
	public static String JavadocConfigurationBlock_zipImportSource_title;
	public static String JavadocConfigurationBlock_location_in_jarorzip_message;
	public static String JavadocConfigurationBlock_browse_jarorzip_path_title;
	public static String JavadocConfigurationBlock_error_notafile;
	public static String JavadocConfigurationBlock_error_invalidarchivepath;
	public static String JavadocConfigurationBlock_error_archivepathnotabsolute;
	public static String JavadocConfigurationBlock_error_dialog_title;
	public static String JavadocConfigurationBlock_browse_archive_button;
	public static String JavadocConfigurationBlock_browse_archive_path_button;
	public static String ProblemSeveritiesConfigurationBlock_adapt_null_pointer_access_settings_dialog_message;
	public static String ProblemSeveritiesConfigurationBlock_adapt_null_pointer_access_settings_dialog_title;
	public static String ProblemSeveritiesConfigurationBlock_ignore_documented_unused_exceptions;
	public static String ProblemSeveritiesConfigurationBlock_ignore_documented_unused_parameters;
	public static String ProblemSeveritiesConfigurationBlock_pb_redundant_null_annotation;
	public static String ProblemSeveritiesConfigurationBlock_pb_nonnull_parameter_annotation_dropped;
	public static String ProblemSeveritiesConfigurationBlock_pb_redundant_null_check;
	public static String ProblemSeveritiesConfigurationBlock_pb_redundant_super_interface_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_redundant_type_arguments_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_resource_leak_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_resource_not_managed_via_twr_label;
	public static String ProblemSeveritiesConfigurationBlock_include_assert_in_null_analysis;
	public static String ProblemSeveritiesConfigurationBlock_treat_optional_as_fatal;
	public static String SourceAttachmentPropertyPage_error_title;
	public static String SourceAttachmentPropertyPage_error_message;
	public static String SourceAttachmentPropertyPage_invalid_container;
	public static String SourceAttachmentPropertyPage_location_path;
	public static String SourceAttachmentPropertyPage_locationPath_none;
	public static String SourceAttachmentPropertyPage_noarchive_message;
	public static String NativeLibrariesPropertyPage_invalidElementSelection_desription;
	public static String NativeLibrariesPropertyPage_errorAttaching_title;
	public static String NativeLibrariesPropertyPage_errorAttaching_message;
	public static String NativeLibrariesPropertyPage_location_path;
	public static String NativeLibrariesPropertyPage_locationPath_none;
	public static String AppearancePreferencePage_description;
	public static String AppearancePreferencePage_methodreturntype_label;
	public static String AppearancePreferencePage_showCategory_label;
	public static String AppearancePreferencePage_methodtypeparams_label;
	public static String AppearancePreferencePage_pkgNamePatternEnable_label;
	public static String AppearancePreferencePage_pkgNamePattern_label;
	public static String AppearancePreferencePage_pkgNamePatternAbbreviateEnable_label;
	public static String AppearancePreferencePage_pkgNamePatternAbbreviate_label;
	public static String AppearancePreferencePage_showMembersInPackagesView;
	public static String AppearancePreferencePage_decorateTestCodeContainerIcons;
	public static String AppearancePreferencePage_stackViewsVerticallyInTheJavaBrowsingPerspective;
	public static String AppearancePreferencePage_note;
	public static String AppearancePreferencePage_preferenceOnlyEffectiveForNewPerspectives;
	public static String AppearancePreferencePage_packageNameCompressionPattern_error_isEmpty;
	public static String AppearancePreferencePage_packageNameAbbreviationPattern_error_isInvalid;
	public static String AppearancePreferencePage_foldEmptyPackages;
	public static String AppearancePreferencePage_sortLibraryEntries;
	public static String CodeFormatterPreferencePage_title;
	public static String SourceAttachmentPropertyPage_not_supported;
	public static String SourceAttachmentPropertyPage_read_only;
	public static String TodoTaskPreferencePage_title;
	public static String TodoTaskPreferencePage_description;
	public static String TodoTaskConfigurationBlock_markers_tasks_high_priority;
	public static String TodoTaskConfigurationBlock_markers_tasks_normal_priority;
	public static String TodoTaskConfigurationBlock_markers_tasks_low_priority;
	public static String TodoTaskConfigurationBlock_markers_tasks_add_button;
	public static String TodoTaskConfigurationBlock_markers_tasks_remove_button;
	public static String TodoTaskConfigurationBlock_markers_tasks_edit_button;
	public static String TodoTaskConfigurationBlock_markers_tasks_name_column;
	public static String TodoTaskConfigurationBlock_markers_tasks_priority_column;
	public static String TodoTaskConfigurationBlock_markers_tasks_setdefault_button;
	public static String TodoTaskConfigurationBlock_casesensitive_label;
	public static String TodoTaskConfigurationBlock_needsbuild_title;
	public static String TodoTaskConfigurationBlock_tasks_default;
	public static String TodoTaskConfigurationBlock_needsfullbuild_message;
	public static String TodoTaskConfigurationBlock_needsprojectbuild_message;
	public static String TodoTaskInputDialog_new_title;
	public static String TodoTaskInputDialog_edit_title;
	public static String TodoTaskInputDialog_name_label;
	public static String TodoTaskInputDialog_priority_label;
	public static String TodoTaskInputDialog_priority_high;
	public static String TodoTaskInputDialog_priority_normal;
	public static String TodoTaskInputDialog_priority_low;
	public static String TodoTaskInputDialog_error_enterName;
	public static String TodoTaskInputDialog_error_comma;
	public static String TodoTaskInputDialog_error_entryExists;
	public static String TodoTaskInputDialog_error_noSpace;
	public static String PropertyAndPreferencePage_useworkspacesettings_change;
	public static String PropertyAndPreferencePage_showprojectspecificsettings_label;
	public static String PropertyAndPreferencePage_useprojectsettings_label;
	public static String JavaBuildPreferencePage_title;
	public static String JavaBuildConfigurationBlock_section_general;
	public static String JavaBuildConfigurationBlock_section_output_folder;
	public static String JavaBuildConfigurationBlock_section_build_path_problems;
	public static String JavaBuildConfigurationBlock_error;
	public static String JavaBuildConfigurationBlock_warning;
	public static String JavaBuildConfigurationBlock_info;
	public static String JavaBuildConfigurationBlock_ignore;
	public static String JavaBuildConfigurationBlock_needsbuild_title;
	public static String JavaBuildConfigurationBlock_needsfullbuild_message;
	public static String JavaBuildConfigurationBlock_needsprojectbuild_message;
	public static String JavaBuildConfigurationBlock_resource_filter_description;
	public static String JavaBuildConfigurationBlock_resource_filter_label;
	public static String JavaBuildConfigurationBlock_build_invalid_classpath_label;
	public static String JavaBuildConfigurationBlock_build_clean_outputfolder_label;
	public static String JavaBuildConfigurationBlock_enable_exclusion_patterns_label;
	public static String JavaBuildConfigurationBlock_enable_multiple_outputlocations_label;
	public static String JavaBuildConfigurationBlock_pb_incomplete_build_path_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_discourraged_reference_label;
	public static String JavaBuildConfigurationBlock_pb_build_path_cycles_label;
	public static String JavaBuildConfigurationBlock_pb_duplicate_resources_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_forbidden_reference_label;
	public static String JavaBuildConfigurationBlock_pb_max_per_unit_label;
	public static String JavaBuildConfigurationBlock_pb_check_prereq_binary_level_label;
	public static String JavaBuildConfigurationBlock_pb_output_overlapping_with_source_label;
	public static String JavaBuildConfigurationBlock_pb_strictly_compatible_jre_not_available_label;
	public static String JavaBuildConfigurationBlock_pb_compiler_compliance_does_not_match_jre_label;
	public static String JavaBuildConfigurationBlock_pb_main_only_project_has_test_only_dependency_label;
	public static String JavaBuildConfigurationBlock_empty_input;
	public static String JavaBuildConfigurationBlock_invalid_input;
	public static String JavaBuildConfigurationBlock_filter_invalidsegment_error;
	public static String ProblemSeveritiesPreferencePage_title;
	public static String ProblemSeveritiesConfigurationBlock_enable_annotation_null_analysis;
	public static String ProblemSeveritiesConfigurationBlock_error;
	public static String ProblemSeveritiesConfigurationBlock_warning;
	public static String ProblemSeveritiesConfigurationBlock_info;
	public static String ProblemSeveritiesConfigurationBlock_ignore;
	public static String ProblemSeveritiesConfigurationBlock_section_potential_programming_problems;
	public static String ProblemSeveritiesConfigurationBlock_section_unnecessary_code;
	public static String ProblemSeveritiesConfigurationBlock_section_code_style;
	public static String ProblemSeveritiesConfigurationBlock_section_deprecations;
	public static String ProblemSeveritiesConfigurationBlock_section_module;
	public static String ProblemSeveritiesConfigurationBlock_section_name_shadowing;
	public static String ProblemSeveritiesConfigurationBlock_section_null_analysis;
	public static String ProblemSeveritiesConfigurationBlock_section_annotations;
	public static String ProblemSeveritiesConfigurationBlock_needsbuild_title;
	public static String ProblemSeveritiesConfigurationBlock_needsfullbuild_message;
	public static String ProblemSeveritiesConfigurationBlock_needsprojectbuild_message;
	public static String NullAnnotationsConfigurationDialog_nonnull_annotations_label;
	public static String NullAnnotationsConfigurationDialog_nonnull_annotations_description;
	public static String ProblemSeveritiesConfigurationBlock_missing_nonnull_by_default_annotation;
	public static String NullAnnotationsConfigurationDialog_nonnullbydefault_annotation_error;
	public static String NullAnnotationsConfigurationDialog_nonnullbydefault_annotations_label;
	public static String NullAnnotationsConfigurationDialog_nonnullbydefault_annotations_description;
	public static String NullAnnotationsConfigurationDialog_nonnull_annotation_error;
	public static String NullAnnotationsConfigurationDialog_null_annotations_description;
	public static String NullAnnotationsConfigurationDialog_nullable_annotation_error;
	public static String NullAnnotationsConfigurationDialog_nullable_annotations_label;
	public static String NullAnnotationsConfigurationDialog_nullable_annotations_description;
	public static String NullAnnotationsConfigurationDialog_add_button;
	public static String NullAnnotationsConfigurationDialog_notFound_info;
	public static String NullAnnotationsConfigurationDialog_primary_label;
	public static String NullAnnotationsConfigurationDialog_secondary_label;
	public static String ProblemSeveritiesConfigurationBlock_common_description;
	public static String ProblemSeveritiesConfigurationBlock_pb_unavoidable_generic_type_problems;
	public static String ProblemSeveritiesConfigurationBlock_pb_unsafe_type_op_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_raw_type_reference;
	public static String ProblemSeveritiesConfigurationBlock_pb_final_param_bound_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_inexact_vararg_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_unlikely_collection_method_argument_type_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_unlikely_collection_method_argument_type_strict_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_unlikely_equals_argument_type_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_accidential_assignement_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_local_variable_hiding_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_field_hiding_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_special_param_hiding_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_unqualified_field_access_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_finally_block_not_completing_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_undocumented_empty_block_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_unused_throwing_exception_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_unused_throwing_exception_when_overriding_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_unused_throwing_exception_ignore_unchecked_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_missing_serial_version_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_missing_static_on_method_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_missing_synchronized_on_inherited_method;
	public static String ProblemSeveritiesConfigurationBlock_pb_missing_hashcode_method;
	public static String ProblemSeveritiesConfigurationBlock_pb_overriding_pkg_dflt_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_method_naming_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_no_effect_assignment_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_incompatible_interface_method_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_indirect_access_to_static_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_hidden_catchblock_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_static_access_receiver_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_unused_imports_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_unused_local_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_unused_parameter_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_unused_exception_parameter_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_unused_type_parameter;
	public static String ProblemSeveritiesConfigurationBlock_pb_signal_param_in_overriding_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_suppress_optional_errors_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_unused_private_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_non_externalized_strings_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_dead_code;
	public static String ProblemSeveritiesConfigurationBlock_pb_deprecation_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_terminal_deprecation_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_deprecation_in_deprecation_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_deprecation_when_overriding_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_api_leak_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_unstable_auto_module_name_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_empty_statement_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_unnecessary_type_check_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_incomplete_enum_switch_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_switch_missing_default_case_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_unnecessary_else_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_synth_access_emul_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_autoboxing_problem_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_char_array_in_concat_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_comparing_identical;
	public static String ProblemSeveritiesConfigurationBlock_pb_missing_override_annotation_for_interface_method_implementations_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_missing_override_annotation_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_missing_deprecated_annotation_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_missing_enum_case_despite_default;
	public static String ProblemSeveritiesConfigurationBlock_pb_annotation_super_interface_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_type_parameter_hiding_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_unused_label_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_unused_object_allocation_label;
	public static String JavadocProblemsPreferencePage_title;
	public static String JavadocProblemsConfigurationBlock_allStandardTags;
	public static String JavadocProblemsConfigurationBlock_public;
	public static String JavadocProblemsConfigurationBlock_protected;
	public static String JavadocProblemsConfigurationBlock_default;
	public static String JavadocProblemsConfigurationBlock_private;
	public static String JavadocProblemsConfigurationBlock_error;
	public static String JavadocProblemsConfigurationBlock_warning;
	public static String JavadocProblemsConfigurationBlock_info;
	public static String JavadocProblemsConfigurationBlock_ignore;
	public static String JavadocProblemsConfigurationBlock_note_title;
	public static String JavadocProblemsConfigurationBlock_note_message;
	public static String JavadocProblemsConfigurationBlock_needsbuild_title;
	public static String JavadocProblemsConfigurationBlock_needsfullbuild_message;
	public static String JavadocProblemsConfigurationBlock_needsprojectbuild_message;
	public static String JavadocProblemsConfigurationBlock_javadoc_description;
	public static String JavadocProblemsConfigurationBlock_pb_javadoc_support_label;
	public static String JavadocProblemsConfigurationBlock_pb_invalid_javadoc_label;
	public static String JavadocProblemsConfigurationBlock_pb_invalid_javadoc_tags_label;
	public static String JavadocProblemsConfigurationBlock_pb_invalid_javadoc_tags_visibility_label;
	public static String JavadocProblemsConfigurationBlock_pb_invalid_javadoc_tags_not_visible_ref_label;
	public static String JavadocProblemsConfigurationBlock_pb_invalid_javadoc_tags_deprecated_label;
	public static String JavadocProblemsConfigurationBlock_pb_missing_javadoc_label;
	public static String JavadocProblemsConfigurationBlock_pb_missing_javadoc_tags_visibility_label;
	public static String JavadocProblemsConfigurationBlock_pb_missing_javadoc_tags_overriding_label;
	public static String JavadocProblemsConfigurationBlock_pb_missing_comments_label;
	public static String JavadocProblemsConfigurationBlock_pb_missing_comments_method_type_parameter_label;
	public static String JavadocProblemsConfigurationBlock_pb_missing_comments_visibility_label;
	public static String JavadocProblemsConfigurationBlock_pb_missing_comments_overriding_label;
	public static String JavadocProblemsConfigurationBlock_pb_missing_tag_description;
	public static String JavadocProblemsConfigurationBlock_returnTag;
	public static String CompliancePreferencePage_title;
	public static String ComplianceConfigurationBlock_error;
	public static String ComplianceConfigurationBlock_warning;
	public static String ComplianceConfigurationBlock_info;
	public static String ComplianceConfigurationBlock_ignore;
	public static String ComplianceConfigurationBlock_version11;
	public static String ComplianceConfigurationBlock_version12;
	public static String ComplianceConfigurationBlock_version13;
	public static String ComplianceConfigurationBlock_version14;
	public static String ComplianceConfigurationBlock_version15;
	public static String ComplianceConfigurationBlock_needsbuild_title;
	public static String ComplianceConfigurationBlock_needsfullbuild_message;
	public static String ComplianceConfigurationBlock_needsprojectbuild_message;
	public static String ComplianceConfigurationBlock_variable_attr_label;
	public static String ComplianceConfigurationBlock_line_number_attr_label;
	public static String ComplianceConfigurationBlock_source_file_attr_label;
	public static String ComplianceConfigurationBlock_codegen_unused_local_label;
	public static String ComplianceConfigurationBlock_cldc11_requires_source13_compliance_se14;
	public static String ComplianceConfigurationBlock_codegen_inline_jsr_bytecode_label;
	public static String ComplianceConfigurationBlock_codegen_method_parameters_attr;
	public static String ComplianceConfigurationBlock_compiler_compliance_label;
	public static String ComplianceConfigurationBlock_default_settings_label;
	public static String ComplianceConfigurationBlock_enable_preview_label;
	public static String ComplianceConfigurationBlock_enable_preview_severity_label;
	public static String ComplianceConfigurationBlock_source_compatibility_label;
	public static String ComplianceConfigurationBlock_codegen_targetplatform_label;
	public static String ComplianceConfigurationBlock_pb_assert_as_identifier_label;
	public static String ComplianceConfigurationBlock_pb_enum_as_identifier_label;
	public static String ComplianceConfigurationBlock_compliance_follows_EE_label;
	public static String ComplianceConfigurationBlock_compliance_follows_EE_with_EE_label;
	public static String ComplianceConfigurationBlock_compliance_group_label;
	public static String ComplianceConfigurationBlock_classfiles_group_label;
	public static String CodeStylePreferencePage_title;
	public static String CodeTemplatesPreferencePage_title;
	public static String NameConventionConfigurationBlock_field_label;
	public static String NameConventionConfigurationBlock_static_label;
	public static String NameConventionConfigurationBlock_arg_label;
	public static String NameConventionConfigurationBlock_local_label;
	public static String NameConventionConfigurationBlock_keywordthis_label;
	public static String NameConventionConfigurationBlock_isforbooleangetters_label;
	public static String NameConventionConfigurationBlock_dialog_prefix;
	public static String NameConventionConfigurationBlock_dialog_suffix;
	public static String NameConventionConfigurationBlock_exceptionname_label;
	public static String NameConventionConfigurationBlock_error_emptyprefix;
	public static String NameConventionConfigurationBlock_error_emptysuffix;
	public static String NameConventionConfigurationBlock_error_invalidprefix;
	public static String NameConventionConfigurationBlock_error_invalidsuffix;
	public static String NameConventionConfigurationBlock_list_label;
	public static String NameConventionConfigurationBlock_list_edit_button;
	public static String NameConventionConfigurationBlock_list_name_column;
	public static String NameConventionConfigurationBlock_list_prefix_column;
	public static String NameConventionConfigurationBlock_list_suffix_column;
	public static String NameConventionConfigurationBlock_field_dialog_title;
	public static String NameConventionConfigurationBlock_field_dialog_message;
	public static String NameConventionConfigurationBlock_static_dialog_title;
	public static String NameConventionConfigurationBlock_static_dialog_message;
	public static String NameConventionConfigurationBlock_static_final_dialog_message;
	public static String NameConventionConfigurationBlock_static_final_dialog_title;
	public static String NameConventionConfigurationBlock_static_final_label;
	public static String NameConventionConfigurationBlock_arg_dialog_title;
	public static String NameConventionConfigurationBlock_arg_dialog_message;
	public static String NameConventionConfigurationBlock_local_dialog_title;
	public static String NameConventionConfigurationBlock_local_dialog_message;
	public static String NameConventionConfigurationBlock_override_link_label;
	public static String MembersOrderPreferencePage_category_button_up;
	public static String MembersOrderPreferencePage_category_button_down;
	public static String MembersOrderPreferencePage_visibility_button_up;
	public static String MembersOrderPreferencePage_visibility_button_down;
	public static String MembersOrderPreferencePage_label_description;
	public static String MembersOrderPreferencePage_fields_label;
	public static String MembersOrderPreferencePage_constructors_label;
	public static String MembersOrderPreferencePage_methods_label;
	public static String MembersOrderPreferencePage_staticfields_label;
	public static String MembersOrderPreferencePage_staticmethods_label;
	public static String MembersOrderPreferencePage_initialisers_label;
	public static String MembersOrderPreferencePage_staticinitialisers_label;
	public static String MembersOrderPreferencePage_types_label;
	public static String MembersOrderPreferencePage_public_label;
	public static String MembersOrderPreferencePage_private_label;
	public static String MembersOrderPreferencePage_protected_label;
	public static String MembersOrderPreferencePage_default_label;
	public static String MembersOrderPreferencePage_usevisibilitysort_label;
	public static String CodeTemplateBlock_templates_comment_node;
	public static String CodeTemplateBlock_templates_code_node;
	public static String CodeTemplateBlock_catchblock_label;
	public static String CodeTemplateBlock_methodstub_label;
	public static String CodeTemplateBlock_constructorstub_label;
	public static String CodeTemplateBlock_newtype_label;
	public static String CodeTemplateBlock_classbody_label;
	public static String CodeTemplateBlock_interfacebody_label;
	public static String CodeTemplateBlock_enumbody_label;
	public static String CodeTemplateBlock_annotationbody_label;
	public static String CodeTemplateBlock_typecomment_label;
	public static String CodeTemplateBlock_fieldcomment_label;
	public static String CodeTemplateBlock_filecomment_label;
	public static String CodeTemplateBlock_methodcomment_label;
	public static String CodeTemplateBlock_overridecomment_label;
	public static String CodeTemplateBlock_delegatecomment_label;
	public static String CodeTemplateBlock_constructorcomment_label;
	public static String CodeTemplateBlock_gettercomment_label;
	public static String CodeTemplateBlock_settercomment_label;
	public static String CodeTemplateBlock_getterstub_label;
	public static String CodeTemplateBlock_setterstub_label;
	public static String CodeTemplateBlock_templates_edit_button;
	public static String CodeTemplateBlock_templates_import_button;
	public static String CodeTemplateBlock_templates_export_button;
	public static String CodeTemplateBlock_templates_exportall_button;
	public static String CodeTemplateBlock_createcomment_label;
	public static String CodeTemplateBlock_templates_label;
	public static String CodeTemplateBlock_preview;
	public static String CodeTemplateBlock_import_title;
	public static String CodeTemplateBlock_import_extension;
	public static String CodeTemplateBlock_export_title_singular;
	public static String CodeTemplateBlock_export_title_plural;
	public static String CodeTemplateBlock_export_filename;
	public static String CodeTemplateBlock_export_extension;
	public static String CodeTemplateBlock_export_exists_title;
	public static String CodeTemplateBlock_export_exists_message;
	public static String CodeTemplateBlock_error_read_title;
	public static String CodeTemplateBlock_error_read_message;
	public static String CodeTemplateBlock_error_parse_message;
	public static String CodeTemplateBlock_error_write_title;
	public static String CodeTemplateBlock_error_write_message;
	public static String CodeTemplateBlock_export_error_title;
	public static String CodeTemplateBlock_export_error_hidden;
	public static String CodeTemplateBlock_export_error_canNotWrite;
	public static String TypeFilterPreferencePage_description;
	public static String TypeFilterPreferencePage_list_label;
	public static String TypeFilterPreferencePage_add_button;
	public static String TypeFilterPreferencePage_addpackage_button;
	public static String TypeFilterPreferencePage_edit_button;
	public static String TypeFilterPreferencePage_remove_button;
	public static String TypeFilterPreferencePage_selectall_button;
	public static String TypeFilterPreferencePage_deselectall_button;
	public static String TypeFilterPreferencePage_choosepackage_label;
	public static String TypeFilterPreferencePage_choosepackage_description;
	public static String TypeFilterInputDialog_title;
	public static String TypeFilterInputDialog_message;
	public static String TypeFilterInputDialog_browse_button;
	public static String TypeFilterInputDialog_error_enterName;
	public static String TypeFilterInputDialog_error_invalidName;
	public static String TypeFilterInputDialog_error_entryExists;
	public static String TypeFilterInputDialog_choosepackage_label;
	public static String TypeFilterInputDialog_choosepackage_description;
	public static String SpellingPreferencePage_empty_threshold;
	public static String SpellingPreferencePage_invalid_threshold;
	public static String SpellingPreferencePage_ignore_digits_label;
	public static String SpellingPreferencePage_ignore_mixed_label;
	public static String SpellingPreferencePage_ignore_sentence_label;
	public static String SpellingPreferencePage_ignore_upper_label;
	public static String SpellingPreferencePage_ignore_url_label;
	public static String SpellingPreferencePage_ignore_non_letters_label;
	public static String SpellingPreferencePage_ignore_single_letters_label;
	public static String SpellingPreferencePage_ignore_java_strings_label;
	public static String SpellingPreferencePage_ignore_ampersand_in_properties_label;
	public static String SpellingPreferencePage_proposals_threshold;
	public static String SpellingPreferencePage_problems_threshold;
	public static String SpellingPreferencePage_dictionary_label;
	public static String SpellingPreferencePage_encoding_label;
	public static String SpellingPreferencePage_workspace_dictionary_label;
	public static String SpellingPreferencePage_browse_label;
	public static String SpellingPreferencePage_dictionary_error;
	public static String SpellingPreferencePage_dictionary_none;
	public static String SpellingPreferencePage_locale_error;
	public static String SpellingPreferencePage_filedialog_title;
	public static String SpellingPreferencePage_enable_contentassist_label;
	public static String SpellingPreferencePage_group_user;
	public static String SpellingPreferencePage_group_dictionary;
	public static String SpellingPreferencePage_group_dictionaries;
	public static String SpellingPreferencePage_group_advanced;
	public static String SpellingPreferencePage_user_dictionary_description;
	public static String SpellingPreferencePage_variables;
	public static String UserLibraryPreferencePage_title;
	public static String UserLibraryPreferencePage_description;
	public static String UserLibraryPreferencePage_libraries_label;
	public static String UserLibraryPreferencePage_libraries_new_button;
	public static String UserLibraryPreferencePage_libraries_edit_button;
	public static String UserLibraryPreferencePage_libraries_toggle_button;
	public static String UserLibraryPreferencePage_libraries_addjar_button;
	public static String UserLibraryPreferencePage_libraries_addexternaljar_button;
	public static String UserLibraryPreferencePage_libraries_remove_button;
	public static String UserLibraryPreferencePage_libraries_load_button;
	public static String UserLibraryPreferencePage_libraries_save_button;
	public static String UserLibraryPreferencePage_operation;
	public static String UserLibraryPreferencePage_operation_error;
	public static String UserLibraryPreferencePage_config_error_title;
	public static String UserLibraryPreferencePage_config_error_message;
	public static String UserLibraryPreferencePage_browsejar_new_title;
	public static String UserLibraryPreferencePage_browsejar_edit_title;
	public static String UserLibraryPreferencePage_LibraryNameDialog_new_title;
	public static String UserLibraryPreferencePage_LibraryNameDialog_edit_title;
	public static String UserLibraryPreferencePage_LibraryNameDialog_name_label;
	public static String UserLibraryPreferencePage_LibraryNameDialog_issystem_label;
	public static String UserLibraryPreferencePage_LibraryNameDialog_name_error_entername;
	public static String UserLibraryPreferencePage_LibraryNameDialog_name_error_exists;
	public static String UserLibraryPreferencePage_LoadSaveDialog_save_title;
	public static String UserLibraryPreferencePage_LoadSaveDialog_save_ok_title;
	public static String UserLibraryPreferencePage_LoadSaveDialog_load_title;
	public static String UserLibraryPreferencePage_LoadSaveDialog_location_label;
	public static String UserLibraryPreferencePage_LoadSaveDialog_location_button;
	public static String UserLibraryPreferencePage_LoadSaveDialog_list_selectall_button;
	public static String UserLibraryPreferencePage_LoadSaveDialog_load_replace_message;
	public static String UserLibraryPreferencePage_LoadSaveDialog_load_replace_multiple_message;
	public static String UserLibraryPreferencePage_LoadSaveDialog_list_deselectall_button;
	public static String UserLibraryPreferencePage_LoadSaveDialog_list_save_label;
	public static String UserLibraryPreferencePage_LoadSaveDialog_list_load_label;
	public static String UserLibraryPreferencePage_LoadSaveDialog_filedialog_save_title;
	public static String UserLibraryPreferencePage_LoadSaveDialog_filedialog_load_title;
	public static String UserLibraryPreferencePage_LoadSaveDialog_error_empty;
	public static String UserLibraryPreferencePage_LoadSaveDialog_error_invalidfile;
	public static String UserLibraryPreferencePage_LoadSaveDialog_overwrite_title;
	public static String UserLibraryPreferencePage_LoadSaveDialog_save_ok_message;
	public static String UserLibraryPreferencePage_LoadSaveDialog_overwrite_message;
	public static String UserLibraryPreferencePage_LoadSaveDialog_save_errordialog_title;
	public static String UserLibraryPreferencePage_LoadSaveDialog_save_errordialog_message;
	public static String UserLibraryPreferencePage_LoadSaveDialog_location_error_save_enterlocation;
	public static String UserLibraryPreferencePage_LoadSaveDialog_location_error_save_invalid;
	public static String UserLibraryPreferencePage_LoadSaveDialog_list_error_save_nothingselected;
	public static String UserLibraryPreferencePage_LoadSaveDialog_location_error_load_enterlocation;
	public static String UserLibraryPreferencePage_LoadSaveDialog_location_error_load_invalid;
	public static String UserLibraryPreferencePage_LoadSaveDialog_list_error_load_nothingselected;
	public static String UserLibraryPreferencePage_LoadSaveDialog_load_badformat;
	public static String UserLibraryPreferencePage_LoadSaveDialog_load_replace_title;
	public static String EditTemplateDialog_error_noname;
	public static String EditTemplateDialog_error_invalidName;
	public static String EditTemplateDialog_error_invalidPattern;
	public static String EditTemplateDialog_title_new;
	public static String EditTemplateDialog_title_edit;
	public static String EditTemplateDialog_name;
	public static String EditTemplateDialog_description;
	public static String EditTemplateDialog_context;
	public static String EditTemplateDialog_pattern;
	public static String EditTemplateDialog_insert_variable;
	public static String EditTemplateDialog_undo;
	public static String EditTemplateDialog_redo;
	public static String EditTemplateDialog_cut;
	public static String EditTemplateDialog_copy;
	public static String EditTemplateDialog_paste;
	public static String EditTemplateDialog_select_all;
	public static String EditTemplateDialog_content_assist;
	public static String JavaEditorPreferencePage_folding_title;
	public static String FoldingConfigurationBlock_enable;
	public static String FoldingConfigurationBlock_combo_caption;
	public static String FoldingConfigurationBlock_info_no_preferences;
	public static String FoldingConfigurationBlock_error_not_exist;
	public static String FoldingConfigurationBlock_warning_providerNotFound_resetToDefault;
	public static String PropertiesFileEditorPreferencePage_key;
	public static String PropertiesFileEditorPreferencePage_value;
	public static String PropertiesFileEditorPreferencePage_assignment;
	public static String PropertiesFileEditorPreferencePage_argument;
	public static String PropertiesFileEditorPreferencePage_comment;
	public static String PropertiesFileEditorPreferencePage_foreground;
	public static String PropertiesFileEditorPreferencePage_color;
	public static String PropertiesFileEditorPreferencePage_bold;
	public static String PropertiesFileEditorPreferencePage_italic;
	public static String PropertiesFileEditorPreferencePage_strikethrough;
	public static String PropertiesFileEditorPreferencePage_underline;
	public static String PropertiesFileEditorPreferencePage_preview;
	public static String PropertiesFileEditorPreferencePage_link;
	public static String SmartTypingConfigurationBlock_autoclose_title;
	public static String SmartTypingConfigurationBlock_automove_title;
	public static String SmartTypingConfigurationBlock_tabs_message_tab_text;
	public static String SmartTypingConfigurationBlock_tabs_message_others_text;
	public static String SmartTypingConfigurationBlock_tabs_message_tooltip;
	public static String SmartTypingConfigurationBlock_tabs_message_spaces;
	public static String SmartTypingConfigurationBlock_tabs_message_tabs;
	public static String SmartTypingConfigurationBlock_tabs_message_tabsAndSpaces;
	public static String SmartTypingConfigurationBlock_pasting_title;
	public static String SmartTypingConfigurationBlock_strings_title;
	public static String SmartTypingConfigurationBlock_indentation_title;
	public static String CodeAssistConfigurationBlock_typeFilters_link;
	public static String CodeAssistConfigurationBlock_sortingSection_title;
	public static String CodeAssistConfigurationBlock_autoactivationSection_title;
	public static String CodeAssistConfigurationBlock_insertionSection_title;
	public static String JavaEditorPreferencePage_coloring_category_java;
	public static String JavaEditorPreferencePage_coloring_category_javadoc;
	public static String JavaEditorPreferencePage_coloring_category_comments;
	public static String ProjectSelectionDialog_title;
	public static String ProjectSelectionDialog_desciption;
	public static String ProjectSelectionDialog_filter;
	public static String JavaCompilerPropertyPage_ignore_optional_problems_label;
	public static String JavaCompilerPropertyPage_invalid_element_selection;

	static {
		NLS.initializeMessages(BUNDLE_NAME, PreferencesMessages.class);
	}

	public static String NameConventionConfigurationBlock_use_override_annotation_label;
	public static String NullAnnotationsConfigurationDialog_error_message;
	public static String NullAnnotationsConfigurationDialog_error_title;
	public static String NullAnnotationsConfigurationDialog_restore_defaults;
	public static String NullAnnotationsConfigurationDialog_title;
	public static String NullAnnotationsConfigurationDialog_use_default_annotations_for_null;
	public static String ProblemSeveritiesConfigurationBlock_pb_unhandled_surpresswarning_tokens;
	public static String ProblemSeveritiesConfigurationBlock_pb_enable_surpresswarning_annotation;
	public static String SmartTypingConfigurationBlock_annotationReporting_link;
	public static String TypeFilterPreferencePage_restricted_link;
	public static String TypeFilterPreferencePage_hideDiscouraged_label;
	public static String TypeFilterPreferencePage_hideForbidden_label;
	public static String UserLibraryPreferencePage_UserLibraryPreferencePage_libraries_up_button;
	public static String UserLibraryPreferencePage_UserLibraryPreferencePage_libraries_down_button;
	public static String EditTemplateDialog_autoinsert;
	public static String ComplianceConfigurationBlock_jrecompliance_info;
	public static String ComplianceConfigurationBlock_jrecompliance_info_project;
	public static String ComplianceConfigurationBlock_jrecompliance_backwardcompatibility_info;
	public static String ComplianceConfigurationBlock_jrecompliance_backwardcompatibility_warning;
	public static String ComplianceConfigurationBlock_jrecompliance_backwardcompatibility_label;
	public static String ProblemSeveritiesConfigurationBlock_section_generics;
	public static String JavaBasePreferencePage_dialogs;
	public static String JavaBasePreferencePage_do_not_hide_description;
	public static String JavaBasePreferencePage_do_not_hide_button;
	public static String JavaBasePreferencePage_do_not_hide_dialog_title;
	public static String JavaBasePreferencePage_do_not_hide_dialog_message;
	public static String CodeAssistConfigurationBlock_matchCamelCase_label;
	public static String CodeAssistConfigurationBlock_matchSubstring_label;
	public static String ComplianceConfigurationBlock_version16;
	public static String ComplianceConfigurationBlock_version17;
	public static String ComplianceConfigurationBlock_version18;
	public static String ComplianceConfigurationBlock_version9;
	public static String ComplianceConfigurationBlock_version10;
	public static String ComplianceConfigurationBlock_version_11;
	public static String ComplianceConfigurationBlock_version_12;
	public static String ComplianceConfigurationBlock_versionCLDC11;
	public static String ComplianceConfigurationBlock_src_greater_compliance;
	public static String ComplianceConfigurationBlock_classfile_greater_compliance;
	public static String ComplianceConfigurationBlock_classfile_greater_source;
	public static String ProblemSeveritiesConfigurationBlock_enable_syntactic_null_analysis_for_fields;
	public static String ProblemSeveritiesConfigurationBlock_inherit_null_annotations;
	public static String ProblemSeveritiesConfigurationBlock_pb_parameter_assignment;
	public static String ProblemSeveritiesConfigurationBlock_pb_null_reference;
	public static String ProblemSeveritiesConfigurationBlock_pb_null_spec_violation;
	public static String ProblemSeveritiesConfigurationBlock_pb_null_unchecked_conversion;
	public static String ProblemSeveritiesConfigurationBlock_pb_pessimistic_analysis_for_free_type_variables;
	public static String ProblemSeveritiesConfigurationBlock_pb_nonnull_typevar_maybe_legacy;
	public static String ProblemSeveritiesConfigurationBlock_pb_potential_null_reference;
	public static String ProblemSeveritiesConfigurationBlock_pb_null_annotation_inference_conflict;
	public static String ProblemSeveritiesConfigurationBlock_pb_potential_resource_leak_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_potentially_missing_static_on_method_label;
	public static String ProblemSeveritiesConfigurationBlock_pb_fall_through_case;
	public static String ProblemSeveritiesConfigurationBlock_unused_suppresswarnings_token;
	public static String CodeAssistConfigurationBlock_hideDeprecated_label;

	public static String CodeAssistStaticMembersConfigurationBlock_description;
	public static String CodeAssistStaticMembersConfigurationBlock_newType_button;
	public static String CodeAssistStaticMembersConfigurationBlock_newMember_button;
	public static String CodeAssistStaticMembersConfigurationBlock_edit_button;
	public static String CodeAssistStaticMembersConfigurationBlock_remove_button;

	public static String FavoriteStaticMemberInputDialog_member_new_title;
	public static String FavoriteStaticMemberInputDialog_member_edit_title;
	public static String FavoriteStaticMemberInputDialog_member_labelText;
	public static String FavoriteStaticMemberInputDialog_type_new_title;
	public static String FavoriteStaticMemberInputDialog_type_edit_title;
	public static String FavoriteStaticMemberInputDialog_type_labelText;
	public static String FavoriteStaticMemberInputDialog_browse_button;
	public static String FavoriteStaticMemberInputDialog_ChooseTypeDialog_title;
	public static String FavoriteStaticMemberInputDialog_ChooseTypeDialog_description;
	public static String FavoriteStaticMemberInputDialog_ChooseTypeDialog_error_message;
	public static String FavoriteStaticMemberInputDialog_error_invalidMemberName;
	public static String FavoriteStaticMemberInputDialog_error_invalidTypeName;
	public static String FavoriteStaticMemberInputDialog_error_entryExists;

	public static String OptionsConfigurationBlock_Disabled;
	public static String OptionsConfigurationBlock_Enabled;
	public static String OptionsConfigurationBlock_NoOptionMatchesTheFilter;
	public static String OptionsConfigurationBlock_Off;
	public static String OptionsConfigurationBlock_On;
	public static String OptionsConfigurationBlock_RefreshFilter;
	public static String OptionsConfigurationBlock_TypeFilterText;
	public static String OptionsConfigurationBlock_IgnoreOptionalProblemsLink;

	public static String FilteredPreferencesTree_collapseAll_tooltip;
	public static String FilteredPreferencesTree_expandAll_tooltip;
	public static String FilterTextControl_Clear;
	public static String FilterTextControl_ClearFilterField;

	public static String JavaEditorCodeMiningConfigurationBlock_common_description;
	public static String JavaEditorCodeMiningConfigurationBlock_enableCodeMining_label;
	public static String JavaEditorCodeMiningConfigurationBlock_showCodeMining_atLeastOne_label;
	public static String JavaEditorCodeMiningConfigurationBlock_section_general;
	public static String JavaEditorCodeMiningConfigurationBlock_showReferences_label;
	public static String JavaEditorCodeMiningConfigurationBlock_showReferences_onTypes_label;
	public static String JavaEditorCodeMiningConfigurationBlock_showReferences_onFields_label;
	public static String JavaEditorCodeMiningConfigurationBlock_showReferences_onMethods_label;
	public static String JavaEditorCodeMiningConfigurationBlock_showImplementations_label;
	public static String JavaEditorCodeMiningConfigurationBlock_showParameterNames_label;
}
