public Edge edgeFromJson(final JsonNode json, final Vertex out, final Vertex in) throws IOException {
final Map<String, Object> props = GraphSONUtility.readProperties(json);
final Object edgeId = getTypedValueFromJsonNode(json.get(GraphSONTokens._ID));
final JsonNode nodeLabel = json.get(GraphSONTokens._LABEL);
final String label = nodeLabel == null ? EMPTY_STRING : nodeLabel.textValue();
final Edge e = out.addEdge(label, in, T.id, edgeId);
for (Map.Entry<String, Object> entry : props.entrySet()) {
e.property(entry.getKey(), entry.getValue());
}