Simplify APIs around error parser ids/arrays. Clarify some comments in API after review with David. C3_BUILDER_WORK
authortimkelly
Tue, 03 Aug 2010 11:44:01 -0500
branchC3_BUILDER_WORK
changeset 1749 0d2e2c9062b1
parent 1747 853ab1210200
child 1755 e65ffeef96f7
Simplify APIs around error parser ids/arrays. Clarify some comments in API after review with David.
builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/ErrorParserRegressionGenerator.java
builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestGcceErrorParser.java
builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestMakeErrorParser.java
builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestMakmakeErrorParser.java
builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestRVCTErrorParser.java
builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestSBSv2ErrorParser.java
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/BuildArgumentsInfo.java
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/builder/CarbideCPPBuilder.java
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/project/IBuildArgumentsInfo.java
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/project/ICarbideBuildConfiguration.java
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/project/ICarbideProjectInfo.java
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideBuildConfiguration.java
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideSBSv1Builder.java
builder/com.nokia.carbide.cpp.builder.utils/src/com/nokia/carbide/cpp/internal/builder/utils/handlers/CompileHandler.java
builder/com.nokia.carbide.cpp.builder.utils/src/com/nokia/carbide/cpp/internal/builder/utils/handlers/ComponentCommandHandler.java
builder/com.nokia.carbide.cpp.builder.utils/src/com/nokia/carbide/cpp/internal/builder/utils/handlers/PreprocessHandler.java
builder/com.nokia.carbide.cpp.builder.utils/src/com/nokia/carbide/cpp/internal/builder/utils/handlers/ProjectCommandHandler.java
core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/BuildContextSBSv2.java
--- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/ErrorParserRegressionGenerator.java	Tue Aug 03 10:07:15 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/ErrorParserRegressionGenerator.java	Tue Aug 03 11:44:01 2010 -0500
@@ -87,7 +87,7 @@
 		ICarbideBuildConfiguration buildConfig = cpi.getDefaultConfiguration();
 		harness = new CarbideErrorParserTestHarness(project, 
 												new NullProgressMonitor(),
-												CarbideCPPBuilder.getParserIdArray(buildConfig.getErrorParserId()), 
+												buildConfig.getErrorParserList(), 
 												cpi.getINFWorkingDirectory());
 	}
 
--- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestGcceErrorParser.java	Tue Aug 03 10:07:15 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestGcceErrorParser.java	Tue Aug 03 11:44:01 2010 -0500
@@ -80,7 +80,7 @@
 		ICarbideBuildConfiguration buildConfig = cpi.getDefaultConfiguration();
 		harness = new CarbideErrorParserTestHarness(project, 
 												new NullProgressMonitor(),
-												CarbideCPPBuilder.getParserIdArray(buildConfig.getErrorParserId()), 
+												buildConfig.getErrorParserList(), 
 												cpi.getINFWorkingDirectory());
 	}
 	
--- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestMakeErrorParser.java	Tue Aug 03 10:07:15 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestMakeErrorParser.java	Tue Aug 03 11:44:01 2010 -0500
@@ -80,7 +80,7 @@
 		ICarbideBuildConfiguration buildConfig = cpi.getDefaultConfiguration();
 		harness = new CarbideErrorParserTestHarness(project, 
 												new NullProgressMonitor(),
-												CarbideCPPBuilder.getParserIdArray(buildConfig.getErrorParserId()), 
+												buildConfig.getErrorParserList(),  
 												cpi.getINFWorkingDirectory());
 	}
 	
--- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestMakmakeErrorParser.java	Tue Aug 03 10:07:15 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestMakmakeErrorParser.java	Tue Aug 03 11:44:01 2010 -0500
@@ -81,7 +81,7 @@
 		ICarbideBuildConfiguration buildConfig = cpi.getDefaultConfiguration();
 		harness = new CarbideErrorParserTestHarness(project, 
 												new NullProgressMonitor(),
-												CarbideCPPBuilder.getParserIdArray(buildConfig.getErrorParserId()), 
+												buildConfig.getErrorParserList(),  
 												cpi.getINFWorkingDirectory());
 	}
 
--- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestRVCTErrorParser.java	Tue Aug 03 10:07:15 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestRVCTErrorParser.java	Tue Aug 03 11:44:01 2010 -0500
@@ -83,7 +83,7 @@
 		ICarbideBuildConfiguration buildConfig = cpi.getDefaultConfiguration();
 		harness = new CarbideErrorParserTestHarness(project, 
 												new NullProgressMonitor(),
-												CarbideCPPBuilder.getParserIdArray(buildConfig.getErrorParserId()), 
+												buildConfig.getErrorParserList(),  
 												cpi.getINFWorkingDirectory());
 	}
 
--- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestSBSv2ErrorParser.java	Tue Aug 03 10:07:15 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestSBSv2ErrorParser.java	Tue Aug 03 11:44:01 2010 -0500
@@ -81,7 +81,7 @@
 		ICarbideBuildConfiguration buildConfig = cpi.getDefaultConfiguration();
 		harness = new CarbideErrorParserTestHarness(project, 
 												new NullProgressMonitor(),
-												CarbideCPPBuilder.getParserIdArray(buildConfig.getErrorParserId()), 
+												buildConfig.getErrorParserList(),  
 												cpi.getINFWorkingDirectory());
 	}
 
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/BuildArgumentsInfo.java	Tue Aug 03 10:07:15 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/BuildArgumentsInfo.java	Tue Aug 03 11:44:01 2010 -0500
@@ -20,8 +20,9 @@
 import com.nokia.carbide.cpp.sdk.core.ISymbianSDK;
 import com.nokia.carbide.cpp.sdk.core.ISymbianSDKFeatures;
 
-/*
+/**
  * Wrapper for the build arguments settings in Carbide Build Configuration preferences
+ * @deprecated - ABLD specific implementation. ABLD will be removed in a future Carbide 3.x release.
  */
 public class BuildArgumentsInfo implements IBuildArgumentsInfo {
 
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/builder/CarbideCPPBuilder.java	Tue Aug 03 10:07:15 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/builder/CarbideCPPBuilder.java	Tue Aug 03 11:44:01 2010 -0500
@@ -193,7 +193,7 @@
 			}
 			
 			if (defaultConfig != null) {
-				CarbideCommandLauncher launcher = new CarbideCommandLauncher(currentProject, monitor, getParserIdArray(defaultConfig.getErrorParserId()), cpi.getINFWorkingDirectory());
+				CarbideCommandLauncher launcher = new CarbideCommandLauncher(currentProject, monitor, defaultConfig.getErrorParserList(), cpi.getINFWorkingDirectory());
 				launcher.showCommand(true);
 				invokeBuild(defaultConfig, launcher, subMonitor.newChild(1), true);
 			} else {
@@ -379,7 +379,7 @@
 
 		getBuilder(cpi.getProject()).preCleanStep(buildConfig);
 
-		CarbideCommandLauncher launcher = new CarbideCommandLauncher(project, monitor, getParserIdArray(buildConfig.getErrorParserId()), cpi.getINFWorkingDirectory());
+		CarbideCommandLauncher launcher = new CarbideCommandLauncher(project, monitor, buildConfig.getErrorParserList(), cpi.getINFWorkingDirectory());
 		launcher.showCommand(true);
 
 		calculateComponentLists(buildConfig, launcher);
@@ -422,7 +422,7 @@
 		ICarbideProjectInfo cpi = buildConfig.getCarbideProject();
 		IProject project = cpi.getProject();
 		
-		CarbideCommandLauncher launcher = new CarbideCommandLauncher(project, monitor, getParserIdArray(buildConfig.getErrorParserId()), cpi.getINFWorkingDirectory());
+		CarbideCommandLauncher launcher = new CarbideCommandLauncher(project, monitor, buildConfig.getErrorParserList(), cpi.getINFWorkingDirectory());
 		launcher.showCommand(true);
 
 		// make sure the project is built
@@ -2035,7 +2035,7 @@
 			console = CCorePlugin.getDefault().getConsole();
 		}
 
-		CarbideCommandLauncher launcher = new CarbideCommandLauncher(config.getCarbideProject().getProject(), monitor, console, getParserIdArray(config.getErrorParserId()), config.getCarbideProject().getINFWorkingDirectory());
+		CarbideCommandLauncher launcher = new CarbideCommandLauncher(config.getCarbideProject().getProject(), monitor, console, config.getErrorParserList(), config.getCarbideProject().getINFWorkingDirectory());
 		launcher.showCommand(true);
 
 		invokeBuild(config, launcher, monitor, clearMarkers);
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/project/IBuildArgumentsInfo.java	Tue Aug 03 10:07:15 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/project/IBuildArgumentsInfo.java	Tue Aug 03 11:44:01 2010 -0500
@@ -21,7 +21,7 @@
  * This interface only applies for the Symbian 'abld' build system (SBSv1)
  * @see ICarbideBuildConfiguration
  * 
- * @deprecated use BuildArgumentsInfo directly
+ * @deprecated - ABLD specific implementation. ABLD will be removed in a future Carbide 3.x release.
  * @noimplement This interface is not intended to be implemented by clients.
  */
 public interface IBuildArgumentsInfo {
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/project/ICarbideBuildConfiguration.java	Tue Aug 03 10:07:15 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/project/ICarbideBuildConfiguration.java	Tue Aug 03 11:44:01 2010 -0500
@@ -22,6 +22,7 @@
 import org.eclipse.core.runtime.IPath;
 
 import com.nokia.carbide.cdt.builder.BuildArgumentsInfo;
+import com.nokia.carbide.cdt.builder.builder.CarbideCPPBuilder;
 import com.nokia.carbide.cpp.epoc.engine.preprocessor.IDefine;
 import com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext;
 import com.nokia.carbide.cpp.sdk.core.ISymbianSDK;
@@ -50,8 +51,9 @@
     public static final int ERROR_PARSERS_ALL = 99;
 	
 	/**
-	 * Get a list of error parser ID's
+	 * Get a list of error parser ID's for this configuration.
 	 * @return A full list of error parser IDs. Returns an empty array if none are specified
+	 * @see {@link CarbideCPPBuilder#getParserIdArray(int)}
 	 */
 	String[] getErrorParserList();
 
@@ -82,6 +84,7 @@
 	 * Get the (abld)build arguments info.  Contains pref settings from the Arguments tab.
 	 * This only applies when building with SBSv1 (bldmake, abld)
 	 * @return A copy of BuildArgumentsInfo instance, never null
+	 * @deprecated - ABLD specific implementation. ABLD will be removed in a future Carbide 3.x release.
 	 */
 	BuildArgumentsInfo getBuildArgumentsInfoCopy();
 	
@@ -89,6 +92,7 @@
 	 * Set the build arguments info for SBSv2 build arguments. This only sets values in memory, does
 	 * not write settings to disk. See 
 	 * @return IBuildArgumentsInfo instance, never null
+	 * @deprecated - ABLD specific implementation. ABLD will be removed in a future Carbide 3.x release.
 	 */
 	void setBuildArgumentsInfo(BuildArgumentsInfo bldArgInfo);
 	
@@ -104,18 +108,6 @@
 	 */
 	IEnvironmentVarsInfo getEnvironmentVarsInfo();
 	
-	/**
-	 * Get the id that specifies the array of error parsers to use for a given build platform.
-	 * @return The integer ID of the parser to be use.
-	 * @see CarbideCPPBuilder.getParserIds(int id)
-	 */
-	int getErrorParserId();
-	
-	/**
-	 * Compares two configurations to see if their display names are equivalent.
-	 */
-	boolean equals(Object obj);
-	
 	/** Get the full path of the release directory into the SDK where binaries are built
 	 *  NOTE: This does not account for whether or not a project has the FEATUREVARIANT keyword
 	 * @return IPath
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/project/ICarbideProjectInfo.java	Tue Aug 03 10:07:15 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/project/ICarbideProjectInfo.java	Tue Aug 03 11:44:01 2010 -0500
@@ -56,7 +56,7 @@
 	 * Load all the configurations associated with this project. If this is a new project,
 	 * then a dummy .settings file will be created which can be used to generate new build
 	 * configurations.
-	 * @return A list of ICarbideBuildConfiguration objects, which may be empty
+	 * @return A copy of the list of ICarbideBuildConfiguration objects, which may be empty. Modifying the result does not affect the project.
 	 */
 	public List<ICarbideBuildConfiguration> getBuildConfigurations();
 	
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideBuildConfiguration.java	Tue Aug 03 10:07:15 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideBuildConfiguration.java	Tue Aug 03 11:44:01 2010 -0500
@@ -90,7 +90,6 @@
 			sbsv2BuilderInfo = new SBSv2BuilderInfo((ISBSv2BuildContext)context);
 		}
 		rebuildNeeded = true;
-		
 	}
 	
 	public void loadFromStorage(ICConfigurationDescription projDes) throws CoreException {
@@ -305,7 +304,7 @@
 		}
 	}
 		
-	public int getErrorParserId(){
+	private int getErrorParserId(){
 		String plat = this.getPlatformString();
 		
 		if (context instanceof ISBSv2BuildContext){
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideSBSv1Builder.java	Tue Aug 03 10:07:15 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideSBSv1Builder.java	Tue Aug 03 11:44:01 2010 -0500
@@ -2345,7 +2345,7 @@
 			ICarbideProjectInfo cpi = config.getCarbideProject();
 			IPath workingDir = cpi.getINFWorkingDirectory();
 
-			launcher.setErrorParserManager(workingDir, CarbideCPPBuilder.getParserIdArray(config.getErrorParserId()));
+			launcher.setErrorParserManager(workingDir, config.getErrorParserList());
 			launcher.writeToConsole("\n***Generating abld makefile.\n");
 
 			// delete the *.uid.cpp file if it exists so it gets regenerated.  makmake won't regenerate it if only an mmp include
--- a/builder/com.nokia.carbide.cpp.builder.utils/src/com/nokia/carbide/cpp/internal/builder/utils/handlers/CompileHandler.java	Tue Aug 03 10:07:15 2010 -0500
+++ b/builder/com.nokia.carbide.cpp.builder.utils/src/com/nokia/carbide/cpp/internal/builder/utils/handlers/CompileHandler.java	Tue Aug 03 11:44:01 2010 -0500
@@ -80,7 +80,7 @@
 
 					IProject lastProject = selectedFiles.get(0).getProject();
 					ICarbideProjectInfo cpi = CarbideBuilderPlugin.getBuildManager().getProjectInfo(lastProject);
-					String[] errorParserIds = CarbideCPPBuilder.getParserIdArray(cpi.getDefaultConfiguration().getErrorParserId());
+					String[] errorParserIds = cpi.getDefaultConfiguration().getErrorParserList();
 					IPath workingDirectory = cpi.getINFWorkingDirectory();
 
 					// create the launcher for the first file's project.  if there are files selected for other projects, change the
@@ -104,7 +104,7 @@
 							if (lastProject != project && path != null) {
 					    		lastProject = project;
 								cpi = CarbideBuilderPlugin.getBuildManager().getProjectInfo(lastProject);
-								errorParserIds = CarbideCPPBuilder.getParserIdArray(cpi.getDefaultConfiguration().getErrorParserId());
+								errorParserIds = cpi.getDefaultConfiguration().getErrorParserList();
 								workingDirectory = cpi.getINFWorkingDirectory();
 								launcher = new CarbideCommandLauncher(lastProject, monitor, errorParserIds, workingDirectory);
 								launcher.showCommand(true);
--- a/builder/com.nokia.carbide.cpp.builder.utils/src/com/nokia/carbide/cpp/internal/builder/utils/handlers/ComponentCommandHandler.java	Tue Aug 03 10:07:15 2010 -0500
+++ b/builder/com.nokia.carbide.cpp.builder.utils/src/com/nokia/carbide/cpp/internal/builder/utils/handlers/ComponentCommandHandler.java	Tue Aug 03 11:44:01 2010 -0500
@@ -242,7 +242,7 @@
 
 					IProject lastProject = selectedFiles.get(0).getProject();
 					ICarbideProjectInfo cpi = CarbideBuilderPlugin.getBuildManager().getProjectInfo(lastProject);
-					String[] errorParserIds = CarbideCPPBuilder.getParserIdArray(cpi.getDefaultConfiguration().getErrorParserId());
+					String[] errorParserIds = cpi.getDefaultConfiguration().getErrorParserList();
 					IPath workingDirectory = cpi.getINFWorkingDirectory();
 
 					// create the launcher for the first file's project.  if there are files selected for other projects, change the
@@ -273,7 +273,7 @@
 
 					    		lastProject = project;
 								cpi = CarbideBuilderPlugin.getBuildManager().getProjectInfo(lastProject);
-								errorParserIds = CarbideCPPBuilder.getParserIdArray(cpi.getDefaultConfiguration().getErrorParserId());
+								errorParserIds = cpi.getDefaultConfiguration().getErrorParserList();
 								workingDirectory = cpi.getINFWorkingDirectory();
 								launcher = new CarbideCommandLauncher(lastProject, monitor, errorParserIds, workingDirectory);
 								launcher.showCommand(true);
--- a/builder/com.nokia.carbide.cpp.builder.utils/src/com/nokia/carbide/cpp/internal/builder/utils/handlers/PreprocessHandler.java	Tue Aug 03 10:07:15 2010 -0500
+++ b/builder/com.nokia.carbide.cpp.builder.utils/src/com/nokia/carbide/cpp/internal/builder/utils/handlers/PreprocessHandler.java	Tue Aug 03 11:44:01 2010 -0500
@@ -134,7 +134,7 @@
 			        			e.printStackTrace();
 			        		}
 
-			        		CarbideCommandLauncher launcher = new CarbideCommandLauncher(project, monitor, CarbideCPPBuilder.getParserIdArray(buildConfig.getErrorParserId()), cpi.getINFWorkingDirectory());
+			        		CarbideCommandLauncher launcher = new CarbideCommandLauncher(project, monitor, buildConfig.getErrorParserList(), cpi.getINFWorkingDirectory());
 							launcher.showCommand(true);
 
 							String cppTool = "cpp" + HostOS.EXE_EXT; //$NON-NLS-1$
--- a/builder/com.nokia.carbide.cpp.builder.utils/src/com/nokia/carbide/cpp/internal/builder/utils/handlers/ProjectCommandHandler.java	Tue Aug 03 10:07:15 2010 -0500
+++ b/builder/com.nokia.carbide.cpp.builder.utils/src/com/nokia/carbide/cpp/internal/builder/utils/handlers/ProjectCommandHandler.java	Tue Aug 03 11:44:01 2010 -0500
@@ -180,7 +180,7 @@
 						SubMonitor subMonitor = SubMonitor.convert(monitor, buildConfigList.size());
 						
 						for (final ICarbideBuildConfiguration currConfig : buildConfigList) {
-							launcher.setErrorParserManager(cpi.getINFWorkingDirectory(), CarbideCPPBuilder.getParserIdArray(currConfig.getErrorParserId()));
+							launcher.setErrorParserManager(cpi.getINFWorkingDirectory(), currConfig.getErrorParserList());
 							
 							if (monitor.isCanceled()) {
 								return new Status(IStatus.CANCEL, "Carbide.c++ builder utils plugin", IStatus.CANCEL, "Build Cancelled", null); 
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/BuildContextSBSv2.java	Tue Aug 03 10:07:15 2010 -0500
+++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/BuildContextSBSv2.java	Tue Aug 03 11:44:01 2010 -0500
@@ -202,32 +202,6 @@
 		return getCachedData().getSystemIncludePaths();
 	}
 	
-	@Override
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result
-				+ ((platform == null) ? 0 : platform.hashCode());
-		result = prime * result + ((getSDK() == null) ? 0 : getSDK().getEPOCROOT().hashCode());
-		result = prime * result + ((target == null) ? 0 : target.hashCode());
-		return result;
-	}
-
-
-	@Override
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (!(obj instanceof BuildContextSBSv2))
-			return false;
-		final BuildContextSBSv2 other = (BuildContextSBSv2) obj;
-		if (!configID.equalsIgnoreCase(other.configID)){
-			return false;
-		}
- 		return true;
-	}
 
 	public static String getPlatformFromV1ConfigName(String displayString) {
 		String[] tokens = displayString.split(" ");
@@ -241,6 +215,32 @@
 		}
 	}
 
+	@Override
+	public int hashCode() {
+		final int prime = 31;
+		int result = 1;
+		result = prime * result
+				+ ((configID == null) ? 0 : configID.hashCode());
+		return result;
+	}
+
+	@Override
+	public boolean equals(Object obj) {
+		if (this == obj)
+			return true;
+		if (obj == null)
+			return false;
+		if (getClass() != obj.getClass())
+			return false;
+		BuildContextSBSv2 other = (BuildContextSBSv2) obj;
+		if (configID == null) {
+			if (other.configID != null)
+				return false;
+		} else if (!configID.equals(other.configID))
+			return false;
+		return true;
+	}
+
 	public static String getTargetFromV1ConfigName(String displayString) {
 		String[] tokens = displayString.split(" ");
 		if (tokens[1].compareTo("Debug") == 0) {