/*******************************************************************************
 * Copyright (c) 2001, 2004 IBM Corporation and others.
 * 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:
 * IBM Corporation - initial API and implementation
 *******************************************************************************/
/*
 * Created on Apr 16, 2003
 *
 */
package org.eclipse.jst.j2ee.internal;

/**
 * These constants are used with the XMLResource
 */
public interface J2EEVersionConstants {
	public int J2EE_1_2_ID = 12;
	public int J2EE_1_3_ID = 13;
	public int J2EE_1_4_ID = 14;
	public int EJB_1_0_ID = 10;	
	public int EJB_1_1_ID = 11;	
	public int EJB_2_0_ID = 20;	
	public int EJB_2_1_ID = 21;	
	public int WEB_2_2_ID = 22;
	public int WEB_2_3_ID = 23;
	public int WEB_2_4_ID = 24;
	public int TAGLIB_1_1_ID = 11;
	public int TAGLIB_1_2_ID = 12;
	public int TAGLIB_2_0_ID = 20;
	public int JSP_1_1_ID = 11;
	public int JSP_1_2_ID = 12;
	public int JSP_2_0_ID = 20;
	public int SERVLET_2_2 = 22;
	public int SERVLET_2_3 = 23;
	public int SERVLET_2_4 = 24;
	public int JCA_1_0_ID = 10;
	public int JCA_1_5_ID = 15;
	public int WEBSERVICES_1_0_ID = 10;
	public int WEBSERVICES_1_1_ID = 11;
	public String J2EE_1_4_TEXT 		= "1.4"; //$NON-NLS-1$
	

	public int VERSION_1_0 = 10;	
	public int VERSION_1_1 = 11;	
	public int VERSION_1_2 = 12;	
	public int VERSION_1_3 = 13;	
	public int VERSION_1_4 = 14;
	public int VERSION_1_5 = 15;
	public int VERSION_2_0 = 20;
	public int VERSION_2_1 = 21;	
	public int VERSION_2_2 = 22;	
	public int VERSION_2_3 = 23;	
	public int VERSION_2_4 = 24;	
	public int VERSION_2_5 = 25; 
	
	public String VERSION_1_0_TEXT		= "1.0"; //$NON-NLS-1$
	public String VERSION_1_1_TEXT    	= "1.1"; //$NON-NLS-1$
	public String VERSION_1_2_TEXT		= "1.2"; //$NON-NLS-1$
	public String VERSION_1_3_TEXT		= "1.3"; //$NON-NLS-1$
	public String VERSION_1_4_TEXT		= "1.4"; //$NON-NLS-1$
	public String VERSION_1_5_TEXT		= "1.5"; //$NON-NLS-1$
	public String VERSION_2_0_TEXT		= "2.0"; //$NON-NLS-1$
	public String VERSION_2_1_TEXT		= "2.1"; //$NON-NLS-1$
	public String VERSION_2_2_TEXT		= "2.2"; //$NON-NLS-1$
	public String VERSION_2_3_TEXT		= "2.3"; //$NON-NLS-1$
	public String VERSION_2_4_TEXT		= "2.4"; //$NON-NLS-1$
	public String VERSION_2_5_TEXT		= "2.5"; //$NON-NLS-1$
					
}
