/*******************************************************************************
 * Copyright (c) 2003, 2005 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
 *******************************************************************************/
package org.eclipse.jst.j2ee.internal.validation;

import org.eclipse.jst.j2ee.model.internal.validation.EARMessageConstants;



/**
 * Insert the type's description here. Creation date: (9/10/2001 3:30:22 PM)
 * 
 * @author: Administrator
 */
public interface UIEarMessageConstants extends EARMessageConstants {
	public static final String DOCTYPE_1_2 = "1.2"; //$NON-NLS-1$
	public static final String DOCTYPE_1_3 = "1.3"; //$NON-NLS-1$
	public static final String MISSING_PROJECT_FORMODULE_WARN_ = "MISSING_PROJECT_FORMODULE_WARN_"; //$NON-NLS-1$
	public static final String PROJECT_DOES_NOT_EXIST_WARN_ = "PROJECT_DOES_NOT_EXIST_WARN_"; //$NON-NLS-1$
	public static final String MISSING_WEBNATURE_FORMODULE_WARN_ = "MISSING_WEBNATURE_FORMODULE_WARN_"; //$NON-NLS-1$
	public static final String MISSING_CLIENTNATURE_FORMODULE_WARN_ = "MISSING_CLIENTNATURE_FORMODULE_WARN_"; //$NON-NLS-1$
	public static final String MISSING_EJBNATURE_FORMODULE_WARN_ = "MISSING_EJBNATURE_FORMODULE_WARN_"; //$NON-NLS-1$
	public static final String DUPLICATE_MODULE_FOR_PROJECT_NAME_ERROR_ = "DUPLICATE_MODULE_FOR_PROJECT_NAME_ERROR_"; //$NON-NLS-1$
	public static final String INVALID_MANIFEST_CLASSPATH_ONE_WARN_ = "INVALID_MANIFEST_CLASSPATH_ONE_WARN_"; //$NON-NLS-1$
	public static final String INVALID_MANIFEST_CLASSPATH_TWO_WARN_ = "INVALID_MANIFEST_CLASSPATH_TWO_WARN_"; //$NON-NLS-1$
	public static final String INVALID_CONTEXTROOT_WEBMODULE_WARN_ = "INVALID_CONTEXTROOT_WEBMODULE_WARN_"; //$NON-NLS-1$
	public static final String INVALID_MANIFEST_CLASSPATH_DEPENDENCY_WARN_ = "INVALID_MANIFEST_CLASSPATH_DEPENDENCY_WARN_"; //$NON-NLS-1$
	public static final String INVALID_URI_FOR_MODULE_ERROR_ = "INVALID_URI_FOR_MODULE_ERROR_"; //$NON-NLS-1$
	public static final String PROJECT_IS_CLOSED_WARN_ = "PROJECT_IS_CLOSED_WARN_"; //$NON-NLS-1$
	public static final String INVALID_CASE_FOR_MANIFEST_ERROR_ = "INVALID_CASE_FOR_MANIFEST_ERROR_"; //$NON-NLS-1$
	public static final String MESSAGE_UTIL_URI_NAME_COLLISION_ERROR_ = "MESSAGE_UTIL_URI_NAME_COLLISION_ERROR_"; //$NON-NLS-1$
	public static final String MESSAGE_UTIL_PROJECT_NAME_COLLISION_ERROR_ = "MESSAGE_UTIL_PROJECT_NAME_COLLISION_ERROR_"; //$NON-NLS-1$
	public static final String DUPLICATE_UTILJAR_FOR_PROJECT_NAME_ERROR_ = "DUPLICATE_UTILJAR_FOR_PROJECT_NAME_ERROR_"; //$NON-NLS-1$
	public static final String EAR_INVALID_DOC_TYPE_ERROR_ = "EAR_INVALID_DOC_TYPE_ERROR_"; //$NON-NLS-1$
	public static final String URI_ALREADY_EXISTS_IN_EAR_WARN_ = "URI_ALREADY_EXISTS_IN_EAR_WARN_"; //$NON-NLS-1$
	public static final String PROJECT_SERVER_TARGET_DOES_NOT_MATCH_EAR = "PROJECT_SERVER_TARGET_DOES_NOT_MATCH_EAR"; //$NON-NLS-1$
	public static final String NO_SERVER_TARGET_MODULE_IN_EAR_WITH_SERVER_TARGET = "NO_SERVER_TARGET_MODULE_IN_EAR_WITH_SERVER_TARGET"; //$NON-NLS-1$
	public static final String NO_SERVER_TARGET_ON_EAR_WITH_MODULE_SERVER_TARGETS = "NO_SERVER_TARGET_ON_EAR_WITH_MODULE_SERVER_TARGETS";//$NON-NLS-1$
	public static final String INVALID_EAR_SERVER_TARGET_FOR_14_SPEC_LEVEL = "INVALID_EAR_SERVER_TARGET_FOR_14_SPEC_LEVEL";//$NON-NLS-1$
	public static final String INVALID_MODULE_SERVER_TARGET_FOR_14_SPEC_LEVEL = "INVALID_MODULE_SERVER_TARGET_FOR_14_SPEC_LEVEL";//$NON-NLS-1$

}
