/*******************************************************************************
 * Copyright (c) 2000, 2007 IBM Corporation and others.
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 * 
 * SPDX-License-Identifier: EPL-2.0
 *
 
 *******************************************************************************/
package org.eclipse.dltk.javascript.internal.ui.refactoring;

import org.eclipse.osgi.util.NLS;

public final class RefactoringMessages extends NLS {

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

	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_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_not_possible;

	public static String ConvertNestedToTopAction_Refactoring;

	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;

	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 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_not_possible;

	public static String ExtractInterfaceAction_Refactoring;

	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_12;

	public static String ExtractInterfaceWizard_abstract_label;

	public static String ExtractInterfaceWizard_Extract_Interface;

	public static String ExtractInterfaceWizard_generate_comments;

	public static String ExtractInterfaceWizard_public_label;

	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_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_enter_name;

	public static String ExtractTempInputPage_exception;

	public static String ExtractTempInputPage_extract_local;

	public static String ExtractTempInputPage_replace_all;

	public static String ExtractTempInputPage_signature_preview;

	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;

	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;

	public static String InlineMethodInputPage_only_selected;

	public static String InlineMethodInputPage_inline_method;

	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 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_select_declaring_class;

	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 IntroduceParameterWizard_defaultPageTitle;

	public static String IntroduceParameterWizard_parameters;

	public static String ScriptStatusContextViewer_no_source_available;

	public static String ScriptStatusContextViewer_no_source_found0;

	public static String ScriptTypeCompletionProcessor_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_Create_button_name;

	public static String MoveInstanceMethodPage_Deprecate_button_name;

	public static String MoveInstanceMethodPage_invalid_target;

	public static String MoveInstanceMethodPage_Method_name;

	public static String MoveInstanceMethodPage_Name;

	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_error_message;

	public static String MoveMembersAction_error_title;

	public static String MoveMembersAction_unavailable;

	public static String MoveMembersInputPage_browse;

	public static String MoveMembersInputPage_choose_Type;

	public static String MoveMembersInputPage_descriptionKey;

	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_internal_error;

	public static String MoveMembersInputPage_invalid_name;

	public static String MoveMembersInputPage_Invalid_selection;

	public static String MoveMembersInputPage_lowerListLabel;

	public static String MoveMembersInputPage_move;

	public static String MoveMembersInputPage_move_Member;

	public static String MoveMembersInputPage_no_binary;

	public static String MoveMembersInputPage_not_found;

	public static String MoveMembersInputPage_upperListLabel;

	public static String MoveMembersWizard_page_title;

	public static String NewTextRefactoringAction_exception;

	public static String OpenRefactoringWizardAction_disabled;

	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 ParameterEditDialog_type_error;

	public static String ParameterEditDialog_type_invalid;

	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;

	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;

	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;

	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_not_possible;

	public static String PushDownAction_Push_Down;

	public static String PushDownAction_Refactoring;

	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;

	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;

	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 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 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 RenameScriptElementAction_exception;

	public static String RenameScriptElementAction_name;

	public static String RenameScriptElementAction_not_available;

	public static String RenameScriptProject_defaultPageTitle;

	public static String RenameScriptProject_inputPage_description;

	public static String RenameLocalVariableWizard_defaultPageTitle;

	public static String RenameLocalVariableWizard_inputPage_description;

	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 RenameResourceWizard_defaultPageTitle;

	public static String RenameResourceWizard_inputPage_description;

	public static String RenameSourceFolder_defaultPageTitle;

	public static String RenameSourceFolder_inputPage_description;

	public static String RenameTempAction_exception;

	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_field_access;

	public static String SelfEncapsulateField_keep_references;

	public static String SelfEncapsulateField_sef;

	public static String SelfEncapsulateField_use_setter_getter;

	public static String SelfEncapsulateFieldInputPage_access_Modifiers;

	public static String SelfEncapsulateFieldInputPage_default;

	public static String SelfEncapsulateFieldInputPage_description;

	public static String SelfEncapsulateFieldInputPage_first_method;

	public static String SelfEncapsulateFieldInputPage_generateScriptdocComment;

	public static String SelfEncapsulateFieldInputPage_getter_name;

	public static String SelfEncapsulateFieldInputPage_insert_after;

	public static String SelfEncapsulateFieldInputPage_private;

	public static String SelfEncapsulateFieldInputPage_protected;

	public static String SelfEncapsulateFieldInputPage_public;

	public static String SelfEncapsulateFieldInputPage_setter_name;

	public static String SurroundWithTryCatchAction_dialog_title;

	public static String SurroundWithTryCatchAction_exception;

	public static String SurroundWithTryCatchAction_label;

	public static String SurroundWithTryCatchAction_no_exceptions;

	public static String UseSupertypeAction_not_possible;

	public static String UseSupertypeAction_Refactoring;

	public static String UseSupertypeAction_to_activate;

	public static String UseSupertypeAction_use_Supertype;

	public static String UseSupertypeInputPage_Internal_Error;

	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 UseSupertypeInputPage_Use_Supertype;

	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 VisibilityControlUtil_final;

	public static String VisibilityControlUtil_synchronized;

	static {
		reloadMessages();
	}

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

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