/*******************************************************************************
 * Copyright (c) 2009, 2019 Mia-Software and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v2.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v20.html
 *
 * Contributors:
 *    Gregoire DUPE (Mia-Software)
 *    Nicolas Bros (Mia-Software) - Bug 335003 - [Discoverer] : Existing Discoverers Refactoring based on new framework
 *******************************************************************************/
package org.eclipse.modisco.java.discoverer.benchmark;

import org.eclipse.osgi.util.NLS;

/**
 * @author gdupe
 *
 */
public class Messages extends NLS {
	private static final String BUNDLE_NAME = "org.eclipse.modisco.java.discoverer.benchmark.messages"; //$NON-NLS-1$
	public static String Report_0;
	public static String Report_12;
	public static String Report_17;
	public static String Report_24;
	public static String Report_28;
	public static String Report_30;
	public static String Report_32;
	public static String serverDescription;
	public static String JavaDiscovererCDO_1;
	public static String JavaDiscovererCDO_10;
	public static String JavaDiscovererCDO_11;
	public static String JavaDiscovererCDO_12;
	public static String JavaDiscovererCDO_13;
	public static String JavaDiscovererCDO_18;
	public static String JavaDiscovererCDO_2;
	public static String JavaDiscovererCDO_22;
	public static String JavaDiscovererCDO_3;
	public static String JavaDiscovererCDO_4;
	public static String JavaDiscovererCDO_5;
	public static String JavaDiscovererCDO_6;
	public static String JavaDiscovererCDO_7;
	public static String JavaDiscovererCDO_8;
	public static String JavaDiscovererCDO_9;
	public static String JavaDiscovererCDOWithoutTrace_0;
	public static String JavaDiscovererCDONoUsages_0;
	public static String JavaDiscoverEMFNoUsages_0;
	public static String JavaDiscoverIncrementalClassicalEMF_0;
	public static String JavaDiscoverIncrementalEMF_0;

	static {
		// initialize resource bundle
		NLS.initializeMessages(Messages.BUNDLE_NAME, Messages.class);
	}

	private Messages() {
		// Nothing
	}
}
