/*******************************************************************************
 * Copyright (c) 2000, 2008 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.update.internal.configurator;

import org.eclipse.osgi.util.NLS;

public final class Messages extends NLS {

	private static final String BUNDLE_NAME = "org.eclipse.update.internal.configurator.messages";//$NON-NLS-1$

	private Messages() {
		// Do not instantiate
	}

	public static String cfig_unableToLoad_noURL;
	public static String cfig_unableToSave_noURL;
	public static String cfig_unableToSave;
	public static String InstalledSiteParser_UnableToCreateURL;
	public static String InstalledSiteParser_UnableToCreateURLForFile;
	public static String InstalledSiteParser_ErrorParsingFile;
	public static String InstalledSiteParser_ErrorAccessing;
	public static String InstalledSiteParser_date;
	public static String BundleManifest_noVersion;
	public static String FeatureParser_IdOrVersionInvalid;
	public static String BundleGroupProvider;
	public static String ConfigurationActivator_initialize;
	public static String ConfigurationActivator_createConfig;
	public static String ConfigurationParser_cannotLoadSharedInstall;
	public static String PluginEntry_versionError;
	public static String IniFileReader_MissingDesc;
	public static String IniFileReader_OpenINIError;
	public static String IniFileReader_ReadIniError;
	public static String IniFileReader_ReadPropError;
	public static String IniFileReader_ReadMapError;
	public static String SiteEntry_computePluginStamp;
	public static String SiteEntry_cannotFindFeatureInDir;
	public static String SiteEntry_duplicateFeature;
	public static String SiteEntry_pluginsDir;
	public static String PlatformConfiguration_expectingPlatformXMLorDirectory;
	public static String PlatformConfiguration_cannotBackupConfig;
	public static String PlatformConfiguration_cannotCloseStream;
	public static String PlatformConfiguration_cannotRenameTempFile;
	public static String PlatformConfiguration_cannotLoadConfig;
	public static String PlatformConfiguration_cannotLoadDefaultSite;
	public static String PlatformConfiguration_cannotFindConfigFile;
	public static String PlatformConfiguration_cannotSaveNonExistingConfig;
	public static String PluginParser_plugin_no_id;
	public static String PluginParser_plugin_no_version;

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

	public static String XMLPrintHandler_unsupportedNodeType;
}