/// <summary> /// Creates an edge from GraphSON using settings supplied in the constructor. /// </summary> public IEdge EdgeFromJson(JObject json, IVertex out_, IVertex in_) { if (json == null) { throw new ArgumentNullException(nameof(json)); } if (out_ == null) { throw new ArgumentNullException(nameof(out_)); } if (in_ == null) { throw new ArgumentNullException(nameof(in_)); } var props = ReadProperties(json, true, _hasEmbeddedTypes); var edgeId = GetTypedValueFromJsonNode(json[GraphSonTokens.Id]); var nodeLabel = json[GraphSonTokens.Label] ?? string.Empty; var label = nodeLabel == null ? null : nodeLabel.Value <string>(); var e = _factory.CreateEdge(edgeId, out_, in_, label); foreach (var entry in props.Where(entry => IncludeKey(entry.Key, _edgePropertyKeys, _edgePropertiesRule))) { e.SetProperty(entry.Key, entry.Value); } return(e); }