package org.eclipse.ptp.rdt.server.dstore.messages;

import org.eclipse.osgi.util.NLS;

public class Messages extends NLS {
	private static final String BUNDLE_NAME = "org.eclipse.ptp.rdt.server.dstore.messages.messages"; //$NON-NLS-1$
	public static String DStoreIndexWidget_0;
	public static String DStoreIndexWidget_1;
	public static String DStoreServer_0;
	public static String DStoreServer_1;
	public static String DStoreServer_2;
	public static String DStoreServer_3;
	public static String RemoteToolsCIndexServiceProvider_0;
	public static String RemoteToolsCIndexServiceProviderContributer_0;
	public static String RemoteToolsCIndexServiceProviderContributer_1;
	public static String RemoteToolsCIndexServiceProviderContributer_2;
	public static String RemoteToolsCIndexServiceProviderContributer_3;
	static {
		// initialize resource bundle
		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
	}

	private Messages() {
	}
}
