private void addEdgeInternal(EdgeDirection direction, StatEdge edge) {
    EdgeType type = edge.getType();

    EdgeType[] arrtypes;
    if (type == EdgeType.EXCEPTION) {
      arrtypes = new EdgeType[]{EdgeType.ALL, EdgeType.EXCEPTION};
    }
    else {
      arrtypes = new EdgeType[]{EdgeType.ALL, EdgeType.DIRECT_ALL, type};
    }

    for (EdgeType edgetype : arrtypes) {
      addEdgeDirectInternal(direction, edge, edgetype);
    }
  }
private void addEdgeInternal(EdgeDirection direction, StatEdge edge)