/*******************************************************************************
 * Copyright (c) 2000, 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.console;

import org.eclipse.osgi.util.NLS;

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

	public static String AutoFormatSettingAction_0;

	public static String AutoFormatSettingAction_1;

	public static String JavaStackTraceConsole_1;

	public static String JavaStackTraceHyperlink_2;

	public static String JavaStackTraceHyperlink_3;

	public static String JavaStackTraceHyperlink_Information_1;
	public static String JavaStackTraceHyperlink_Error;
	public static String JavaStackTraceConsoleFactory_0;
	public static String JavaStackTraceConsole_0;
	public static String JavaStackTraceConsole_2;
	public static String JavaStackTraceHyperlink_Source_not_found_for__0__2;
	public static String JavaStackTraceHyperlink_Unable_to_parse_type_name_from_hyperlink__5;
	public static String JavaStackTraceHyperlink_Unable_to_parse_line_number_from_hyperlink__6;
	public static String JavaStackTraceHyperlink_Unable_to_retrieve_hyperlink_text__8;

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

	public static String JavaStackTraceHyperlink_0;

	public static String JavaStackTraceHyperlink_1;
}
