package GKA.Graph;
import org.jgrapht.graph.DefaultEdge;
public class GKAEdge extends DefaultEdge{
/**
*
*/
private static final long serialVersionUID = -6523434696944744833L;
private final String edgeName;
private final Double weight;
private final Long uniqueId;
public GKAEdge(String name, Double weight, long uniqueId){
super();
this.edgeName = name;
this.weight = weight;
this.uniqueId = uniqueId;
}
public Object getSource(){
return super.getSource();
}
public Object getTarget(){
return super.getTarget();
}
public Double getWeight() {
return weight;
}
public String getName(){
return this.edgeName;
}
public long getUniqueId(){
return uniqueId;
}
public String toString()
{
String retVal;
if (edgeName == null){
retVal = "(" + getSource() + " : " + getTarget() + ")";
}
else{
retVal = "(" + edgeName + ")";
}
if (getWeight() != null){
retVal += " : " + getWeight();
}
return retVal;
}
@Override
public boolean equals(Object object){
//return this == object || ((object != null && object instanceof GKAEdge) && (this.uniqueId.equals(((GKAEdge) object).getUniqueId())));
if(object == null){
return false;
}
else if(object == this){
return true;
}
else if(!(object instanceof GKAEdge)){
return false;
}
else{
GKAEdge edge = (GKAEdge) object;
boolean retval = true;
if(getSource() == null){
retval = retval && edge.getSource() == null;
}
else{
retval = retval && getSource().equals(edge.getSource());
}
if(getTarget() == null){
retval = retval && edge.getTarget() == null;
}
else{
retval = retval && getTarget().equals(edge.getTarget());
}
if(getName() == null){
retval = retval && edge.getName() == null;
}
else{
retval = retval && getName().equals(edge.getName());
}
if(getWeight() == null){
retval = retval && edge.getWeight() == null;
}
else{
retval = retval && getWeight().equals(edge.getWeight());
}
return retval && (uniqueId == edge.getUniqueId());
}
}
@Override
public int hashCode(){
int retVal = 31;
if(getSource() != null){
retVal += getSource().hashCode();
}
if(getTarget() != null){
retVal += getTarget().hashCode();
}
if(getName() != null){
retVal += getName().hashCode();
}
if(getWeight() != null){
retVal += getWeight().hashCode();
}
retVal += uniqueId.hashCode();
return retVal;
//return uniqueId.hashCode();
}
}