/*******************************************************************************
 * Copyright (c) 2000, 2011 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 - Initial API and implementation
 ******************************************************************************/
package org.eclipse.pde.internal.build;

/**
 * XML template constants.
 */
public interface IXMLConstants {

	// general
	public static final String PROPERTY_ASSIGNMENT_PREFIX = "${"; //$NON-NLS-1$
	public static final String MACRO_ASSIGNMENT_PREFIX = "@{"; //$NON-NLS-1$
	public static final String PROPERTY_ASSIGNMENT_SUFFIX = "}"; //$NON-NLS-1$
	public static final String JDT_COMPILER_ADAPTER = "org.eclipse.jdt.core.JDTCompilerAdapter"; //$NON-NLS-1$

	// element description variables (used in files like plugin.xml, e.g. $ws$)
	public static final String DESCRIPTION_VARIABLE_NL = "$nl$"; //$NON-NLS-1$
	public static final String DESCRIPTION_VARIABLE_OS = "$os$"; //$NON-NLS-1$
	public static final String DESCRIPTION_VARIABLE_WS = "$ws$"; //$NON-NLS-1$
	public static final String DESCRIPTION_VARIABLE_ARCH = "$arch$"; //$NON-NLS-1$ 

	// targets
	public static final String TARGET_ALL_CHILDREN = "all.children"; //$NON-NLS-1$
	public static final String TARGET_ALL_FRAGMENTS = "all.fragments"; //$NON-NLS-1$
	public static final String TARGET_ALL_PLUGINS = "all.plugins"; //$NON-NLS-1$
	public static final String TARGET_BUILD_JARS = "build.jars"; //$NON-NLS-1$
	public static final String TARGET_BUILD_SOURCES = "build.sources"; //$NON-NLS-1$
	public static final String TARGET_BUILD_UPDATE_JAR = "build.update.jar"; //$NON-NLS-1$
	public static final String TARGET_BUILD_ZIPS = "build.zips"; //$NON-NLS-1$
	public static final String TARGET_CHILDREN = "children"; //$NON-NLS-1$
	public static final String TARGET_CLEAN = "clean"; //$NON-NLS-1$
	public static final String TARGET_FETCH = "fetch"; //$NON-NLS-1$
	public static final String TARGET_API_GENERATION = "apitools.generation"; //$NON-NLS-1$
	public static final String TARGET_GATHER_BIN_PARTS = "gather.bin.parts"; //$NON-NLS-1$
	public static final String TARGET_P2_SYNCH_CONTEXT = "p2.synch.context"; //$NON-NLS-1$
	public static final String TARGET_P2_COMPATIBILITY_GATHER_EXECUTABLE = "p2.compatibility.gather.executable"; //$NON-NLS-1$
	public static final String TARGET_P2_CONTEXT_EXISTS = "p2.context.exists"; //$NON-NLS-1$
	public static final String TARGET_PUBLISH_BIN_PARTS = "publish.bin.parts"; //$NON-NLS-1$
	public static final String TARGET_GATHER_LOGS = "gather.logs"; //$NON-NLS-1$
	public static final String TARGET_GATHER_SOURCES = "gather.sources"; //$NON-NLS-1$
	public static final String TARGET_GATHER_INDIVIDUAL_SOURCES = "gather.individual.sources"; //$NON-NLS-1$
	public static final String TARGET_JAR_PROCESSING = "jar.processing"; //$NON-NLS-1$
	public static final String TARGET_ASSEMBLE_ARCHIVE = "assemble.archive"; //$NON-NLS-1$
	public static final String TARGET_ASSEMBLE_ARCHIVE_CONDITION = "assemble.archive.condition"; //$NON-NLS-1$
	public static final String TARGET_CLEANUP_ASSEMBLY = "cleanup.assembly"; //$NON-NLS-1$
	public static final String TARGET_COPY_SRC_INCLUDES = "copy.src.includes"; //$NON-NLS-1$
	public static final String TARGET_NESTED_JARS = ".nestedJars"; //$NON-NLS-1$
	public static final String TARGET_INIT = "init"; //$NON-NLS-1$
	public static final String TARGET_MAIN = "main"; //$NON-NLS-1$
	public static final String TARGET_GZIP_RESULTS = "gzipResults"; //$NON-NLS-1$
	public static final String TARGET_PROPERTIES = "properties"; //$NON-NLS-1$
	public static final String TARGET_REFRESH = "refresh"; //$NON-NLS-1$
	public static final String TARGET_ZIP_DISTRIBUTION = "zip.distribution"; //$NON-NLS-1$
	public static final String TARGET_ZIP_LOGS = "zip.logs"; //$NON-NLS-1$
	public static final String TARGET_ZIP_PLUGIN = "zip.plugin"; //$NON-NLS-1$
	public static final String TARGET_ZIP_SOURCES = "zip.sources"; //$NON-NLS-1$
	public static final String TARGET_UPDATE_FEATURE_FILE = "update.feature"; //$NON-NLS-1$
	public static final String TARGET_ALL_FEATURES = "all.features"; //$NON-NLS-1$
	public static final String TARGET_FETCH_ELEMENT = "fetch.element"; //$NON-NLS-1$
	public static final String TARGET_FETCH_PLUGINS = "fetch.plugins"; //$NON-NLS-1$
	public static final String TARGET_FETCH_RECURSIVELY = "fetch.recursively"; //$NON-NLS-1$
	public static final String TARGET_EFFECTIVE_FETCH = "effectiveFetch"; //$NON-NLS-1$
	public static final String TARGET_JARUP = "jarUp"; //$NON-NLS-1$
	public static final String TARGET_JARING = "jarIng"; //$NON-NLS-1$
	public static final String TARGET_JARSIGNING = "jarSigning"; //$NON-NLS-1$
	public static final String TARGET_ROOTFILES_PREFIX = "rootFiles"; //$NON-NLS-1$
	public static final String TARGET_ROOT_TARGET = "rootTarget"; //$NON-NLS-1$
	public static final String TARGET_CUSTOM_ASSEMBLY = "customAssembly"; //$NON-NLS-1$
	public static final String TARGET_P2_METADATA = "generate.p2.metadata"; //$NON-NLS-1$
	public static final String TARGET_P2_REPLACE_PRODUCT = "replace.p2.product"; //$NON-NLS-1$
	public static final String TARGET_P2_SIGN_REPO = "sign.p2.repository"; //$NON-NLS-1$
	public static final String TARGET_RUN_DIRECTOR = "runDirector"; //$NON-NLS-1$
	public static final String TARGET_RUN_DIRECTOR_CONDITION = "runDirector.condition"; //$NON-NLS-1$
	public static final String TARGET_MIRROR_ARCHIVE = "mirrorArchive"; //$NON-NLS-1$
	public static final String TARGET_MIRROR_PRODUCT = "mirrorProduct"; //$NON-NLS-1$
	public static final String TARGET_CHECK_COMPILATION_RESULTS = "checkCompilationResults"; //$NON-NLS-1$

	// properties
	public static final String PROPERTY_ARCH = "arch"; //$NON-NLS-1$
	public static final String PROPERTY_BASE_ARCH = "basearch"; //$NON-NLS-1$
	public static final String PROPERTY_BASEDIR = "basedir"; //$NON-NLS-1$
	public static final String PROPERTY_BOOTCLASSPATH = "bootclasspath"; //$NON-NLS-1$
	public static final String PROPERTY_BUILD_COMPILER = "build.compiler"; //$NON-NLS-1$
	public static final String PROPERTY_BUILD_DIRECTORY = "buildDirectory"; //$NON-NLS-1$
	public static final String PROPERTY_BUILD_ID = "build.id"; //$NON-NLS-1$
	public static final String PROPERTY_BUILD_QUALIFIER = "build.qualifier"; //$NON-NLS-1$
	public static final String PROPERTY_BUILD_RESULT_FOLDER = "build.result.folder"; //$NON-NLS-1$
	public static final String PROPERTY_BUILD_TYPE = "build.type"; //$NON-NLS-1$
	public static final String PROPERTY_DESTINATION_TEMP_FOLDER = "destination.temp.folder"; //$NON-NLS-1$
	public static final String PROPERTY_SOURCE_DESTINATION_FOLDER = "source.destination.folder"; //$NON-NLS-1$
	public static final String PROPERTY_ECLIPSE_RUNNING = "eclipse.running"; //$NON-NLS-1$
	public static final String PROPERTY_FEATURE = "feature"; //$NON-NLS-1$
	public static final String PROPERTY_ECLIPSE_BASE = "eclipse.base"; //$NON-NLS-1$
	public static final String PROPERTY_FEATURE_BASE = "feature.base"; //$NON-NLS-1$
	public static final String PROPERTY_FEATURE_DESTINATION = "feature.destination"; //$NON-NLS-1$
	public static final String PROPERTY_FEATURE_DIRECTORY = "feature.directory"; //$NON-NLS-1$
	public static final String PROPERTY_FEATURE_FULL_NAME = "feature.full.name"; //$NON-NLS-1$
	public static final String PROPERTY_FEATURE_TEMP_FOLDER = "feature.temp.folder"; //$NON-NLS-1$
	public static final String PROPERTY_FEATURE_VERSION_SUFFIX = "feature.version.suffix"; //$NON-NLS-1$
	public static final String PROPERTY_FULL_NAME = "full.name"; //$NON-NLS-1$
	public static final String PROPERTY_INCLUDE_CHILDREN = "include.children"; //$NON-NLS-1$
	public static final String PROPERTY_LAUNCHER_ICONS = "launcherIcons"; //$NON-NLS-1$
	public static final String PROPERTY_LAUNCHER_NAME = "launcherName"; //$NON-NLS-1$
	public static final String PROPERTY_LAUNCHER_PROVIDER = "launcherProvider"; //$NON-NLS-1$
	public static final String PROPERTY_PRODUCT = "product"; //$NON-NLS-1$
	public static final String PROPERTY_BASE_LOCATION = "baseLocation"; //$NON-NLS-1$
	public static final String PROPERTY_LOG_EXTENSION = "logExtension"; //$NON-NLS-1$
	public static final String PROPERTY_LOG_EXTENSION_PARAM = "logExtension.param"; //$NON-NLS-1$

	public static final String PROPERTY_NL = "nl"; //$NON-NLS-1$
	public static final String PROPERTY_BASE_NL = "basenl"; //$NON-NLS-1$ 
	public static final String PROPERTY_OS = "os"; //$NON-NLS-1$
	public static final String PROPERTY_BUNDLE_VERSION = "bundleVersion"; //$NON-NLS-1$
	public static final String PROPERTY_BUNDLE_ID = "bundleId"; //$NON-NLS-1$
	public static final String PROPERTY_BASE_OS = "baseos"; //$NON-NLS-1$
	public static final String PROPERTY_QUIET = "quiet"; //$NON-NLS-1$
	public static final String PROPERTY_PLUGIN_DESTINATION = "plugin.destination"; //$NON-NLS-1$
	public static final String PROPERTY_TARGET = "target"; //$NON-NLS-1$
	public static final String PROPERTY_TEMP_FOLDER = "temp.folder"; //$NON-NLS-1$
	public static final String PROPERTY_VERSION_SUFFIX = "version.suffix"; //$NON-NLS-1$
	public static final String PROPERTY_WS = "ws"; //$NON-NLS-1$
	public static final String PROPERTY_BASE_WS = "basews"; //$NON-NLS-1$
	public static final String PROPERTY_ARCHIVE_NAME = "archiveName"; //$NON-NLS-1$
	public static final String PROPERTY_BUILD_LABEL = "buildLabel"; //$NON-NLS-1$
	public static final String PROPERTY_JAVAC_FAIL_ON_ERROR = "javacFailOnError"; //$NON-NLS-1$ 
	public static final String PROPERTY_JAVAC_DEBUG_INFO = "javacDebugInfo"; //$NON-NLS-1$
	public static final String PROPERTY_JAVAC_VERBOSE = "javacVerbose"; //$NON-NLS-1$
	public static final String PROPERTY_JAVAC_SOURCE = "javacSource"; //$NON-NLS-1$
	public static final String PROPERTY_JAVAC_TARGET = "javacTarget"; //$NON-NLS-1$
	public static final String PROPERTY_BUNDLE_JAVAC_SOURCE = "bundleJavacSource"; //$NON-NLS-1$
	public static final String PROPERTY_BUNDLE_BOOTCLASSPATH = "bundleBootClasspath"; //$NON-NLS-1$
	public static final String PROPERTY_BUNDLE_JAVAC_TARGET = "bundleJavacTarget"; //$NON-NLS-1$
	public static final String PROPERTY_JAVAC_COMPILERARG = "compilerArg"; //$NON-NLS-1$
	public static final String PROPERTY_ARCHIVE_PREFIX = "archivePrefix"; //$NON-NLS-1$
	public static final String PROPERTY_PLUGIN_ARCHIVE_PREFIX = "pluginArchivePrefix"; //$NON-NLS-1$
	public static final String PROPERTY_FEATURE_ARCHIVE_PREFIX = "featureArchivePrefix"; //$NON-NLS-1$
	public static final String PROPERTY_COLLECTING_FOLDER = "collectingFolder"; //$NON-NLS-1$
	public static final String PROPERTY_ARCHIVE_FULLPATH = "archiveFullPath"; //$NON-NLS-1$
	public static final String PROPERTY_ARCHIVE_PARENT = "archiveParentFolder"; //$NON-NLS-1$
	public static final String PROPERTY_BUILD_ID_PARAM = "buildId"; //$NON-NLS-1$
	public static final String PROPERTY_ZIP_ARGS = "zipargs"; //$NON-NLS-1$
	public static final String PROPERTY_TAR_ARGS = "tarargs"; //$NON-NLS-1$
	public static final String PROPERTY_DOWNLOAD_DIRECTORY = "downloadDirectory"; //$NON-NLS-1$
	public static final String PROPERTY_RESOURCE_PATH = "resourcePath"; //$NON-NLS-1$
	public static final String PROPERTY_PLUGIN_TEMP = "pluginTemp"; //$NON-NLS-1$
	public static final String PROPERTY_BUILD_TEMP = "buildTempFolder"; //$NON-NLS-1$
	public static final String PROPERTY_PRE = "pre."; //$NON-NLS-1$
	public static final String PROPERTY_POST = "post."; //$NON-NLS-1$
	public static final String PROPERTY_POST_COMPILE = "post.compile."; //$NON-NLS-1$
	public static final String PROPERTY_SOURCE_FOLDER = "source.folder"; //$NON-NLS-1$
	public static final String PROPERTY_TARGET_FOLDER = "target.folder"; //$NON-NLS-1$
	public static final String PROPERTY_JAR_LOCATION = "jar.Location"; //$NON-NLS-1$
	public static final String PROPERTY_CLASSPATH = ".classpath"; //$NON-NLS-1$
	public static final String PROPERTY_RUN_PACKAGER = "runPackager"; //$NON-NLS-1$
	public static final String PROPERTY_ASSEMBLY_TMP = "assemblyTempDir"; //$NON-NLS-1$
	public static final String PROPERTY_CUSTOM_ASSEMBLY = "customAssembly"; //$NON-NLS-1$
	public static final String PROPERTY_CUSTOM_GATHER = "customGather"; //$NON-NLS-1$
	public static final String PROPERTY_PROJECT_LOCATION = "projectLocation"; //$NON-NLS-1$
	public static final String PROPERTY_PROJECT_NAME = "projectName"; //$NON-NLS-1$
	public static final String PROPERTY_CUSTOM_TARGET = "customTarget"; //$NON-NLS-1$
	public static final String PROPERTY_ROOT_FOLDER = "rootFolder"; //$NON-NLS-1$
	public static final String PROPERTY_JARING_MANIFEST = "jaringManifest"; //$NON-NLS-1$
	public static final String PROPERTY_JARING_TASK = "jaringTask"; //$NON-NLS-1$
	public static final String PROPERTY_OMIT_ROOTFILES = "updateJar.omitRootfiles"; //$NON-NLS-1$
	public static final String PROPERTY_GENERATE_API_DESCRIPTION = "generateAPIDescription"; //$NON-NLS-1$
	public static final String PROPERTY_BINARY_FOLDERS = "binary.folders"; //$NON-NLS-1$
	public static final String PROPERTY_LAUNCHER_JAR = "equinoxLauncherJar"; //$NON-NLS-1$
	public static final String PROPERTY_EXTRA_MANIFESTS = "extraManifests"; //$NON-NLS-1$
	public static final String PROPERTY_ALLOW_NON_API_PROJECT = "allowNonApiProject"; //$NON-NLS-1$

	//Jar processor properties
	public static final String PROPERTY_SIGN_ALIAS = "sign.alias"; //$NON-NLS-1$
	public static final String PROPERTY_SIGN_KEYSTORE = "sign.keystore"; //$NON-NLS-1$
	public static final String PROPERTY_SIGN_STOREPASS = "sign.storepass"; //$NON-NLS-1$
	public static final String PROPERTY_SIGN_KEYPASS = "sign.keypass"; //$NON-NLS-1$
	public static final String PROPERTY_UNSIGN = "jarProcessor.unsign"; //$NON-NLS-1$
	public static final String PROPERTY_SIGN = "jarProcessor.sign"; //$NON-NLS-1$

	//JNLP generation properties
	public static final String PROPERTY_JNLP_CODEBASE = "jnlp.codebase"; //$NON-NLS-1$
	public static final String PROPERTY_JNLP_J2SE = "jnlp.j2se"; //$NON-NLS-1$
	public static final String PROPERTY_JNLP_LOCALE = "jnlp.locale"; //$NON-NLS-1$
	public static final String PROPERTY_JNLP_GENOFFLINE = "jnlp.generateOfflineAllowed"; //$NON-NLS-1$
	public static final String PROPERTY_JNLP_CONFIGS = "jnlp.configs"; //$NON-NLS-1$

	//Output format supported
	public static final String FORMAT_TAR = "tar"; //$NON-NLS-1$
	public static final String FORMAT_ANTTAR = "antTar"; //$NON-NLS-1$
	public static final String FORMAT_ZIP = "zip"; //$NON-NLS-1$
	public static final String FORMAT_ANTZIP = "antZip"; //$NON-NLS-1$
	public static final String FORMAT_FOLDER = "folder"; //$NON-NLS-1$
}
