/*******************************************************************************
 * Copyright (c) 2016 IBM Corporation and others.
 *
 * 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 available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.ant.internal.launching.debug;

/**
 * Common constants.
 */
public interface IAntCoreConstants {

	// default values
	public static final String DEFAULT_BUILD_FILENAME = "build.xml"; //$NON-NLS-1$

	// preferences
	public static final String PREFERENCE_TASKS = "tasks"; //$NON-NLS-1$
	public static final String PREFERENCE_TYPES = "types"; //$NON-NLS-1$

	public static final String PREFIX_TASK = "task."; //$NON-NLS-1$
	public static final String PREFIX_TYPE = "type."; //$NON-NLS-1$

	/**
	 * Preferences
	 * 
	 * @since 3.0
	 */
	public static final String PREFERENCE_ANT_HOME_ENTRIES = "ant_home_entries"; //$NON-NLS-1$
	public static final String PREFERENCE_ADDITIONAL_ENTRIES = "additional_entries"; //$NON-NLS-1$

	public static final String PREFERENCE_CLASSPATH_CHANGED = "classpath_changed"; //$NON-NLS-1$

	/**
	 * Preferences
	 * 
	 * @since 2.1
	 */
	public static final String PREFERENCE_ANT_HOME = "ant_home"; //$NON-NLS-1$
	public static final String PREFERENCE_PROPERTIES = "properties"; //$NON-NLS-1$
	public static final String PREFERENCE_PROPERTY_FILES = "propertyfiles"; //$NON-NLS-1$
	public static final String PREFIX_PROPERTY = "property."; //$NON-NLS-1$

	/**
	 * Constant representing the word 'id' <br>
	 * <br>
	 * Value is: <code>id</code>
	 * 
	 * @since 3.2.500
	 */
	public static final String ID = "id"; //$NON-NLS-1$

	/**
	 * Constant representing the word 'augment' <br>
	 * <br>
	 * Value is: <code>augment</code>
	 * 
	 * @since 3.2.500
	 */
	public static final String AUGMENT = "augment"; //$NON-NLS-1$

	/**
	 * Constant for the word 'default' <br>
	 * <br>
	 * Value is: <code>default</code>
	 * 
	 * @since org.eclipse.ant.core 3.2.200
	 */
	public static final String DEFAULT = "default"; //$NON-NLS-1$

	/**
	 * Constant for the word 'dir' <br>
	 * <br>
	 * Value is: <code>dir</code>
	 * 
	 * @since org.eclipse.ant.core 3.2.200
	 */
	public static final String DIR = "dir"; //$NON-NLS-1$

	/**
	 * Constant for the empty {@link String}
	 * 
	 * @since org.eclipse.ant.core 3.2.200
	 */
	public static final String EMPTY_STRING = ""; //$NON-NLS-1$

	/**
	 * Constant for the word 'file' <br>
	 * <br>
	 * Value is: <code>file</code>
	 * 
	 * @since org.eclipse.ant.core 3.2.200
	 */
	public static final String FILE = "file"; //$NON-NLS-1$

	/**
	 * Constant representing a file URL protocol <br>
	 * <br>
	 * Value is: <code>file:</code>
	 * 
	 * @since org.eclipse.ant.core 3.2.200
	 */
	public static final String FILE_PROTOCOL = "file:"; //$NON-NLS-1$

	/**
	 * Constant for the word 'description' <br>
	 * <br>
	 * Value is: <code>description</code>
	 * 
	 * @since org.eclipse.ant.core 3.2.200
	 */
	public static final String DESCRIPTION = "description"; //$NON-NLS-1$

	/**
	 * Constant for the encoding <code>UTF-8</code> <br>
	 * <br>
	 * Value is: <code>UTF-8</code>
	 * 
	 * @since org.eclipse.ant.core 3.3.0
	 */
	public static final String UTF_8 = "UTF-8"; //$NON-NLS-1$

	/**
	 * The name of the XML build file extension. <br>
	 * <br>
	 * Value is: <code>xml</code>
	 * 
	 * @since 3.8
	 */
	public static final String XML_EXTENSION = "xml"; //$NON-NLS-1$

	/**
	 * The name of the target vector property used by the Eclipse executor <br>
	 * <br>
	 * Value is: <code>eclipse.ant.targetVector</code>
	 * 
	 * @since 3.3.0
	 */
	public static final String TARGET_VECTOR_NAME = "eclipse.ant.targetVector"; //$NON-NLS-1$
}
