/**********************************************************************
.
. 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
t https://www.eclipse.org/legal/epl-2.0/
t
t SPDX-License-Identifier: EPL-2.0
 * 
 * Contributors: 
 * IBM - Initial API and implementation
 **********************************************************************/
package org.eclipse.ant.internal.ui.datatransfer;

import org.eclipse.osgi.util.NLS;

public class DataTransferMessages extends NLS {
	private static final String BUNDLE_NAME = "org.eclipse.ant.internal.ui.datatransfer.DataTransferMessages";//$NON-NLS-1$

	public static String AntNewJavaProjectPage_23;

	public static String AntNewJavaProjectPage_24;

	public static String AntNewJavaProjectWizard_0;
	public static String AntBuildfileExportWizard_0;
	public static String AntBuildfileExportPage_0;
	public static String AntBuildfileExportPage_10;
	public static String AntBuildfileExportPage_11;
	public static String AntBuildfileExportPage_12;
	public static String AntBuildfileExportPage_13;
	public static String AntBuildfileExportPage_14;
	public static String AntBuildfileExportPage_15;
	public static String AntBuildfileExportPage_16;
	public static String AntBuildfileExportPage_17;
	public static String AntBuildfileExportPage_1;
	public static String AntBuildfileExportPage_2;
	public static String AntBuildfileExportPage_3;
	public static String AntBuildfileExportPage_4;
	public static String AntNewJavaProjectPage_9;
	public static String AntNewJavaProjectPage_0;
	public static String AntNewJavaProjectPage_10;
	public static String AntNewJavaProjectPage_11;
	public static String AntNewJavaProjectPage_12;
	public static String AntNewJavaProjectPage_13;
	public static String AntNewJavaProjectPage_14;
	public static String AntNewJavaProjectPage_15;
	public static String AntNewJavaProjectPage_16;
	public static String AntNewJavaProjectPage_17;
	public static String AntNewJavaProjectPage_18;
	public static String AntNewJavaProjectPage_19;
	public static String AntNewJavaProjectPage_1;
	public static String AntNewJavaProjectPage_21;
	public static String AntNewJavaProjectPage_22;
	public static String AntNewJavaProjectPage_2;
	public static String AntNewJavaProjectPage_3;
	public static String ProjectCreator_0;
	public static String JavacTableLabelProvider_0;
	public static String SourceAnalyzer_0;
	public static String SourceAnalyzer_1;
	public static String SourceAnalyzer_2;
	public static String SourceAnalyzer_3;

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

	public static String AntBuildfileExportPage_18;

	public static String AntBuildfileExportPage_19;

	public static String AntBuildfileExportPage_20;

	public static String AntBuildfileExportPage_creating_build_files;

	public static String AntBuildfileExportPage_cycle_error_in_project;

	public static String AntBuildfileExportPage_cycle_error_in_projects;

	public static String AntBuildfileExportPage_cycle_warning_in_project;

	public static String AntBuildfileExportPage_cycle_warning_in_projects;

	public static String BuildFileCreator_generating_buildfile_for;
}