/*******************************************************************************
 * Copyright (c) 2003, 2019 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 - 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 ExceptionBreakpointEditor_recurrence_label;
	public static String ExceptionBreakpointEditor_recurrence_always;
	public static String ExceptionBreakpointEditor_recurrence_onlyOnce;
	public static String ExceptionBreakpointEditor_recurrence_unconfigured;

	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 JavaBreakpointConditionEditor_choosePreviousCondition;
	public static String JavaBreakpointConditionEditor_historySeparator;

	public static String JavaBreakpointPage_0;
	public static String JavaBreakpointPage_10;

	public static String JavaBreakpointPage_11;
	public static String JavaBreakpointPage_12;
	public static String JavaBreakpointPage_13;
	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;

	public static String JavaVariableDetailsPane_choosePreviousExpression;
	public static String JavaVariableDetailsPane_description;
	public static String JavaVariableDetailsPane_historySeparator;
	public static String JavaVariableDetailsPane_name;
	public static String JavaVariableDetailsPane_settings;


	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;
}
