mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-07 17:56:01 +02:00
bug 319512: Extracted class MatchKey
This commit is contained in:
parent
6be5fbc124
commit
666b5e3edb
4 changed files with 90 additions and 217 deletions
|
@ -2322,71 +2322,12 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider
|
||||||
return rBld == ManagedBuildManager.getRealBuilder(builder);
|
return rBld == ManagedBuildManager.getRealBuilder(builder);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean performMatchComparison(IBuilder builder){
|
|
||||||
if(builder == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if(builder == this)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
// if(tool.isReal() && isReal())
|
|
||||||
// return false;
|
|
||||||
// if(!tool.getToolCommand().equals(getToolCommand()))
|
|
||||||
// return false;
|
|
||||||
|
|
||||||
if(!builder.getName().equals(getName()))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
String thisVersion = ManagedBuildManager.getVersionFromIdAndVersion(getId());
|
|
||||||
String otherVersion = ManagedBuildManager.getVersionFromIdAndVersion(builder.getId());
|
|
||||||
if(thisVersion == null || thisVersion.length() == 0){
|
|
||||||
if(otherVersion != null && otherVersion.length() != 0)
|
|
||||||
return false;
|
|
||||||
} else {
|
|
||||||
if(!thisVersion.equals(otherVersion))
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private class MatchKey {
|
|
||||||
Builder builder;
|
|
||||||
|
|
||||||
public MatchKey(Builder builder) {
|
|
||||||
this.builder = builder;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object obj) {
|
|
||||||
if(obj == this)
|
|
||||||
return true;
|
|
||||||
if(!(obj instanceof MatchKey))
|
|
||||||
return false;
|
|
||||||
MatchKey other = (MatchKey)obj;
|
|
||||||
return builder.performMatchComparison(other.builder);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
String name = getName();
|
|
||||||
if(name == null)
|
|
||||||
name = getId();
|
|
||||||
int code = name.hashCode();
|
|
||||||
String version = ManagedBuildManager.getVersionFromIdAndVersion(getId());
|
|
||||||
if(version != null)
|
|
||||||
code += version.hashCode();
|
|
||||||
return code;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public Object getMatchKey() {
|
public Object getMatchKey() {
|
||||||
if(isAbstract())
|
if(isAbstract())
|
||||||
return null;
|
return null;
|
||||||
if(!isExtensionBuilder)
|
if(!isExtensionBuilder)
|
||||||
return null;
|
return null;
|
||||||
return new MatchKey(this);
|
return new MatchKey<Builder>(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setIdenticalList(List list) {
|
public void setIdenticalList(List list) {
|
||||||
|
|
|
@ -0,0 +1,87 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2004, 2011 Intel Corporation and others.
|
||||||
|
* All rights reserved. This program and the accompanying materials
|
||||||
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
|
* which accompanies this distribution, and is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Intel Corporation - Initial API and implementation
|
||||||
|
*******************************************************************************/
|
||||||
|
package org.eclipse.cdt.managedbuilder.internal.core;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
|
||||||
|
|
||||||
|
public class MatchKey<T extends BuildObject> {
|
||||||
|
private T buildObject;
|
||||||
|
|
||||||
|
public MatchKey(T builder) {
|
||||||
|
this.buildObject = builder;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
if(obj == this)
|
||||||
|
return true;
|
||||||
|
if(!(obj instanceof MatchKey))
|
||||||
|
return false;
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
MatchKey<T> other = (MatchKey<T>)obj;
|
||||||
|
return performMatchComparison(other.buildObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
String name = buildObject.getName();
|
||||||
|
if(name == null)
|
||||||
|
name = buildObject.getId();
|
||||||
|
int code = name.hashCode();
|
||||||
|
String version = ManagedBuildManager.getVersionFromIdAndVersion(buildObject.getId());
|
||||||
|
if(version != null)
|
||||||
|
code += version.hashCode();
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean performMatchComparison(T bo){
|
||||||
|
if(bo == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if(bo == buildObject)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
// if(bo.isReal() && buildObject.isReal())
|
||||||
|
// return false;
|
||||||
|
// if(!bo.getToolCommand().equals(buildObject.getToolCommand()))
|
||||||
|
// return false;
|
||||||
|
|
||||||
|
if(!bo.getName().equals(buildObject.getName()))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
String thisVersion = ManagedBuildManager.getVersionFromIdAndVersion(buildObject.getId());
|
||||||
|
String otherVersion = ManagedBuildManager.getVersionFromIdAndVersion(bo.getId());
|
||||||
|
if(thisVersion == null || thisVersion.length() == 0){
|
||||||
|
if(otherVersion != null && otherVersion.length() != 0)
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
if(!thisVersion.equals(otherVersion))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
/* IOption options[] = buildObject.getOptions();
|
||||||
|
IOption otherOptions[] = bo.getOptions();
|
||||||
|
|
||||||
|
if(!ListComparator.match(options,
|
||||||
|
otherOptions,
|
||||||
|
new Comparator(){
|
||||||
|
public boolean equal(Object o1, Object o2){
|
||||||
|
return ((Option)o1).matches((Option)o2);
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -3590,48 +3590,6 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
|
||||||
return rT == ManagedBuildManager.getRealTool(tool);
|
return rT == ManagedBuildManager.getRealTool(tool);
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean performMatchComparison(ITool tool){
|
|
||||||
if(tool == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if(tool == this)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
// if(tool.isReal() && isReal())
|
|
||||||
// return false;
|
|
||||||
// if(!tool.getToolCommand().equals(getToolCommand()))
|
|
||||||
// return false;
|
|
||||||
|
|
||||||
if(!tool.getName().equals(getName()))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
String thisVersion = ManagedBuildManager.getVersionFromIdAndVersion(getId());
|
|
||||||
String otherVersion = ManagedBuildManager.getVersionFromIdAndVersion(tool.getId());
|
|
||||||
if(thisVersion == null || thisVersion.length() == 0){
|
|
||||||
if(otherVersion != null && otherVersion.length() != 0)
|
|
||||||
return false;
|
|
||||||
} else {
|
|
||||||
if(!thisVersion.equals(otherVersion))
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
/* IOption options[] = getOptions();
|
|
||||||
IOption otherOptions[] = tool.getOptions();
|
|
||||||
|
|
||||||
if(!ListComparator.match(options,
|
|
||||||
otherOptions,
|
|
||||||
new Comparator(){
|
|
||||||
public boolean equal(Object o1, Object o2){
|
|
||||||
return ((Option)o1).matches((Option)o2);
|
|
||||||
}
|
|
||||||
}))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
/* public SupportedProperties getSupportedProperties(){
|
/* public SupportedProperties getSupportedProperties(){
|
||||||
Map map = findSupportedProperties();
|
Map map = findSupportedProperties();
|
||||||
if(map != null)
|
if(map != null)
|
||||||
|
@ -3658,43 +3616,12 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
|
||||||
return supportsManagedBuild.booleanValue();
|
return supportsManagedBuild.booleanValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class MatchKey {
|
|
||||||
Tool tool;
|
|
||||||
|
|
||||||
public MatchKey(Tool tch) {
|
|
||||||
tool = tch;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object obj) {
|
|
||||||
if(obj == this)
|
|
||||||
return true;
|
|
||||||
if(!(obj instanceof MatchKey))
|
|
||||||
return false;
|
|
||||||
MatchKey other = (MatchKey)obj;
|
|
||||||
return tool.performMatchComparison(other.tool);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
String name = tool.getName();
|
|
||||||
if(name == null)
|
|
||||||
name = tool.getId();
|
|
||||||
int code = name.hashCode();
|
|
||||||
String version = ManagedBuildManager.getVersionFromIdAndVersion(tool.getId());
|
|
||||||
if(version != null)
|
|
||||||
code += version.hashCode();
|
|
||||||
return code;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public Object getMatchKey() {
|
public Object getMatchKey() {
|
||||||
if(isAbstract())
|
if(isAbstract())
|
||||||
return null;
|
return null;
|
||||||
if(!isExtensionTool)
|
if(!isExtensionTool)
|
||||||
return null;
|
return null;
|
||||||
return new MatchKey(this);
|
return new MatchKey<Tool>(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setIdenticalList(List list) {
|
public void setIdenticalList(List list) {
|
||||||
|
|
|
@ -2249,57 +2249,6 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
|
||||||
return rTc == ManagedBuildManager.getRealToolChain(tc);
|
return rTc == ManagedBuildManager.getRealToolChain(tc);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean performMatchCompatison(IToolChain tCh){
|
|
||||||
if(tCh == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if(tCh == this)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
// if(tCh.isReal() && isReal())
|
|
||||||
// return false;
|
|
||||||
|
|
||||||
String name = tCh.getName();
|
|
||||||
if(name == null){
|
|
||||||
if(getName() != null)
|
|
||||||
return false;
|
|
||||||
} else if(!name.equals(getName())){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
String thisVersion = ManagedBuildManager.getVersionFromIdAndVersion(getId());
|
|
||||||
String otherVersion = ManagedBuildManager.getVersionFromIdAndVersion(tCh.getId());
|
|
||||||
if(thisVersion == null || thisVersion.length() == 0){
|
|
||||||
if(otherVersion != null && otherVersion.length() != 0)
|
|
||||||
return false;
|
|
||||||
} else {
|
|
||||||
if(!thisVersion.equals(otherVersion))
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
|
|
||||||
// if(true)
|
|
||||||
// return true;
|
|
||||||
//
|
|
||||||
// ITool tools[] = getTools();
|
|
||||||
// ITool otherTools[] = tCh.getTools();
|
|
||||||
//
|
|
||||||
// if(tools.length != otherTools.length)
|
|
||||||
// return false;
|
|
||||||
//
|
|
||||||
// if(!ListComparator.match(tools,
|
|
||||||
// otherTools,
|
|
||||||
// new Comparator(){
|
|
||||||
// public boolean equal(Object o1, Object o2){
|
|
||||||
// return ((Tool)o1).performMatchComparison((Tool)o2);
|
|
||||||
// }
|
|
||||||
// }))
|
|
||||||
// return false;
|
|
||||||
//
|
|
||||||
// return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List getIdenticalList(){
|
public List getIdenticalList(){
|
||||||
return identicalList;//;(ArrayList)identicalToolChainsList.clone();
|
return identicalList;//;(ArrayList)identicalToolChainsList.clone();
|
||||||
}
|
}
|
||||||
|
@ -2344,43 +2293,12 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private class MatchKey {
|
|
||||||
ToolChain toolChain;
|
|
||||||
|
|
||||||
public MatchKey(ToolChain tch) {
|
|
||||||
toolChain = tch;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object obj) {
|
|
||||||
if(obj == this)
|
|
||||||
return true;
|
|
||||||
if(!(obj instanceof MatchKey))
|
|
||||||
return false;
|
|
||||||
MatchKey other = (MatchKey)obj;
|
|
||||||
return toolChain.performMatchCompatison(other.toolChain);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
String name = getName();
|
|
||||||
if(name == null)
|
|
||||||
name = getId();
|
|
||||||
int code = name.hashCode();
|
|
||||||
String version = ManagedBuildManager.getVersionFromIdAndVersion(getId());
|
|
||||||
if(version != null)
|
|
||||||
code += version.hashCode();
|
|
||||||
return code;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public Object getMatchKey() {
|
public Object getMatchKey() {
|
||||||
if(isAbstract())
|
if(isAbstract())
|
||||||
return null;
|
return null;
|
||||||
if(!isExtensionToolChain)
|
if(!isExtensionToolChain)
|
||||||
return null;
|
return null;
|
||||||
return new MatchKey(this);
|
return new MatchKey<ToolChain>(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setIdenticalList(List list) {
|
public void setIdenticalList(List list) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue