core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/sbsv2/ISBSv2QueryData.java
branchC3_BUILDER_WORK
changeset 1471 62024a5fa81d
child 1476 09e768e53db5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/sbsv2/ISBSv2QueryData.java	Mon Jun 14 13:24:47 2010 -0500
@@ -0,0 +1,95 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+* Test the BldInfViewPathHelper class.
+*
+*/
+package com.nokia.carbide.cpp.internal.api.sdk.sbsv2;
+
+import java.util.HashMap;
+import java.util.List;
+
+import com.nokia.carbide.cpp.sdk.core.ISymbianSDK;
+
+/**
+ * Interface that wraps all queries to the Symbian Build System (SBSv2/Raptor)
+ * 
+ * @noimplement
+ */
+public interface ISBSv2QueryData {
+	
+	/**
+	 * For given SDK, add an SBS build configuration
+	 * @param sdk - use null if base SBS data
+	 * @param configData - The configuration to add
+	 */
+	void addConfigurationData(ISymbianSDK sdk, ISBSv2ConfigData configData);
+	
+	/**
+	 * Get all usable SBS configurations for a given SDK, which is the union of
+	 * the SBS base configurations and SDK specific configurations.
+	 * @param sdk - should not be null
+	 * @return -The list of all usable SBS build configurations
+	 * @see {@link ISBSv2QueryData#getSDKSpecificConfigData(ISymbianSDK)}
+	 * @see {@link ISBSv2QueryData#getBaseSBSConfigurations()}
+	 */
+	List<ISBSv2ConfigData> getAllConfigurationsForSDK(ISymbianSDK sdk);
+	
+	/**
+	 * Get the SBS configurations that are defined only by the SDK.
+	 * This does not include configurations that have altered meanings,
+	 * rather they provide a new unique build alias that is not defined in the base SBS installation.
+	 * @param sdk - never null
+	 * @return The unique SBS configurations to a given SDK. An empty list of none.
+	 */
+	List<ISBSv2ConfigData> getSDKSpecificConfigData(ISymbianSDK sdk);
+	
+	/**
+	 * Get the map of build alias to sbs configuration data that Raptor defines
+	 * without input from any SDK
+	 * @return a HashMap of SBS build alias to configuration data
+	 */
+	HashMap<String, ISBSv2ConfigData> getBaseSBSConfigurations();
+	
+	/**
+	 * Get the product variant list for a given SDK
+	 * @param sdk - The SDK, should not be null
+	 * @return The list of product variants
+	 */
+	List<String> getProductsForSDK(ISymbianSDK sdk);
+	
+	/**
+	 * Sets the product variant list by the SDK. Products are typically defined
+	 * under /epoc32/sbs_config/variant_configurations.xml
+	 * @param sdk - The SDK, must not be null
+	 * @param products - The list of build variants that can be applied to any build alias or meaning
+	 */
+	void addProductListForSDK(ISymbianSDK sdk, List<String> products);
+
+	/**
+	 * Find SBS configuration data for a single build configuration.
+	 * @param sdk - The SDK that contains the build configuration. Null for a base configuration
+	 * @param string - The build alias (e.g. armv5_udeb)
+	 * @return SBS configuration data, or null if not found
+	 */
+	ISBSv2ConfigData getSBSConfigByAlias(ISymbianSDK sdk, String alias);
+
+	/**
+	 * Find SBS configuration data for a single build configuration.
+	 * @param sdk - The SDK that contains the build configuration. Null for a base configuration
+	 * @param string - The build meaning or dotted name (e.g. arm.v5.udeb.rvct2_2)
+	 * @return SBS configuration data, or null if not found
+	 */
+	ISBSv2ConfigData getSBSConfigByMeaning(ISymbianSDK sdk, String meaning);
+}