package edu.isi.karma.modeling.steiner.topk;
import java.util.Set;
/**
* This class represents an edge in a steiner tree. It has a source node, a sink node,
* an edge label and a weight.
* @author kasneci
*
*/
public class SteinerEdge extends Fact {
protected SteinerNode sourceNode;
protected SteinerNode sinkNode;
boolean isForced;
protected Set<String> modelIds;
public SteinerEdge(SteinerNode n1, String l, SteinerNode n2, float weight){
super(new Entity(n1.getNodeId()),new Entity(n2.getNodeId()),
new Relation(l),weight);
sourceNode= n1;//n1-->n2
sinkNode= n2;
isForced = false;
}
public int hashCode(){
return sourceNode.hashCode()^
label.name.hashCode()^
sinkNode.hashCode();
}
public String getEdgeLabel(){
return label.name;
}
public SteinerNode getSourceNode(){
return sourceNode;
}
public SteinerNode getSinkNode(){
return sinkNode;
}
public Set<String> getModelIds() {
return modelIds;
}
public void setModelIds(Set<String> modelIds) {
this.modelIds = modelIds;
}
public boolean isForced() {
return isForced;
}
public void setForced(boolean isForced) {
this.isForced = isForced;
}
}