/*******************************************************************************
 * Copyright (c) 2000, 2020 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
 *******************************************************************************/
package org.eclipse.jdt.internal.ui.refactoring;

import org.eclipse.osgi.util.NLS;

public final class RefactoringMessages extends NLS {

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

	public static String ChangeExceptionHandler_abort_button;

	public static String ChangeExceptionHandler_dialog_message;

	public static String ChangeExceptionHandler_dialog_title;

	public static String ChangeExceptionHandler_message;

	public static String ChangeExceptionHandler_status_without_detail;

	public static String ChangeExceptionHandler_undo_button;

	public static String ChangeExceptionHandler_undo_dialog_message;

	public static String ChangeExceptionHandler_undo_dialog_title;

	public static String ChangeExceptionsControl_buttons_add;

	public static String ChangeExceptionsControl_buttons_remove;

	public static String ChangeExceptionsControl_choose_message;

	public static String ChangeExceptionsControl_choose_title;

	public static String ChangeExceptionsControl_not_exception;

	public static String ChangeParametersControl_buttons_add;

	public static String ChangeParametersControl_buttons_edit;

	public static String ChangeParametersControl_buttons_move_down;

	public static String ChangeParametersControl_buttons_move_up;

	public static String ChangeParametersControl_buttons_remove;

	public static String ChangeParametersControl_new_parameter_default_name;

	public static String ChangeParametersControl_table_defaultValue;

	public static String ChangeParametersControl_table_name;

	public static String ChangeParametersControl_table_type;

	public static String ChangeSignatureInputPage_access_modifier;

	public static String ChangeSignatureInputPage_change;

	public static String ChangeSignatureInputPage_Change_Signature;

	public static String ChangeSignatureInputPage_default;

	public static String ChangeSignatureInputPage_exception;

	public static String ChangeSignatureInputPage_exceptions;

	public static String ChangeSignatureInputPage_Internal_Error;

	public static String ChangeSignatureInputPage_method_name;

	public static String ChangeSignatureInputPage_method_Signature_Preview;

	public static String ChangeSignatureInputPage_parameters;

	public static String ChangeSignatureInputPage_return_type;

	public static String ChangeSignatureInputPage_unchanged;

	public static String ChangeSignatureRefactoring_modify_Parameters;

	public static String ChangeTypeAction_description;

	public static String ChangeTypeAction_dialog_title;

	public static String ChangeTypeAction_exception;

	public static String ChangeTypeAction_label;

	public static String ChangeTypeAction_tooltipText;

	public static String ChangeTypeInputPage_Select_Type;

	public static String ChangeTypeWizard_analyzing;

	public static String ChangeTypeWizard_computationInterrupted;

	public static String ChangeTypeWizard_declCannotBeChanged;

	public static String ChangeTypeWizard_grayed_types;

	public static String ChangeTypeWizard_internalError;

	public static String ChangeTypeWizard_pleaseChooseType;

	public static String ChangeTypeWizard_title;

	public static String ChangeTypeWizard_with_itself;

	public static String ConvertAnonymousToNestedAction_Convert_Anonymous;

	public static String ConvertAnonymousToNestedAction_dialog_title;

	public static String ConvertAnonymousToNestedAction_wizard_title;

	public static String ConvertAnonymousToNestedInputPage_class_name;

	public static String ConvertAnonymousToNestedInputPage_declare_final;

	public static String ConvertAnonymousToNestedInputPage_declare_static;

	public static String ConvertAnonymousToNestedInputPage_description;

	public static String ConvertLocalToField_label;

	public static String ConvertLocalToField_title;

	public static String ConvertNestedToTopAction_Convert;

	public static String ConvertNestedToTopAction_To_activate;

	public static String DelegateCreator_deprecate_delegates;

	public static String DeleteWizard_1;

	public static String DeleteWizard_10;

	public static String DeleteWizard_11;

	public static String DeleteWizard_12_singular;

	public static String DeleteWizard_12_plural;

	public static String DeleteWizard_2;

	public static String DeleteWizard_3;

	public static String DeleteWizard_4;

	public static String DeleteWizard_5;

	public static String DeleteWizard_6;

	public static String DeleteWizard_7;

	public static String DeleteWizard_8;

	public static String DeleteWizard_9;

	public static String DeleteWizard_also_delete_sub_packages;

	public static String ExtractClassAction_action_text;

	public static String ExtractClassWizard_button_edit;

	public static String ExtractClassWizard_checkbox_create_gettersetter;

	public static String ExtractClassWizard_column_name;

	public static String ExtractClassWizard_column_type;

	public static String ExtractClassWizard_dialog_message;

	public static String ExtractClassWizard_dialog_title;

	public static String ExtractClassWizard_field_name;

	public static String ExtractClassWizard_label_class_name;

	public static String ExtractClassWizard_label_destination;

	public static String ExtractClassWizard_label_select_fields;

	public static String ExtractClassWizard_not_available;

	public static String ExtractClassWizard_page_title;

	public static String ExtractClassWizard_radio_nested;

	public static String ExtractClassWizard_radio_top_level;

	public static String ExtractConstantAction_extract_constant;

	public static String ExtractConstantAction_label;

	public static String ExtractConstantInputPage_access_modifiers;

	public static String ExtractConstantInputPage_constant_name;

	public static String ExtractConstantInputPage_enter_name;

	public static String ExtractConstantInputPage_exception;

	public static String ExtractConstantInputPage_Internal_Error;

	public static String ExtractConstantInputPage_qualify_constant_references_with_class_name;

	public static String ExtractConstantInputPage_replace_all;

	public static String ExtractConstantInputPage_selection_refers_to_nonfinal_fields;

	public static String ExtractConstantInputPage_signature_preview;

	public static String ExtractConstantWizard_defaultPageTitle;

	public static String ExtractInterfaceAction_Extract_Interface;

	public static String ExtractInterfaceAction_To_activate;

	public static String ExtractInterfaceInputPage_change_references;

	public static String ExtractInterfaceInputPage_description;

	public static String ExtractInterfaceInputPage_Deselect_All;

	public static String ExtractInterfaceInputPage_Extract_Interface;

	public static String ExtractInterfaceInputPage_Interface_name;

	public static String ExtractInterfaceInputPage_Internal_Error;

	public static String ExtractInterfaceInputPage_Members;

	public static String ExtractInterfaceInputPage_Select_All;

	public static String ExtractInterfaceWizard_Extract_Interface;

	public static String ExtractInterfaceWizard_generate_annotations;

	public static String ExtractInterfaceWizard_generate_comments;

	public static String ExtractInterfaceWizard_use_supertype;

	public static String ExtractMethodAction_dialog_title;

	public static String ExtractMethodAction_label;

	public static String ExtractMethodInputPage_access_Modifiers;

	public static String ExtractMethodInputPage_anonymous_type_label;

	public static String ExtractMethodInputPage_default;

	public static String ExtractMethodInputPage_description;

	public static String ExtractMethodInputPage_destination_type;

	public static String ExtractMethodInputPage_duplicates_multi;

	public static String ExtractMethodInputPage_duplicates_none;

	public static String ExtractMethodInputPage_duplicates_single;

	public static String ExtractMethodInputPage_generateJavadocComment;

	public static String ExtractMethodInputPage_label_text;

	public static String ExtractMethodInputPage_parameters;

	public static String ExtractMethodInputPage_private;

	public static String ExtractMethodInputPage_protected;

	public static String ExtractMethodInputPage_public;

	public static String ExtractMethodInputPage_signature_preview;

	public static String ExtractMethodInputPage_throwRuntimeExceptions;

	public static String ExtractMethodInputPage_validation_emptyMethodName;

	public static String ExtractMethodInputPage_validation_emptyParameterName;

	public static String ExtractMethodWizard_extract_method;

	public static String ExtractSuperTypeAction_label;

	public static String ExtractSuperTypeAction_unavailable;

	public static String ExtractSupertypeMemberPage_add_button_label;

	public static String ExtractSupertypeMemberPage_choose_type_caption;

	public static String ExtractSupertypeMemberPage_choose_type_message;

	public static String ExtractSupertypeMemberPage_create_stubs_label;

	public static String ExtractSupertypeMemberPage_declare_abstract;

	public static String ExtractSupertypeMemberPage_extract;

	public static String ExtractSupertypeMemberPage_extract_supertype;

	public static String ExtractSupertypeMemberPage_name_label;

	public static String ExtractSupertypeMemberPage_no_members_selected;

	public static String ExtractSupertypeMemberPage_page_title;

	public static String ExtractSupertypeMemberPage_remove_button_label;

	public static String ExtractSupertypeMemberPage_types_list_caption;

	public static String ExtractSupertypeMemberPage_use_instanceof_label;

	public static String ExtractSupertypeMemberPage_use_supertype_label;

	public static String ExtractSupertypeWizard_defaultPageTitle;

	public static String ExtractTempAction_extract_temp;

	public static String ExtractTempAction_label;

	public static String ExtractTempInputPage_declare_final;

	public static String ExtractTempInputPage_declare_type_var;

	public static String ExtractTempInputPage_enter_name;

	public static String ExtractTempInputPage_extract_local;

	public static String ExtractTempInputPage_replace_all;

	public static String ExtractTempInputPage_variable_name;

	public static String ExtractTempWizard_defaultPageTitle;

	public static String InferTypeArgumentsAction_dialog_title;

	public static String InferTypeArgumentsAction_label;

	public static String InferTypeArgumentsAction_unavailable;

	public static String InferTypeArgumentsInputPage_description;

	public static String InferTypeArgumentsWizard_assumeCloneSameType;

	public static String InferTypeArgumentsWizard_defaultPageTitle;

	public static String InferTypeArgumentsWizard_leaveUnconstrainedRaw;

	public static String InferTypeArgumentsWizard_lengthyDescription;

	public static String InlineAction_dialog_title;

	public static String InlineAction_Inline;

	public static String InlineAction_select;

	public static String InlineConstantAction_dialog_title;

	public static String InlineConstantAction_inline_Constant;

	public static String InlineConstantAction_no_constant_reference_or_declaration;

	public static String InlineConstantAction_unexpected_exception;

	public static String InlineConstantInputPage_All_references;

	public static String InlineConstantInputPage_Delete_constant;

	public static String InlineConstantInputPage_Inline_constant;

	public static String InlineConstantInputPage_Only_selected;

	public static String InlineConstantWizard_initializer_refers_to_fields;

	public static String InlineConstantWizard_Inline_Constant;

	public static String InlineConstantWizard_message;

	public static String InlineMethodAction_dialog_title;

	public static String InlineMethodAction_inline_Method;

	public static String InlineMethodAction_no_method_invocation_or_declaration_selected;

	public static String InlineMethodAction_unexpected_exception;

	public static String InlineMethodInputPage_all_invocations;

	public static String InlineMethodInputPage_delete_declaration;

	public static String InlineMethodInputPage_description;

	public static String InlineMethodInputPage_inline_method;

	public static String InlineMethodInputPage_only_selected;

	public static String InlineMethodWizard_page_title;

	public static String InlineTempAction_inline_temp;

	public static String InlineTempAction_label;

	public static String InlineTempInputPage_message_multi;

	public static String InlineTempInputPage_message_one;

	public static String InlineTempInputPage_message_zero;

	public static String InlineTempWizard_defaultPageTitle;

	public static String IntroduceFactoryAction_description;

	public static String IntroduceFactoryAction_dialog_title;

	public static String IntroduceFactoryAction_exception;

	public static String IntroduceFactoryAction_label;

	public static String IntroduceFactoryAction_tooltipText;

	public static String IntroduceFactoryAction_use_factory;

	public static String IntroduceFactoryInputPage_browseLabel;

	public static String IntroduceFactoryInputPage_chooseFactoryClass_message;

	public static String IntroduceFactoryInputPage_chooseFactoryClass_title;

	public static String IntroduceFactoryInputPage_factoryClassLabel;

	public static String IntroduceFactoryInputPage_method_name;

	public static String IntroduceFactoryInputPage_name_factory;

	public static String IntroduceFactoryInputPage_protectConstructorLabel;

	public static String IntroduceIndirectionAction_description;

	public static String IntroduceIndirectionAction_dialog_title;

	public static String IntroduceIndirectionAction_title;

	public static String IntroduceIndirectionAction_tooltip;

	public static String IntroduceIndirectionAction_unknown_exception;

	public static String IntroduceIndirectionInputPage_browse;

	public static String IntroduceIndirectionInputPage_declaring_class;

	public static String IntroduceIndirectionInputPage_dialog_choose_declaring_class;

	public static String IntroduceIndirectionInputPage_dialog_choose_declaring_class_long;

	public static String IntroduceIndirectionInputPage_new_method_name;

	public static String IntroduceIndirectionInputPage_update_references;

	public static String IntroduceParameterAction_dialog_title;

	public static String IntroduceParameterAction_label;

	public static String IntroduceParameterInputPage_description;

	public static String IntroduceParameterObjectWizard_classnamefield_label;

	public static String IntroduceParameterObjectWizard_createasnestedclass_radio;

	public static String IntroduceParameterObjectWizard_createastoplevel_radio;

	public static String IntroduceParameterObjectWizard_creategetter_checkbox;

	public static String IntroduceParameterObjectWizard_createsetter_checkbox;

	public static String IntroduceParameterObjectWizard_destination_label;

	public static String IntroduceParameterObjectWizard_dot_not_allowed_error;

	public static String IntroduceParameterObjectWizard_edit_button;

	public static String IntroduceParameterObjectWizard_error_description;

	public static String IntroduceParameterObjectWizard_error_title;

	public static String IntroduceParameterObjectWizard_fieldname_message;

	public static String IntroduceParameterObjectWizard_fieldname_title;

	public static String IntroduceParameterObjectWizard_fields_selection_label;

	public static String IntroduceParameterObjectWizard_type_already_exists_in_package_info;

	public static String IntroduceParameterObjectWizard_method_group;

	public static String IntroduceParameterObjectWizard_moveentryup_button;

	public static String IntroduceParameterObjectWizard_moventrydown_button;

	public static String IntroduceParameterObjectWizard_name_column;

	public static String IntroduceParameterObjectWizard_parameterfield_label;

	public static String IntroduceParameterObjectWizard_parametername_check_alreadyexists;

	public static String IntroduceParameterObjectWizard_parametername_check_atleastoneparameter;

	public static String IntroduceParameterObjectWizard_parametername_check_notunique;

	public static String IntroduceParameterObjectWizard_signaturepreview_label;

	public static String IntroduceParameterObjectWizard_type_column;

	public static String IntroduceParameterObjectWizard_type_group;

	public static String IntroduceParameterObjectWizard_wizardpage_description;

	public static String IntroduceParameterObjectWizard_wizardpage_name;

	public static String IntroduceParameterObjectWizard_wizardpage_title;

	public static String IntroduceParameterWizard_defaultPageTitle;

	public static String IntroduceParameterWizard_parameters;

	public static String JavaStatusContextViewer_no_source_available;

	public static String JavaStatusContextViewer_no_source_found0;

	public static String JavaTypeCompletionProcessor_no_completion;

	public static String ModifyParametersAction_unavailable;

	public static String MoveAction_Move;

	public static String MoveAction_select;

	public static String MoveAction_text;

	public static String MoveInnerToToplnputPage_description;

	public static String MoveInnerToToplnputPage_enter_name;

	public static String MoveInnerToToplnputPage_enter_name_mandatory;

	public static String MoveInnerToToplnputPage_instance_final;

	public static String MoveInnerToToplnputPage_mandatory_info;

	public static String MoveInnerToToplnputPage_optional_info;

	public static String MoveInnerToTopWizard_Move_Inner;

	public static String MoveInstanceMethodAction_dialog_title;

	public static String MoveInstanceMethodAction_Move_Method;

	public static String MoveInstanceMethodAction_No_reference_or_declaration;

	public static String MoveInstanceMethodAction_unexpected_exception;

	public static String MoveInstanceMethodPage_invalid_target;

	public static String MoveInstanceMethodPage_Method_name;

	public static String MoveInstanceMethodPage_Receiver;

	public static String MoveInstanceMethodPage_New_receiver;

	public static String MoveInstanceMethodPage_Target_name;

	public static String MoveInstanceMethodPage_Type;

	public static String MoveInstanceMethodWizard_Move_Method;

	public static String MoveMembersAction_unavailable;

	public static String MoveMembersInputPage_browse;

	public static String MoveMembersInputPage_choose_Type;

	public static String MoveMembersInputPage_descriptionKey_singular;

	public static String MoveMembersInputPage_descriptionKey_plural;

	public static String MoveMembersInputPage_destination_multi;

	public static String MoveMembersInputPage_destination_single;

	public static String MoveMembersInputPage_dialogMessage;

	public static String MoveMembersInputPage_exception;

	public static String MoveMembersInputPage_invalid_name;

	public static String MoveMembersInputPage_Invalid_selection;

	public static String MoveMembersInputPage_move_Member;

	public static String MoveMembersInputPage_no_binary;

	public static String MoveMembersInputPage_not_found;

	public static String MoveMembersWizard_page_title;

	public static String NewTextRefactoringAction_exception;

	public static String OpenRefactoringWizardAction_exception;

	public static String OpenRefactoringWizardAction_refactoring;

	public static String OpenRefactoringWizardAction_unavailable;

	public static String ParameterEditDialog_defaultValue;

	public static String ParameterEditDialog_defaultValue_error;

	public static String ParameterEditDialog_defaultValue_invalid;

	public static String ParameterEditDialog_message;

	public static String ParameterEditDialog_message_new;

	public static String ParameterEditDialog_name;

	public static String ParameterEditDialog_name_error;

	public static String ParameterEditDialog_title;

	public static String ParameterEditDialog_type;

	public static String PromoteTempInputPage_constructors;

	public static String PromoteTempInputPage_Current_method;

	public static String PromoteTempInputPage_declare_final;

	public static String PromoteTempInputPage_declare_static;

	public static String PromoteTempInputPage_description;

	public static String PromoteTempInputPage_Field_declaration;

	public static String PromoteTempInputPage_Field_name;

	public static String PromoteTempInputPage_Initialize;

	public static String PullUpAction_unavailable;

	public static String PullUpInputPage_exception;

	public static String PullUpInputPage_hierarchyLabal_singular;

	public static String PullUpInputPage_hierarchyLabal_plural;

	public static String PullUpInputPage_pull_Up;

	public static String PullUpInputPage_pull_up1;

	public static String PullUpInputPage_see_log;

	public static String PullUpInputPage_select_methods;

	public static String PullUpInputPage_subtypes;

	public static String PullUpInputPage1_Action;

	public static String PullUpInputPage1_Add_Required;

	public static String PullUpInputPage1_Create_stubs;

	public static String PullUpInputPage1_declare_abstract;

	public static String PullUpInputPage1_Edit;

	public static String PullUpInputPage1_Edit_members;

	public static String PullUpInputPage1_label_use_destination;

	public static String PullUpInputPage1_label_use_in_instanceof;

	public static String PullUpInputPage1_Mark_selected_members_singular;

	public static String PullUpInputPage1_Mark_selected_members_plural;

	public static String PullUpInputPage1_Member;

	public static String PullUpInputPage1_page_message;

	public static String PullUpInputPage1_pull_up;

	public static String PullUpInputPage1_Select_destination;

	public static String PullUpInputPage1_Select_members_to_pull_up;

	public static String PullUpInputPage1_Specify_actions;

	public static String PullUpInputPage1_status_line_singular;

	public static String PullUpInputPage1_status_line_plural;

	public static String PullUpInputPage2_Select;

	public static String PullUpInputPage2_Source;

	public static String PullUpWizard_defaultPageTitle;

	public static String PullUpWizard_deselect_all_label;

	public static String PullUpWizard_select_all_label;

	public static String PushDownAction_Push_Down;

	public static String PushDownAction_To_activate;

	public static String PushDownInputPage_Action;

	public static String PushDownInputPage_Add_Required;

	public static String PushDownInputPage_Edit;

	public static String PushDownInputPage_Edit_members;

	public static String PushDownInputPage_Internal_Error;

	public static String PushDownInputPage_leave_abstract;

	public static String PushDownInputPage_Mark_selected_members_singular;

	public static String PushDownInputPage_Mark_selected_members_plural;

	public static String PushDownInputPage_Member;

	public static String PushDownInputPage_push_down;

	public static String PushDownInputPage_Push_Down;

	public static String PushDownInputPage_Select_members_to_push_down;

	public static String PushDownInputPage_Specify_actions;

	public static String PushDownInputPage_status_line_singular;

	public static String PushDownInputPage_status_line_plural;

	public static String PushDownWizard_defaultPageTitle;

	public static String QualifiedNameComponent_patterns_description;

	public static String QualifiedNameComponent_patterns_label;

	public static String RefactorActionGroup_no_refactoring_available;

	public static String RefactoringErrorDialogUtil_okToPerformQuestion;

	public static String RefactoringExecutionHelper_cannot_execute;

	public static String RefactoringExecutionStarter_IntroduceParameterObject_problem_description;

	public static String RefactoringExecutionStarter_IntroduceParameterObject_problem_title;

	public static String RefactoringGroup_modify_Parameters_label;

	public static String RefactoringGroup_move_label;

	public static String RefactoringGroup_pull_Up_label;

	public static String RefactoringStarter_always_save;

	public static String RefactoringStarter_must_save;

	public static String RefactoringStarter_save_all_resources;

	public static String RefactoringStarter_saving;

	public static String RefactoringStarter_unexpected_exception;

	public static String ReferencesInBinaryStatusContextViewer_show_as_search_button;

	public static String ReferencesInBinaryStatusContextViewer_title;

	public static String RenameAction_rename;

	public static String RenameAction_text;

	public static String RenameAction_unavailable;

	public static String RenameCuWizard_defaultPageTitle;

	public static String RenameCuWizard_inputPage_description;

	public static String RenameEnumConstWizard_defaultPageTitle;

	public static String RenameEnumConstWizard_inputPage_description;

	public static String RenameFieldInputWizardPage_getter_label;

	public static String RenameFieldInputWizardPage_rename_getter;

	public static String RenameFieldInputWizardPage_rename_getter_to;

	public static String RenameFieldInputWizardPage_rename_setter;

	public static String RenameFieldInputWizardPage_rename_setter_to;

	public static String RenameFieldInputWizardPage_setter_label;

	public static String RenameFieldWizard_defaultPageTitle;

	public static String RenameFieldWizard_inputPage_description;

	public static String RenameInputWizardPage_new_name;

	public static String RenameInputWizardPage_update_qualified_names;

	public static String RenameInputWizardPage_update_references;

	public static String RenameInputWizardPage_update_textual_matches;

	public static String RenameJavaElementAction_exception;

	public static String RenameJavaElementAction_name;

	public static String RenameJavaElementAction_not_available;

	public static String RenameJavaElementAction_started_rename_in_file;

	public static String RenameJavaProject_defaultPageTitle;

	public static String RenameJavaProject_inputPage_description;

	public static String RenameLocalVariableWizard_defaultPageTitle;

	public static String RenameMethodWizard_defaultPageTitle;

	public static String RenameMethodWizard_inputPage_description;

	public static String RenamePackageWizard_defaultPageTitle;

	public static String RenamePackageWizard_inputPage_description;

	public static String RenamePackageWizard_rename_subpackages;

	public static String RenameRefactoringWizard_internal_error;

	public static String RenameSourceFolder_defaultPageTitle;

	public static String RenameSourceFolder_inputPage_description;

	public static String RenameTypeParameterWizard_defaultPageTitle;

	public static String RenameTypeParameterWizard_inputPage_description;

	public static String RenameTypeWizard_defaultPageTitle;

	public static String RenameTypeWizard_unexpected_exception;

	public static String RenameTypeWizardInputPage_description;

	public static String RenameTypeWizardInputPage_update_similar_elements;

	public static String RenameTypeWizardInputPage_update_similar_elements_configure;

	public static String RenameTypeWizardSimilarElementsOptionsDialog_select_strategy;

	public static String RenameTypeWizardSimilarElementsOptionsDialog_strategy_1;

	public static String RenameTypeWizardSimilarElementsOptionsDialog_strategy_2;

	public static String RenameTypeWizardSimilarElementsOptionsDialog_strategy_3;

	public static String RenameTypeWizardSimilarElementsOptionsDialog_title;

	public static String RenameTypeWizardSimilarElementsOptionsDialog_warning_short_names;

	public static String RenameTypeWizardSimilarElementsPage_change_element_name;

	public static String RenameTypeWizardSimilarElementsPage_change_name;

	public static String RenameTypeWizardSimilarElementsPage_enter_new_name;

	public static String RenameTypeWizardSimilarElementsPage_field_exists;

	public static String RenameTypeWizardSimilarElementsPage_method_exists;

	public static String RenameTypeWizardSimilarElementsPage_name_empty;

	public static String RenameTypeWizardSimilarElementsPage_name_should_start_lowercase;

	public static String RenameTypeWizardSimilarElementsPage_rename_to;

	public static String RenameTypeWizardSimilarElementsPage_restore_defaults;

	public static String RenameTypeWizardSimilarElementsPage_review_similar_elements;

	public static String RenameTypeWizardSimilarElementsPage_select_element_to_view_source;

	public static String ReplaceInvocationsAction_dialog_title;

	public static String ReplaceInvocationsAction_label;

	public static String ReplaceInvocationsAction_unavailable;

	public static String ReplaceInvocationsInputPage_replaceAll;

	public static String ReplaceInvocationsInputPage_replaceInvocationsBy;

	public static String ReplaceInvocationsWizard_title;

	public static String SelfEncapsulateField_sef;

	public static String SelfEncapsulateFieldInputPage_access_Modifiers;

	public static String SelfEncapsulateFieldInputPage_configure_link;

	public static String SelfEncapsulateFieldInputPage_keep_references;

	public static String SelfEncapsulateFieldInputPage_default;

	public static String SelfEncapsulateFieldInputPage_description;

	public static String SelfEncapsulateFieldInputPage_field_access;

	public static String SelfEncapsulateFieldInputPage_first_method;

	public static String SelfEncapsulateFieldInputPage_generateJavadocComment;

	public static String SelfEncapsulateFieldInputPage_getter_name;

	public static String SelfEncapsulateFieldInputPage_no_getter_name;

	public static String SelfEncapsulateFieldInputPage_no_getter_created;

	public static String SelfEncapsulateFieldInputPage_insert_after;

	public static String SelfEncapsulateFieldInputPage_please_choose_to_generate_a_getter_setter;

	public static String SelfEncapsulateFieldInputPage_final_field;

	public static String SelfEncapsulateFieldInputPage_private;

	public static String SelfEncapsulateFieldInputPage_protected;

	public static String SelfEncapsulateFieldInputPage_public;

	public static String SelfEncapsulateFieldInputPage_setter_name;

	public static String SelfEncapsulateFieldInputPage_no_setter_name;

	public static String SelfEncapsulateFieldInputPage_no_setter_created;

	public static String SelfEncapsulateFieldInputPage_use_setter_getter;

	public static String SelfEncapsulateFieldInputPage_usenewgetter_label;

	public static String SelfEncapsulateFieldInputPage_usenewsetter_label;

	public static String SurroundWithTryCatchAction_dialog_title;

	public static String SurroundWithTryMultiCatchAction_dialog_title;

	public static String SurroundWithTryCatchAction_exception;

	public static String SurroundWithTryCatchAction_label;

	public static String SurroundWithTryMultiCatchAction_label;

	public static String SurroundWithTryMultiCatchAction_not17;

	public static String SurroundWithTryResourcesAction_label;

	public static String SurroundWithTryResourcesAction_exception;

	public static String SurroundWithTryResourcesAction_not18;

	public static String SurroundWithTryResourcesAction_dialog_title;

	public static String UseSupertypeAction_to_activate;

	public static String UseSupertypeAction_use_Supertype;

	public static String UseSupertypeInputPage_no_possible_updates;

	public static String UseSupertypeInputPage_No_updates;

	public static String UseSupertypeInputPage_Select_supertype;

	public static String UseSupertypeInputPage_Select_supertype_to_use;

	public static String UseSupertypeInputPage_updates_possible_in_file;

	public static String UseSupertypeInputPage_updates_possible_in_files;

	public static String UseSupertypeInputPage_Use_in_instanceof;

	public static String UseSupertypeWizard_10;

	public static String UseSupertypeWizard_Use_Super_Type_Where_Possible;

	public static String VisibilityControlUtil_Access_modifier;

	public static String VisibilityControlUtil_defa_ult_4;

	public static String SelfEncapsulateFieldInputPage_useexistingsetter_label;

	public static String SelfEncapsulateFieldInputPage_useexistinggetter_label;


	static {
		reloadMessages();
	}

	public static void reloadMessages() {
		NLS.initializeMessages(BUNDLE_NAME, RefactoringMessages.class);
	}

	private RefactoringMessages() {
		// Do not instantiate
	}
}
