package de.gaalop.tba.cfgImport.optimization;
import de.gaalop.dfg.Expression;
/**
* Implements a component of a variable
* @author Christian Steinmetz
*/
public class VariableComponent {
private String name;
private int bladeIndex;
private Expression referredExpression;
public VariableComponent(String name, int bladeIndex, Expression referredExpression) {
this.name = name;
this.bladeIndex = bladeIndex;
this.referredExpression = referredExpression;
}
public int getBladeIndex() {
return bladeIndex;
}
public String getName() {
return name;
}
public void setBladeIndex(int bladeIndex) {
this.bladeIndex = bladeIndex;
}
public void setName(String name) {
this.name = name;
}
public Expression getReferredExpression() {
return referredExpression;
}
public void setReferredExpression(Expression referredExpression) {
this.referredExpression = referredExpression;
}
@Override
public int hashCode() {
return 87 * name.hashCode() + bladeIndex;
}
@Override
public boolean equals(Object obj) {
if (!(obj instanceof VariableComponent)) {
return false;
}
VariableComponent comp = (VariableComponent) obj;
if (comp.bladeIndex != this.bladeIndex) {
return false;
}
if (!comp.name.equals(this.name)) {
return false;
}
return true;
}
@Override
public String toString() {
return name + "$" + bladeIndex;
}
}