Exemple #1
0
        /// <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);
        }