/*******************************************************************************
 * Copyright (c) 2003, 2009 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 * IBM - Initial API and implementation
 *******************************************************************************/
package org.eclipse.jdt.internal.debug.ui.propertypages;

import org.eclipse.osgi.util.NLS;

public class PropertyPageMessages extends NLS {
	private static final String BUNDLE_NAME = "org.eclipse.jdt.internal.debug.ui.propertypages.PropertyPageMessages";//$NON-NLS-1$

	public static String BreakpointConditionEditor_1;
	public static String ExceptionBreakpointEditor_1;
	public static String ExceptionBreakpointEditor_2;
	public static String ExceptionBreakpointEditor_3;

	public static String ExceptionFilterEditor_5;
	public static String ExceptionFilterEditor_6;
	public static String ExceptionFilterEditor_7;
	public static String ExceptionFilterEditor_8;
	public static String ExceptionFilterEditor_9;
	public static String ExceptionFilterEditor_10;
	public static String ExceptionFilterEditor_11;
	public static String ExceptionFilterEditor_12;
	public static String ExceptionFilterEditor_13;
	public static String ExceptionFilterEditor_14;
	public static String ExceptionFilterEditor_15;
	public static String ExceptionFilterEditor_16;
	public static String ExceptionFilterEditor_18;
	public static String ExceptionFilterEditor_19;
	public static String ExceptionFilterEditor_20;
	public static String ExceptionFilterEditor_22;
	
	public static String JavaBreakpointConditionEditor_0;
	public static String JavaBreakpointConditionEditor_1;
	public static String JavaBreakpointConditionEditor_2;

	public static String JavaBreakpointPage_0;
	public static String JavaBreakpointPage_10;

	public static String JavaBreakpointPage_11;
	public static String JavaBreakpointPage_3;
	public static String JavaBreakpointPage_4;
	public static String JavaBreakpointPage_5;
	public static String JavaBreakpointPage_7;
	public static String JavaBreakpointPage_8;
	public static String JavaBreakpointPage_9;
	public static String JavaExceptionBreakpointPage_5;

	public static String JavaLineBreakpointPage_18;

	public static String JavaLineBreakpointPage_19;

	public static String JavaLineBreakpointPage_2;
	public static String JavaLineBreakpointPage_3;
	public static String JavaLineBreakpointPage_4;
	public static String JavaLineBreakpointPage_5;
	public static String JavaLineBreakpointPage_20;
	public static String JavaLineBreakpointPage_7;
	public static String JavaLineBreakpointPage_8;
	public static String JavaLineBreakpointPage_10;
	public static String JavaLineBreakpointPage_11;
	public static String ThreadFilterEditor_1;
	public static String ThreadFilterEditor_2;
	public static String InstanceFilterEditor_0;

	static {
		// load message values from bundle file
		NLS.initializeMessages(BUNDLE_NAME, PropertyPageMessages.class);
	}

	public static String VMCapabilitiesPropertyPage_0;
	public static String VMCapabilitiesPropertyPage_1;
	public static String VMCapabilitiesPropertyPage_10;
	public static String VMCapabilitiesPropertyPage_12;
	public static String VMCapabilitiesPropertyPage_14;
	public static String VMCapabilitiesPropertyPage_15;
	public static String VMCapabilitiesPropertyPage_16;
	public static String VMCapabilitiesPropertyPage_18;
	public static String VMCapabilitiesPropertyPage_21;
	public static String VMCapabilitiesPropertyPage_24;
	public static String VMCapabilitiesPropertyPage_25;
	public static String VMCapabilitiesPropertyPage_26;

    public static String VMCapabilitiesPropertyPage_27;

    public static String VMCapabilitiesPropertyPage_28;

    public static String VMCapabilitiesPropertyPage_29;
	public static String VMCapabilitiesPropertyPage_3;

    public static String VMCapabilitiesPropertyPage_30;

    public static String VMCapabilitiesPropertyPage_31;
	public static String VMCapabilitiesPropertyPage_4;
	public static String VMCapabilitiesPropertyPage_6;
	public static String VMCapabilitiesPropertyPage_9;
}
