Changeset 11196
- Timestamp:
- 31.12.2008 12:29:35 (15 months ago)
- Files:
-
- 1 modified
-
trunk/Proofs/EdgeUtils.hs (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Proofs/EdgeUtils.hs
r11039 r11196 113 113 InsertNode n -> (insLNodeDG n g, InsertNode n) 114 114 DeleteNode n -> (delLNodeDG n g, DeleteNode n) 115 InsertEdge e -> let (newEdge, ng) = insLEdgeDG e g in 116 (ng, InsertEdge newEdge) 115 InsertEdge e -> case tryToGetEdge e g of 116 Nothing -> let (newEdge, ng) = insLEdgeDG e g in 117 (ng, InsertEdge newEdge) 118 Just ne -> 119 if elem (getEdgeId e) [defaultEdgeId, getEdgeId ne] 120 then (g, InsertEdge ne) 121 else error "Proofs.EdgeUtils.updateDGOnly" 117 122 DeleteEdge e -> (delLEdgeDG e g, DeleteEdge e) 118 123 SetNodeLab _ n -> let (newG, o) = labelNodeDG n g in (newG, SetNodeLab o n) … … 226 231 case tryToGetEdge edge dgraph of 227 232 Nothing -> changeDGH dgraph $ InsertEdge edge 228 Just e@(src, tgt, label) -> let eid = getEdgeId edge in229 if e id == defaultEdgeId233 Just ne -> 234 if elem (getEdgeId edge) [defaultEdgeId, getEdgeId ne] 230 235 then dgraph 231 else let nid = assert (dgl_id label == eid) eid 232 newEdge = (src, tgt, 233 label { dgl_id = nid }) 234 in changesDGH dgraph [DeleteEdge e, InsertEdge newEdge] 236 else error "Proofs.EdgeUtils.insertDGLEdge" 235 237 236 238 {- | get the edge id out of a given edge -}