/*******************************************************************************
 * Copyright (c) 2007 Chase Technology Ltd - http://www.chasetechnology.co.uk
 * 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:
 *     Doug Satchwell (Chase Technology Ltd) - initial API and implementation
 *******************************************************************************/
package org.eclipse.wst.xsl.jaxp.debug.ui.internal.tabs.processor;

import org.eclipse.osgi.util.NLS;

class ProcessorMessages extends NLS
{
	private static final String BUNDLE_NAME = "org.eclipse.wst.xsl.jaxp.debug.ui.internal.tabs.processor.ProcessorMessages"; //$NON-NLS-1$

	public static String ProcessorBlock_0;
	public static String ProcessorBlock_1;
	public static String ProcessorBlock_2;
	public static String ProcessorBlock_4;
	public static String ProcessorBlock_6;
	public static String ProcessorBlock_7;
	public static String ProcessorsComboBlock_1;
	public static String ProcessorDetailsDialog_Title;
	public static String ProcessorDetailsDialog_installName;
	public static String ProcessorDetailsDialog_installType;
	public static String ProcessorDetailsDialog_installClasspath;

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

}
