public void removeDependency(TaskDependency dep){
  Node srcNode=myNodeMap.get(dep.getDependee());
  Node dstNode=myNodeMap.get(dep.getDependant());
  if (srcNode == null && dstNode == null) {
    return;
  }
  assert (srcNode != null && dstNode != null) : "Inconsistent dependency graph state: for dep=" + dep + " one of the ends is missing";
  DependencyEdge diedEdge=findExplicitDependency(dep,srcNode,dstNode);
  if (diedEdge == null) {
    return;
  }
  removeEdge(diedEdge);
  for (  DependencyEdge edge : Lists.newArrayList(srcNode.getOutgoing())) {
    if (edge instanceof ImplicitInheritedDependency) {
      if (((ImplicitInheritedDependency)edge).myExplicitDep == diedEdge) {
        removeEdge(edge);
      }
    }
  }
  fireGraphChanged();
}

public void removeDependency ( TaskDependency dep ) { Node srcNode = myNodeMap . get ( dep . getDependee ( ) ) ; Node dstNode = myNodeMap . get ( dep . getDependant ( ) ) ; if ( srcNode == null && dstNode == null ) { return ; } assert ( srcNode != null && dstNode != null ) : "Inconsistent dependency graph state: for dep=" + dep + " one of the ends is missing" ; DependencyEdge diedEdge = findExplicitDependency ( dep , srcNode , dstNode ) ; if ( diedEdge == null ) { return ; } removeEdge ( diedEdge ) ; for ( DependencyEdge edge : Lists . newArrayList ( srcNode . getOutgoing ( ) ) ) { if ( edge instanceof ImplicitInheritedDependency ) { if ( ( ( ImplicitInheritedDependency ) edge ) . myExplicitDep == diedEdge ) { removeEdge ( edge ) ; } } } fireGraphChanged ( ) ; }
removes explicit dependency . also removes all inherited dependencies constructed from that one
