core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/ISBSv1BuildInfo.java
branchC3_BUILDER_WORK
changeset 1462 b38491fd06da
parent 1434 79471fd1fd69
child 1667 352fb86872dd
equal deleted inserted replaced
1460:26f585ac8a88 1462:b38491fd06da
    11 *
    11 *
    12 */
    12 */
    13 
    13 
    14 package com.nokia.carbide.cpp.internal.api.sdk;
    14 package com.nokia.carbide.cpp.internal.api.sdk;
    15 
    15 
    16 import java.io.File;
       
    17 import java.net.URL;
       
    18 import java.util.Date;
       
    19 import java.util.List;
    16 import java.util.List;
    20 
       
    21 import org.eclipse.core.runtime.IPath;
       
    22 import org.osgi.framework.Version;
       
    23 
    17 
    24 import com.nokia.carbide.cpp.sdk.core.IBSFCatalog;
    18 import com.nokia.carbide.cpp.sdk.core.IBSFCatalog;
    25 import com.nokia.carbide.cpp.sdk.core.ISBVCatalog;
    19 import com.nokia.carbide.cpp.sdk.core.ISBVCatalog;
    26 import com.nokia.carbide.cpp.sdk.core.ISDKBuildInfo;
    20 import com.nokia.carbide.cpp.sdk.core.ISDKBuildInfo;
    27 import com.nokia.carbide.cpp.sdk.core.ISymbianSDK;
       
    28 
    21 
    29 /**
    22 /**
    30  * Interface for SBSv1 specific build information.
    23  * Interface for SBSv1 specific build information.
    31  *
    24  *
    32  */
    25  */
    33 public interface ISBSv1BuildInfo extends ISDKBuildInfo {
    26 public interface ISBSv1BuildInfo extends ISDKBuildInfo {
    34 
       
    35 	/** Branch identifier to note Beech branch, OS 8.1a and prior */
       
    36 	public static final String EKA1_A_BRANCH_IDENTIFIER = "a";
       
    37 	/** Branch identifier to note S branch, OS 7.0x */
       
    38 	public static final String EKA1_S_BRANCH_IDENTIFIER = "s";
       
    39 	/** Branch identifier to note Cedar branch, OS 8.0b and later (not used for OS 9.x and greater) */
       
    40 	public static final String EKA2_B_BRANCH_IDENTIFIER = "b";
       
    41 
    27 
    42 	// Family Ids don't include the vendor
    28 	// Family Ids don't include the vendor
    43 	public static final String SERIES60_FAMILY_ID = "series60"; //deprecated
    29 	public static final String SERIES60_FAMILY_ID = "series60"; //deprecated
    44 	public static final String S60_FAMILY_ID = "s60";
    30 	public static final String S60_FAMILY_ID = "s60";
    45 	public static final String S80_FAMILY_ID = "Series80";
    31 	public static final String S80_FAMILY_ID = "Series80";
    57 
    43 
    58 	public static final String PUBLISHER_NOKIA = "Nokia, Inc.";
    44 	public static final String PUBLISHER_NOKIA = "Nokia, Inc.";
    59 	public static final String PUBLISHER_UIQ = "UIQ Technology";
    45 	public static final String PUBLISHER_UIQ = "UIQ Technology";
    60 	public static final String PUBLISHER_SYMBIAN = "Symbian, Ltd.";
    46 	public static final String PUBLISHER_SYMBIAN = "Symbian, Ltd.";
    61 
    47 
       
    48 	void clearPlatformMacros();
       
    49 
       
    50 	/**
       
    51 	 * Returns the list of all available platforms for a SDK.
       
    52 	 * @return a list of platform names which may be empty.
       
    53 	 */
       
    54 	List<String> getAvailablePlatforms();
       
    55 
       
    56 	/**
       
    57 	 * Get the BSF catalog for a SDK.
       
    58 	 */
       
    59 	IBSFCatalog getBSFCatalog();
       
    60 
    62 	/**
    61 	/**
    63 	 * Returns the list of all platform macros for a SDK.
    62 	 * Returns the list of all platform macros for a SDK.
    64 	 * <p>
    63 	 * <p>
    65 	 * This is somewhat equivalent to calling "bldmake plat" on the command line
    64 	 * This is somewhat equivalent to calling "bldmake plat" on the command line
    66 	 * These are the macros that can be used in MMP and INF files. They are only given by name (no value)
    65 	 * These are the macros that can be used in MMP and INF files. They are only given by name (no value)
    67 	 * </p>
    66 	 * </p>
    68 	 * @param sdk Symbian SDK
       
    69 	 * @param platform the platform name
    67 	 * @param platform the platform name
    70 	 * @return a list of macros, which may be empty.
    68 	 * @return a list of macros, which may be empty.
    71 	 */
    69 	 */
    72 	List<String> getPlatformMacros(ISymbianSDK sdk, String platform);
    70 	List<String> getPlatformMacros(String platform);
       
    71 
       
    72 	/**
       
    73 	 * Get the Symbian Binary Variation (SBV) catalog for a SDK.
       
    74 	 */
       
    75 	ISBVCatalog getSBVCatalog();
       
    76 
       
    77 	/**
       
    78 	 * Get a list of macros specific to the given target type, e.g. "__EXE__" or "__DLL__"
       
    79 	 * @param targettype
       
    80 	 * @return list of macro strings, may be empty
       
    81 	 */
       
    82 	List<String> getTargetTypeMacros(String targettype);
    73 
    83 
    74 	/**
    84 	/**
    75 	 * Get a list of macros that are used to distinguish a SDK. Typically only
    85 	 * Get a list of macros that are used to distinguish a SDK. Typically only
    76 	 * S603rd edition SDKs contain this information and it's used to differentiate between
    86 	 * S603rd edition SDKs contain this information and it's used to differentiate between
    77 	 * varios S60 SDK releases. Other vendors, such as UIQ may put their macros in the variant HRH file.
    87 	 * varios S60 SDK releases. Other vendors, such as UIQ may put their macros in the variant HRH file.
    78 	 * @param sdk Symbian SDK
       
    79 	 * @return A list of macros just returned by name.
    88 	 * @return A list of macros just returned by name.
    80 	 */
    89 	 */
    81 	public List<String> getVendorSDKMacros(ISymbianSDK sdk);
    90 	public List<String> getVendorSDKMacros();
    82 
    91 
    83 	/**
    92 	/**
    84 	 * Returns the list of all available platforms for a SDK.
    93 	 * Tells whether or not the plug-in installer has sniffed this SDK for eclipse plug-ins to install.
    85 	 * @param sdk Symbian SDK
    94 	 * @return true if the SDK was scanned
    86 	 * @return a list of platform names which may be empty.
       
    87 	 */
    95 	 */
    88 	List<String> getAvailablePlatforms(ISymbianSDK sdk);
    96 	boolean isPreviouslyScanned();
    89 
       
    90 	/**
       
    91 	 * Returns the display name of a SDK. This is the com.vendor.family identifier.
       
    92 	 * @param sdk Symbian SDK
       
    93 	 * @return the name of a sdk.
       
    94 	 */
       
    95 	String getName(ISymbianSDK sdk);  
       
    96 
       
    97 	/**
       
    98 	 * Returns the vendor name of this SDK. This is parsed from the 'name' attribute from devices.xml.
       
    99 	 * @param sdk Symbian SDK
       
   100 	 * @return the vendor name of a sdk.
       
   101 	 */
       
   102 	String getVendor(ISymbianSDK sdk);
       
   103 
       
   104 	/**
       
   105 	 * Returns the family name of a SDK. This is parsed from the 'vendor' attribute from devices.xml.
       
   106 	 * @param sdk Symbian SDK
       
   107 	 * @return the family name of a sdk.
       
   108 	 */
       
   109 	String getFamily(ISymbianSDK sdk);
       
   110 
       
   111 	/**
       
   112 	 * Returns the SDK version string of a SDK.
       
   113 	 * @param sdk Symbian SDK
       
   114 	 * @return the SDK Version object. If the version cannot be determined it will be "0.0".
       
   115 	 */
       
   116 	Version getSDKVersion(ISymbianSDK sdk);
       
   117 
       
   118 	/**
       
   119 	 * Returns the File object for the prefix file for a SDK.
       
   120 	 * @param sdk Symbian SDK
       
   121 	 * @return the File object for the prefix file, or
       
   122 	 * <code>null</code> if there isn't one for the SDK.
       
   123 	 */
       
   124 	File getPrefixFile(ISymbianSDK sdk);
       
   125 
       
   126 	/**
       
   127 	 * Returns an IPath for the epoc32\tools directory of a SDK.
       
   128 	 * @param sdk Symbian SDK
       
   129 	 * @return an IPath for the epoc32\tools directory, or <code>null</code>.
       
   130 	 */
       
   131 	IPath getToolsPath(ISymbianSDK sdk);
       
   132 
       
   133 	/**
       
   134 	 * Returns an IPath for the epoc32\release directory of a SDK.
       
   135 	 * @param sdk Symbian SDK
       
   136 	 * @return an IPath for the epoc32\release directory, or <code>null</code>.
       
   137 	 */
       
   138 	IPath getReleaseRoot(ISymbianSDK sdk);
       
   139 
       
   140 	/**
       
   141 	 * Returns an IPath for the epoc32\include directory of a SDK.
       
   142 	 * @param sdk Symbian SDK
       
   143 	 * @return an IPath for the epoc32\include directory, or <code>null</code>.
       
   144 	 */
       
   145 	IPath getIncludePath(ISymbianSDK sdk);
       
   146 
       
   147 	/**
       
   148 	 * Get the human readable description of a SDK.
       
   149 	 * @param sdk Symbian SDK
       
   150 	 * @return The description string, empty string for none.
       
   151 	 */
       
   152 	String getSDKDescription(ISymbianSDK sdk);
       
   153 
       
   154 	/**
       
   155 	 * Get the creation date of the manifest.xml
       
   156 	 * @param sdk Symbian SDK
       
   157 	 * @return a Date object
       
   158 	 */
       
   159 	Date getCreationDate(ISymbianSDK sdk);
       
   160 
       
   161 	/**
       
   162 	 * Get the licese file location in a SDK. Comes from manifest.xml.
       
   163 	 * @param sdk Symbian SDK
       
   164 	 * @return File, full path to the license file.
       
   165 	 */
       
   166 	File getLicenseFile(ISymbianSDK sdk);
       
   167 
       
   168 	/**
       
   169 	 * Get the branch qualifier for the OS. Typically "a" or "b" to denote the Beech and Cedar code branchs respectively.
       
   170 	 * This is typically used to denote EKA1 from EKA2.
       
   171 	 * @param sdk Symbian SDK
       
   172 	 * @return the branch, or empty string if none.
       
   173 	 */
       
   174 	String getSDKOSBranch(ISymbianSDK sdk);
       
   175 
       
   176 	/**
       
   177 	 * Get the HTTP location for the SDK publisher. Comes from manifest.xml.
       
   178 	 * @param sdk Symbian SDK
       
   179 	 * @return A (hopefully) valid URL.
       
   180 	 */
       
   181 	URL getPublisherURL(ISymbianSDK sdk);
       
   182 
       
   183 	/**
       
   184 	 * Get the publisher name present in manifest.xml
       
   185 	 * @param sdk Symbian SDK
       
   186 	 * @return The name entry or empty string if not present.
       
   187 	 */
       
   188 	String getPublisherName(ISymbianSDK sdk);
       
   189 
       
   190 	/**
       
   191 	 * Get a list of macros specific to the given target type, e.g. "__EXE__" or "__DLL__"
       
   192 	 * @param sdk Symbian SDK
       
   193 	 * @param targettype
       
   194 	 * @return list of macro strings, may be empty
       
   195 	 */
       
   196 	List<String> getTargetTypeMacros(ISymbianSDK sdk, String targettype);
       
   197 
       
   198 	/**
       
   199 	 * Get the BSF catalog for a SDK.
       
   200 	 * @param sdk Symbian SDK
       
   201 	 */
       
   202 	IBSFCatalog getBSFCatalog(ISymbianSDK sdk);
       
   203 
       
   204 	/**
       
   205 	 * Get the Symbian Binary Variation (SBV) catalog for a SDK.
       
   206 	 * @param sdk Symbian SDK
       
   207 	 * @since 2.0
       
   208 	 */
       
   209 	ISBVCatalog getSBVCatalog(ISymbianSDK sdk);
       
   210 
       
   211 	/**
       
   212 	 * Returns whether or not this is the default SDK in the devices.xml file.
       
   213 	 * @param sdk Symbian SDK
       
   214 	 * @return <code>true</code> if the SDK is the default, and
       
   215 	 *   <code>false</code> otherwise
       
   216 	 */
       
   217 	boolean isDefaultSDK(ISymbianSDK sdk);
       
   218 
    97 
   219 	/**
    98 	/**
   220 	 * Tell if the SDK is Series60.
    99 	 * Tell if the SDK is Series60.
   221 	 * @param sdk Symbian SDK
       
   222 	 * @return true if the SDK is Series60
   100 	 * @return true if the SDK is Series60
   223 	 */
   101 	 */
   224 	boolean isS60(ISymbianSDK sdk);
   102 	boolean isS60();
   225 
   103 
   226 	/**
   104 	void setPreviouslyScanned(boolean wasScanned);
   227 	 * Tells whether or not the plug-in installer has sniffed this SDK for eclipse plug-ins to install.
       
   228 	 * @param sdk Symbian SDK
       
   229 	 * @return true if the SDK was scanned
       
   230 	 * @since 2.0
       
   231 	 */
       
   232 	boolean isPreviouslyScanned(ISymbianSDK sdk);
       
   233 
       
   234 	void setLicenseFile(ISymbianSDK sdk, File licenseFile);
       
   235 	void setPrefixFile(ISymbianSDK sdk, IPath prefixFile);
       
   236 	void setSDKVersion(ISymbianSDK sdk, Version sdkVers);
       
   237 	void setPublisherURL(ISymbianSDK sdk, URL pubURL);
       
   238 	void setCreateDate(ISymbianSDK sdk, Date createDate);
       
   239 	void setOSSDKBranch(ISymbianSDK sdk, String branch);
       
   240 	void setSDKDescription(ISymbianSDK sdk, String descr);
       
   241 	void setPublisherName(ISymbianSDK sdk, String pubName);
       
   242 	void setName(ISymbianSDK sdk, String name);
       
   243 	void setIsDefaultSDK(ISymbianSDK sdk, boolean isDefault);
       
   244 	void setPreviouslyScanned(ISymbianSDK sdk, boolean wasScanned);
       
   245 
   105 
   246 }
   106 }