question: 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 ( ) ; }
target:  Removes explicit dependency. Also removes all inherited dependencies constructed from that one