package org.eclipse.papyrus.uml.diagram.clazz.lf.autosizeableclasses.messages;

import org.eclipse.osgi.util.NLS;

public class Messages extends NLS {
	private static final String BUNDLE_NAME = "org.eclipse.papyrus.uml.diagram.clazz.lf.autosizeableclasses.messages.messages"; //$NON-NLS-1$
	public static String Activator_CannotBeCastedIn;
	public static String Activator_InMethod;
	public static String Activator_IsNullInMethod;
	public static String Activator_Parameter;
	public static String PreferencePage_CompartmentOption;
	public static String PreferencePage_SizeOption;
	public static String PreferencePage_UseOption;
	static {
		// initialize resource bundle
		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
	}

	private Messages() {
	}
}
