public dynamic Objectify(JToken graphsonObject, IGraphSONReader reader)
        {
            var bulkObj  = reader.ToObject(graphsonObject["bulk"]);
            var valueObj = reader.ToObject(graphsonObject["value"]);

            return(new Gremlin.Net.Process.Traversal.Traverser(valueObj, bulkObj));
        }
        public dynamic Objectify(JToken token, Func <JToken, GraphNode> factory, IGraphSONReader reader)
        {
            ICollection <ICollection <string> > labels  = null;
            ICollection <GraphNode>             objects = null;

            if (token["labels"] is JArray labelsProp)
            {
                // labels prop is a js Array<Array<string>>
                labels = labelsProp
                         .Select(node =>
                {
                    var arrayNode = node as JArray;
                    if (arrayNode == null)
                    {
                        throw new InvalidOperationException($"Cannot create a Path from {token}");
                    }
                    return(new HashSet <string>(arrayNode.Select(n => n.ToString())));
                })
                         .ToArray();
            }

            if (token["objects"] is JArray objectsProp)
            {
                // labels prop is a js Array<object>
                objects = objectsProp.Select(o => ToGraphNode(factory, o)).ToArray();
            }
            return(new Path(labels, objects));
        }
 public dynamic Objectify(JToken token, Func <JToken, GraphNode> factory, IGraphSONReader reader)
 {
     return(new Property(
                ToString(token, "key", true),
                ToGraphNode(factory, token, "value"),
                ToGraphNode(factory, token, "element")));
 }
        public dynamic Objectify(JToken graphsonObject, IGraphSONReader reader)
        {
            var id    = reader.ToObject(graphsonObject["id"]);
            var label = (string)graphsonObject["label"] ?? Gremlin.Net.Structure.Vertex.DefaultLabel;

            return(new Gremlin.Net.Structure.Vertex(id, label));
        }
        private dynamic ReadTypedValue(JToken typedValue, IGraphSONReader reader)
        {
            var value = typedValue[GraphSONTokens.ValueKey];

            if (IsNullOrUndefined(value))
            {
                return(null);
            }

            var graphSONType = (string)typedValue[GraphSONTokens.TypeKey];

            if (_customDeserializers.TryGetValue(graphSONType, out var deserializer))
            {
                return(deserializer.Objectify(typedValue[GraphSONTokens.ValueKey], reader));
            }

            if (_structureDeserializers.TryGetValue(graphSONType, out var structureDeserializer))
            {
                return(structureDeserializer.Objectify(typedValue[GraphSONTokens.ValueKey], GraphNodeFactory, reader));
            }

            if (_deserializers.TryGetValue(graphSONType, out deserializer))
            {
                return(deserializer.Objectify(typedValue[GraphSONTokens.ValueKey], reader));
            }

            throw new InvalidOperationException($"Deserializer for \"{graphSONType}\" not found");
        }
        public dynamic Objectify(JToken graphsonObject, IGraphSONReader reader)
        {
            var key     = (string)graphsonObject["key"];
            var value   = reader.ToObject(graphsonObject["value"]);
            var element = graphsonObject["element"] != null?reader.ToObject(graphsonObject["element"]) : null;

            return(new Gremlin.Net.Structure.Property(key, value, element));
        }
        public dynamic Objectify(JToken graphsonObject, IGraphSONReader reader)
        {
            var months = (int)reader.ToObject(graphsonObject["months"]);
            var days   = (int)reader.ToObject(graphsonObject["days"]);
            var nanos  = (long)reader.ToObject(graphsonObject["nanos"]);

            return(new Duration(months, days, nanos));
        }
        public dynamic Objectify(JToken graphsonObject, IGraphSONReader reader)
        {
            var labels =
                graphsonObject["labels"]
                .Select(readObjLabels => new HashSet <string>(readObjLabels.Select(l => (string)l)))
                .ToList <ISet <string> >();
            var objects = graphsonObject["objects"].Select(o => reader.ToObject(o)).ToList();

            return(new Gremlin.Net.Structure.Path(labels, objects));
        }
        public dynamic Objectify(JToken graphsonObject, IGraphSONReader reader)
        {
            var id     = reader.ToObject(graphsonObject["id"]);
            var label  = (string)graphsonObject["label"];
            var value  = reader.ToObject(graphsonObject["value"]);
            var vertex = graphsonObject["vertex"] != null
                ? new Gremlin.Net.Structure.Vertex(reader.ToObject(graphsonObject["vertex"]))
                : null;

            return(new VertexProperty(id, label, value, vertex));
        }
        public dynamic Objectify(JToken graphsonObject, IGraphSONReader reader)
        {
            var str = TokenToString(graphsonObject);

            if (str == null)
            {
                return(null);
            }

            return(FromString(str));
        }
示例#11
0
        public dynamic Objectify(JToken token, Func <JToken, GraphNode> factory, IGraphSONReader reader)
        {
            var graphNode = ToGraphNode(factory, token);

            return(new VertexProperty(
                       graphNode.Get <GraphNode>("id", true),
                       graphNode.Get <string>("label"),
                       graphNode.Get <GraphNode>("value", true),
                       graphNode.Get <GraphNode>("vertex"),
                       new Dictionary <string, GraphNode>(0)));
        }
示例#12
0
        public dynamic Objectify(JToken graphsonObject, IGraphSONReader reader)
        {
            var jArray = graphsonObject as JArray;

            if (jArray == null)
            {
                return(new HashSet <object>());
            }
            // ISet<object>
            return(new HashSet <object>(jArray.Select(reader.ToObject)));
        }
示例#13
0
 public CustomGraphSON3Reader(
     Func <JToken, GraphNode> graphNodeFactory,
     IReadOnlyDictionary <string, IGraphSONDeserializer> customDeserializers,
     IGraphSONReader reader)
     : base(
         CustomGraphSON3Reader.Deserializers,
         CustomGraphSON3Reader.StructureDeserializers,
         graphNodeFactory,
         customDeserializers,
         reader)
 {
 }
        public dynamic Objectify(JToken graphsonObject, IGraphSONReader reader)
        {
            // "labels" is a object[] where each item is ISet<object>
            var labelProperty = (object[])reader.ToObject(graphsonObject["labels"]);
            var labels        = labelProperty
                                .Select(x => new HashSet <string>(((ISet <object>)x).Cast <string>()))
                                .ToList <ISet <string> >();

            // "objects" is an object[]
            object[] objects = reader.ToObject(graphsonObject["objects"]);
            return(new Gremlin.Net.Structure.Path(labels, objects));
        }
示例#15
0
        public dynamic Objectify(JToken graphsonObject, IGraphSONReader reader)
        {
            var outVId    = reader.ToObject(graphsonObject["outV"]);
            var outVLabel = (string)(graphsonObject["outVLabel"] ?? Gremlin.Net.Structure.Vertex.DefaultLabel);
            var outV      = new Gremlin.Net.Structure.Vertex(outVId, outVLabel);
            var inVId     = reader.ToObject(graphsonObject["inV"]);
            var inVLabel  = (string)(graphsonObject["inVLabel"] ?? Gremlin.Net.Structure.Vertex.DefaultLabel);
            var inV       = new Gremlin.Net.Structure.Vertex(inVId, inVLabel);
            var edgeId    = reader.ToObject(graphsonObject["id"]);
            var edgeLabel = (string)graphsonObject["label"] ?? "edge";

            return(new Gremlin.Net.Structure.Edge(edgeId, outV, edgeLabel, inV));
        }
 protected CustomGraphSON2Reader(
     Dictionary <string, IGraphSONDeserializer> deserializers,
     Dictionary <string, IGraphSONStructureDeserializer> structureDeserializers,
     Func <JToken, GraphNode> graphNodeFactory,
     IReadOnlyDictionary <string, IGraphSONDeserializer> customDeserializers,
     IGraphSONReader reader)
 {
     _deserializers          = deserializers;
     _structureDeserializers = structureDeserializers;
     _reader = reader;
     _customDeserializers = customDeserializers;
     GraphNodeFactory     = graphNodeFactory;
 }
示例#17
0
        public dynamic Objectify(JToken graphsonObject, IGraphSONReader reader)
        {
            var jArray = graphsonObject as JArray;

            if (jArray == null)
            {
                return(new Dictionary <object, object>(0));
            }
            var result = new Dictionary <object, object>(jArray.Count / 2);

            for (var i = 0; i < jArray.Count; i += 2)
            {
                result[reader.ToObject(jArray[i])] = reader.ToObject(jArray[i + 1]);
            }
            // IDictionary<object, object>
            return(result);
        }
示例#18
0
        public dynamic Objectify(JToken graphsonObject, IGraphSONReader reader)
        {
            var jArray = graphsonObject as JArray;

            if (jArray == null)
            {
                return(ListSerializer.EmptyList);
            }
            var result = new object[jArray.Count];

            for (var i = 0; i < result.Length; i++)
            {
                result[i] = reader.ToObject(jArray[i]);
            }
            // object[] implements IList<object>
            return(result);
        }
        public dynamic Objectify(JToken token, Func <JToken, GraphNode> factory, IGraphSONReader reader)
        {
            IDictionary <string, GraphNode> properties = null;
            var tokenProperties = !(token is JObject jobj) ? null : jobj["properties"];

            if (tokenProperties != null && tokenProperties is JObject propertiesJsonProp)
            {
                properties = propertiesJsonProp
                             .Properties()
                             .ToDictionary(prop => prop.Name, prop => ToGraphNode(factory, prop.Value));
            }

            var label = ToString(token, "label", false) ?? VertexDeserializer.DefaultLabel;

            return(new Vertex(
                       ToGraphNode(factory, token, "id", true),
                       label,
                       properties ?? new Dictionary <string, GraphNode>(0)));
        }
示例#20
0
        public dynamic Objectify(JToken graphsonObject, IGraphSONReader reader)
        {
            var base64String = graphsonObject.ToObject <string>();

            return(Convert.FromBase64String(base64String));
        }
        public dynamic Objectify(JToken graphsonObject, Func <JToken, GraphNode> factory, IGraphSONReader reader)
        {
            ICollection <ICollection <string> > labels  = null;
            ICollection <GraphNode>             objects = null;

            if (graphsonObject is JObject jObj)
            {
                labels  = ParseLabels(jObj);
                objects = ParseObjects(jObj, factory);
            }

            return(new Path(labels, objects));
        }
示例#22
0
 public dynamic Objectify(JToken graphsonObject, IGraphSONReader reader)
 {
     return(graphsonObject.ToObject <Guid>());
 }
示例#23
0
 public dynamic Objectify(JToken graphsonObject, IGraphSONReader reader)
 {
     return(Gremlin.Net.Process.Traversal.Direction.GetByValue(graphsonObject.ToString()));
 }
        public dynamic Objectify(JToken graphsonObject, IGraphSONReader reader)
        {
            var bigInteger = graphsonObject.ToObject <string>();

            return(BigInteger.Parse(bigInteger));
        }
示例#25
0
 public dynamic Objectify(JToken graphsonObject, IGraphSONReader reader)
 {
     return(graphsonObject.ToObject(HandledType));
 }
 public dynamic Objectify(JToken graphsonObject, IGraphSONReader reader)
 {
     return(Direction.GetByValue(graphsonObject.ToString()));
 }
        public dynamic Objectify(JToken graphsonObject, IGraphSONReader reader)
        {
            var milliseconds = graphsonObject.ToObject <long>();

            return(TinkerpopTimestampDeserializer.UnixStart.AddTicks(TimeSpan.TicksPerMillisecond * milliseconds));
        }
示例#28
0
        public dynamic Objectify(JToken graphsonObject, Func <JToken, GraphNode> factory, IGraphSONReader reader)
        {
            long bulkObj  = reader.ToObject(graphsonObject["bulk"]);
            var  valueObj = ToGraphNode(factory, graphsonObject, "value");

            return(new Traverser(valueObj, bulkObj));
        }