/*******************************************************************************
 * Copyright (c) 2000, 2005 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.compare.examples.xml;

import org.eclipse.osgi.util.NLS;

public final class XMLCompareMessages extends NLS {

	private static final String BUNDLE_NAME = "org.eclipse.compare.examples.xml.xmlcompare";//$NON-NLS-1$

	private XMLCompareMessages() {
		// Do not instantiate
	}

	public static String XMLStructureCreator_pluginname;
	public static String XMLStructureCreator_unordered;
	public static String XMLStructureCreator_ordered;
	public static String XMLStructureCreator_idmap_unordered;
	public static String XMLStructureCreator_id_map_scheme;
	public static String XMLStructureCreator_body;
	public static String ChooseMatcherDropDownAction_text;
	public static String ChooseMatcherDropDownAction_tooltip;
	public static String XMLComparePreference_idtype_attribute;
	public static String XMLComparePreference_idtype_child_body;
	public static String XMLComparePreference_topTableLabel;
	public static String XMLComparePreference_topTableColumn1;
	public static String XMLComparePreference_topTableColumn2;
	public static String XMLComparePreference_topTableColumn2internal;
	public static String XMLComparePreference_topTableColumn2user;
	public static String XMLComparePreference_topTableColumn3;
	public static String XMLComparePreference_topAdd;
	public static String XMLComparePreference_topRename;
	public static String XMLComparePreference_topRemove;
	public static String XMLComparePreference_topEdit;
	public static String XMLComparePreference_middleTableColumn1;
	public static String XMLComparePreference_middleTableColumn2;
	public static String XMLComparePreference_middleTableColumn3;
	public static String XMLComparePreference_middleTableColumn4;
	public static String XMLComparePreference_middleNew;
	public static String XMLComparePreference_middleEdit;
	public static String XMLComparePreference_middleRemove;
	public static String XMLComparePreference_middleTableLabel;
	public static String XMLComparePreference_bottomTableLabel;
	public static String XMLComparePreference_bottomTableColumn1;
	public static String XMLComparePreference_bottomTableColumn2;
	public static String XMLComparePreference_bottomNew;
	public static String XMLComparePreference_bottomEdit;
	public static String XMLComparePreference_bottomRemove;
	public static String XMLCompareAddIdMapDialog_editTitle;
	public static String XMLCompareAddIdMapDialog_newTitle;
	public static String XMLCompareAddIdMapDialog_label;
	public static String XMLCompareAddIdMapDialog_extlabel;
	public static String XMLCompareAddIdMapDialog_error_noname;
	public static String XMLCompareAddIdMapDialog_error_invalidname;
	public static String XMLCompareAddIdMapDialog_error_idmapExists;
	public static String XMLCompareAddIdMapDialog_error_extfullstop;
	public static String XMLCompareAddIdMapDialog_error_extExists;
	public static String XMLCompareEditCopyIdMapDialog_title;
	public static String XMLCompareEditCopyIdMapDialog_comment;
	public static String XMLCompareEditCopyIdMapDialog_label;
	public static String XMLCompareEditCopyIdMapDialog_error_noname;
	public static String XMLCompareEditCopyIdMapDialog_error_invalidname;
	public static String XMLCompareEditCopyIdMapDialog_error_nameExists;
	public static String XMLCompareEditMappingDialog_editTitle;
	public static String XMLCompareEditMappingDialog_newTitle;
	public static String XMLCompareEditMappingDialog_element;
	public static String XMLCompareEditMappingDialog_signature;
	public static String XMLCompareEditMappingDialog_idattribute;
	public static String XMLCompareEditMappingDialog_idtype;
	public static String XMLCompareEditMappingDialog_idtype_tooltip;
	public static String XMLCompareEditMappingDialog_idtype_attribute_tooltip;
	public static String XMLCompareEditMappingDialog_idtype_childbody_tooltip;
	public static String XMLCompareEditMappingDialog_error_noname;
	public static String XMLCompareEditMappingDialog_error_invalidname;
	public static String XMLCompareEditMappingDialog_error_mappingExists;
	public static String XMLCompareEditMappingDialog_error_invalidsignature;
	public static String XMLCompareEditMappingDialog_error_invalididattribute;
	public static String XMLCompareEditOrderedDialog_newTitle;
	public static String XMLCompareEditOrderedDialog_editTitle;
	public static String XMLCompareEditOrderedDialog_error_orderedExists;
	public static String XMLStructureViewer_newtask;
	public static String XMLStructureViewer_action_notUserIdMap;
	public static String XMLStructureViewer_action_setId_text1;
	public static String XMLStructureViewer_action_setId_text2;
	public static String XMLStructureViewer_action_setId_text3;
	public static String XMLStructureViewer_action_setOrdered_exists;
	public static String XMLStructureViewer_action_setOrdered;
	public static String XMLStructureViewer_matching_beginTask;

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