package org.eclipse.jst.j2ee.internal.ui;

import org.eclipse.osgi.util.NLS;

public class Messages extends NLS {
	private static final String BUNDLE_NAME = "org.eclipse.jst.j2ee.internal.ui.messages"; //$NON-NLS-1$
	public static String J2EEDependencyPageProvider_0;
	public static String J2EEDependencyPageProvider_1;
	public static String J2EEDependencyPageProvider_2;
	public static String J2EEDependencyPageProvider_3;
	public static String J2EEDependencyPageProvider_4;
	public static String J2EEDependencyPageProvider_5;
	public static String J2EEModuleDependenciesPropertyPage_0;
	public static String J2EEModuleDependenciesPropertyPage_1;
	public static String J2EEModuleDependenciesPropertyPage_2;
	public static String J2EEModuleDependenciesPropertyPage_3;
	public static String J2EEModuleDependenciesPropertyPage_4;
	public static String J2EEModuleDependenciesPropertyPage_5;
	public static String J2EEModuleDependenciesPropertyPage_6;

	static {
		// initialize resource bundle
		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
	}

	private Messages() {
	}
}
