core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/sdk/core/ISymbianSDK.java
author timkelly
Thu, 26 Aug 2010 09:57:08 -0500
changeset 1892 2009dcd074b0
parent 1881 fccb2e8f8b9b
permissions -rw-r--r--
fix bug 11939
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     1
/*
1434
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents: 1418
diff changeset
     2
* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). 
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     3
* All rights reserved.
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     8
*
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    11
*
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    12
*/
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    13
package com.nokia.carbide.cpp.sdk.core;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    14
1434
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents: 1418
diff changeset
    15
import java.util.Set;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    16
1462
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    17
import org.eclipse.core.runtime.IPath;
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    18
import org.osgi.framework.Version;
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    19
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    20
/**
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    21
 * This interface provides details on a single Symbian OS SDK.
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    22
 * 
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    23
 * Notes on return values for unknown/undefined items:
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    24
 *  - String value are empty ""
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    25
 *  - IPath and IFile objects are null
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    26
 *  - containers have zero size
179
77bd4ab5f973 cleanup some API/javadoc. Add API changes for SBV support.
timkelly
parents: 147
diff changeset
    27
 *  
77bd4ab5f973 cleanup some API/javadoc. Add API changes for SBV support.
timkelly
parents: 147
diff changeset
    28
 *  @noimplement This interface is not intended to be implemented by clients.
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    29
 */
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    30
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    31
public interface ISymbianSDK {
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    32
1434
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents: 1418
diff changeset
    33
	/**
1819
7b971ec45b18 make bad epocroot value a const
timkelly
parents: 1802
diff changeset
    34
	 * Value given for an SDK that is created when a build configuration
7b971ec45b18 make bad epocroot value a const
timkelly
parents: 1802
diff changeset
    35
	 * references an non-existent SDK.
1881
fccb2e8f8b9b add @since tags per api tooling check
timkelly
parents: 1820
diff changeset
    36
	 * @since 3.0
1819
7b971ec45b18 make bad epocroot value a const
timkelly
parents: 1802
diff changeset
    37
	 */
1820
5c955fcfdc3d fix npe, clear sbsv2 query cache data in memory when rebuilding sbsv2 cache from pref, other code clean-up
timkelly
parents: 1819
diff changeset
    38
	public static String BAD_EPOCROOT = "/BAD_SDK_ROOT";
1819
7b971ec45b18 make bad epocroot value a const
timkelly
parents: 1802
diff changeset
    39
	
7b971ec45b18 make bad epocroot value a const
timkelly
parents: 1802
diff changeset
    40
	/**
1434
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents: 1418
diff changeset
    41
	 * Returns build info for a particular builder.
1733
13355a75b65c add a since 3.0 tag
timkelly
parents: 1719
diff changeset
    42
	 * @param builderId id string of a builder (ISymbianBuilderID constant)
1799
ee7381872847 mark abld-specific methods as deprecated
timkelly
parents: 1771
diff changeset
    43
	 * @return ISDKBuildInfo - may be null if the builderId is deprecated.
1710
94cdcd7c5550 Refactor getBuiltInMacros() to be SBSv1 specific. This are the hard-coded macros misc macros we are adding for SBSv1.
timkelly
parents: 1667
diff changeset
    44
	 * @since 3.0
1733
13355a75b65c add a since 3.0 tag
timkelly
parents: 1719
diff changeset
    45
	 * @see {@link ISymbianBuilderID}
1434
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents: 1418
diff changeset
    46
	 */
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents: 1418
diff changeset
    47
	ISDKBuildInfo getBuildInfo(String builderId);
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    48
	
1434
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents: 1418
diff changeset
    49
	/**
1462
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    50
	 * Returns the absolute path to the epoc32 directory of this SDK. This method is guaranteed to
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    51
	 * return the path with a trailing File.separator.
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    52
	 *
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    53
	 * @return the absolute path to the epoc32 directory.
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    54
	 */
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    55
	String getEPOCROOT();
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    56
		
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    57
	/**
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    58
	 * Returns an IPath for the epoc32\include directory of a SDK.
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    59
	 * @return an IPath for the epoc32\include directory, or <code>null</code>.
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    60
	 */
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    61
	IPath getIncludePath();
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    62
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    63
	/**
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    64
	 * Returns the OS version string of this SDK.
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    65
	 *
1719
c55d4b8f7373 fixing SBSv2QueryTests.
timkelly
parents: 1710
diff changeset
    66
	 * @return the OS Version object. If the version cannot be determined it will be "9.5".
1667
352fb86872dd remove ISymbianSDK: getSDKVersion(), getName() and related methods.
timkelly
parents: 1462
diff changeset
    67
	 * @deprecated - use ISymbianSDK{@link #getSupportedFeatures()} to figure out the properties of an SDK
1462
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    68
	 */
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    69
	Version getOSVersion();
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    70
1771
bd45dfd2e7ee Remove ISymbianSDK#getPrefixFile. You can get this from ISDKBuildInfo#getPrefixFromVariantCfg().
timkelly
parents: 1736
diff changeset
    71
//	/**
bd45dfd2e7ee Remove ISymbianSDK#getPrefixFile. You can get this from ISDKBuildInfo#getPrefixFromVariantCfg().
timkelly
parents: 1736
diff changeset
    72
//	 * Returns the prefix file for a particular builder.
bd45dfd2e7ee Remove ISymbianSDK#getPrefixFile. You can get this from ISDKBuildInfo#getPrefixFromVariantCfg().
timkelly
parents: 1736
diff changeset
    73
//	 * @param builderId id string of a builder
bd45dfd2e7ee Remove ISymbianSDK#getPrefixFile. You can get this from ISDKBuildInfo#getPrefixFromVariantCfg().
timkelly
parents: 1736
diff changeset
    74
//	 * @return the File object for the prefix file, or
bd45dfd2e7ee Remove ISymbianSDK#getPrefixFile. You can get this from ISDKBuildInfo#getPrefixFromVariantCfg().
timkelly
parents: 1736
diff changeset
    75
//	 * <code>null</code> if there isn't one for the SDK.
bd45dfd2e7ee Remove ISymbianSDK#getPrefixFile. You can get this from ISDKBuildInfo#getPrefixFromVariantCfg().
timkelly
parents: 1736
diff changeset
    76
//	 */
bd45dfd2e7ee Remove ISymbianSDK#getPrefixFile. You can get this from ISDKBuildInfo#getPrefixFromVariantCfg().
timkelly
parents: 1736
diff changeset
    77
//	File getPrefixFile(String builderId);
1462
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    78
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    79
	/**
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    80
	 * Returns an IPath for the epoc32\release directory of a SDK.
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    81
	 * @return an IPath for the epoc32\release directory, or <code>null</code>.
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    82
	 */
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    83
	IPath getReleaseRoot();
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    84
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    85
	/**
1434
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents: 1418
diff changeset
    86
	 * Returns a set of features supported by the SDK. 
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents: 1418
diff changeset
    87
	 * Feature IDs are defined in ISymbianSDKFeatures.
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents: 1418
diff changeset
    88
	 * @return set of features
1710
94cdcd7c5550 Refactor getBuiltInMacros() to be SBSv1 specific. This are the hard-coded macros misc macros we are adding for SBSv1.
timkelly
parents: 1667
diff changeset
    89
	 * @since 3.0
1892
2009dcd074b0 fix bug 11939
timkelly
parents: 1881
diff changeset
    90
	 * @see {@link ISymbianSDKFeatures}
1434
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents: 1418
diff changeset
    91
	 */
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents: 1418
diff changeset
    92
	@SuppressWarnings("rawtypes")
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents: 1418
diff changeset
    93
	Set getSupportedFeatures();
1736
ba74c19c6de3 fix bug 11762. Fix targettypes for MMP editor to retrieve properly depending on whether build config is SBsv1 or SBSv2.
timkelly
parents: 1733
diff changeset
    94
		
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    95
	/**
1462
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    96
	 * Returns an IPath for the epoc32\tools directory of a SDK.
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    97
	 * @return an IPath for the epoc32\tools directory, or <code>null</code>.
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    98
	 */
1462
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    99
	IPath getToolsPath();
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
   100
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   101
	/**
1462
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
   102
	 * Returns the unique id of this SDK. This is the devices.xml 'id' attribute.
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   103
	 *
1462
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
   104
	 * @return the id string of this SDK.
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   105
	 */
1462
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
   106
	String getUniqueId();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   107
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   108
	/**
1462
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
   109
	 * Returns true if the SDK is enabled, false otherwise.
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
   110
	 *
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
   111
	 * @return <code>true</code> if the SDK is enabled, and
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
   112
	 *   <code>false</code> otherwise
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   113
	 */
1462
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
   114
	boolean isEnabled();
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   115
	
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   116
	/**
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   117
	 * Scans/Rescans the SDK for info such as prefix file, variant macros, manifest.xml, etc.
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   118
	 */
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   119
	void scanSDK();
1462
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
   120
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
   121
}