code: @Override
      public KamEdge findEdge(KamNode sourceNode,
              RelationshipType relationshipType, KamNode targetNode)
              throws InvalidArgument {
          // Make sure the nodes are valid for this graph
          if (!contains(sourceNode)) {
              throw new InvalidArgument("source Node is not in graph");
          }
          if (!contains(targetNode)) {
              throw new InvalidArgument("target Node is not in graph");
          }
  
          // See if the edge already exists. The hash ignores the edgeId
          KamEdge kamEdge =
                  new KamEdgeImpl(this, -1, sourceNode, relationshipType,
                          targetNode);
          if (edgeIdMap.keySet().contains(kamEdge)) {
              Integer kamEdgeId = edgeIdMap.get(kamEdge);
              kamEdge = idEdgeMap.get(kamEdgeId);
          } else {
              // Can't find it in the graph
              kamEdge = null;
          }
          return kamEdge;
  
      }
docs: {@inheritDoc}