public static AnyValue Convert(IEnumerable <Notification> notifications)
            {
                IList <AnyValue> @out = new List <AnyValue>();

                foreach (Notification notification in notifications)
                {
                    InputPosition   pos             = notification.Position;                // position is optional
                    bool            includePosition = !pos.Equals(InputPosition.empty);
                    int             size            = includePosition ? 5 : 4;
                    MapValueBuilder builder         = new MapValueBuilder(size);

                    builder.Add("code", stringValue(notification.Code));
                    builder.Add("title", stringValue(notification.Title));
                    builder.Add("description", stringValue(notification.Description));
                    builder.Add("severity", stringValue(notification.Severity.ToString()));

                    if (includePosition)
                    {
                        // only add the position if it is not empty
                        builder.Add("position", VirtualValues.map(new string[] { "offset", "line", "column" }, new AnyValue[] { intValue(pos.Offset), intValue(pos.Line), intValue(pos.Column) }));
                    }

                    @out.Add(builder.Build());
                }
                return(VirtualValues.fromList(@out));
            }
            // Recurse through maps and sequences

            public override AnyValue MapMap(MapValue value)
            {
                MapValueBuilder builder = new MapValueBuilder();

                value.Foreach((k, v) => builder.Add(k, v.map(this)));
                return(builder.Build());
            }
 private void AddIfNonZero(MapValueBuilder builder, string name, int count)
 {
     if (count > 0)
     {
         builder.Add(name, intValue(count));
     }
 }
        private MapValue MapValues(params object[] values)
        {
            int             i       = 0;
            MapValueBuilder builder = new MapValueBuilder();

            while (i < values.Length)
            {
                builder.Add(( string )values[i++], ( AnyValue )values[i++]);
            }
            return(builder.Build());
        }
        public static MapValue Convert(ExecutionPlanDescription plan)
        {
            bool            hasProfilerStatistics = plan.HasProfilerStatistics();
            int             size = hasProfilerStatistics ? 9 : 4;
            MapValueBuilder @out = new MapValueBuilder(size);

            @out.Add("operatorType", stringValue(plan.Name));
            @out.Add("args", ValueUtils.asMapValue(plan.Arguments));
            @out.Add("identifiers", ValueUtils.asListValue(plan.Identifiers));
            @out.Add("children", Children(plan));
            if (hasProfilerStatistics)
            {
                Org.Neo4j.Graphdb.ExecutionPlanDescription_ProfilerStatistics profile = plan.ProfilerStatistics;
                @out.Add("dbHits", longValue(profile.DbHits));
                @out.Add("pageCacheHits", longValue(profile.PageCacheHits));
                @out.Add("pageCacheMisses", longValue(profile.PageCacheMisses));
                @out.Add("pageCacheHitRatio", doubleValue(profile.PageCacheHitRatio));
                @out.Add("rows", longValue(profile.Rows));
            }
            return(@out.Build());
        }
Exemple #6
0
        private static AnyValue ValueOf(object obj)
        {
            if (obj is MappedGraphType)
            {
                return((( MappedGraphType )obj).Value);
            }
            Value value = Values.unsafeOf(obj, true);

            if (value != null)
            {
                return(value);
            }
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: if (obj instanceof java.util.List<?>)
            if (obj is IList <object> )
            {
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: return fromList(((java.util.List<?>) obj).stream().map(ValueMapperTest::valueOf).collect(toList()));
                return(fromList(((IList <object>)obj).Select(ValueMapperTest.valueOf).ToList()));
            }
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: if (obj instanceof java.util.Map<?,?>)
            if (obj is IDictionary <object, ?> )
            {
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @SuppressWarnings("unchecked") java.util.Map<String,?> map = (java.util.Map<String,?>) obj;
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
                IDictionary <string, ?> map     = (IDictionary <string, ?>)obj;
                MapValueBuilder         builder = new MapValueBuilder(map.Count);
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: for (java.util.Map.Entry<String,?> entry : map.entrySet())
                foreach (KeyValuePair <string, ?> entry in map.SetOfKeyValuePairs())
                {
                    builder.Add(entry.Key, ValueOf(entry.Value));
                }

                return(builder.Build());
            }
//JAVA TO C# CONVERTER WARNING: The .NET Type.FullName property will not always yield results identical to the Java Class.getName method:
            throw new AssertionError("cannot convert: " + obj + " (a " + obj.GetType().FullName + ")");
        }
Exemple #7
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: public org.neo4j.values.virtual.MapValue unpackMap() throws java.io.IOException
            public override MapValue UnpackMap()
            {
                int size = ( int )UnpackMapHeader();

                if (size == 0)
                {
                    return(VirtualValues.EMPTY_MAP);
                }
                MapValueBuilder map;

                if (size == UNKNOWN_SIZE)
                {
                    map = new MapValueBuilder();
                    bool more = true;
                    while (more)
                    {
                        PackType keyType = PeekNextType();
                        string   key;
                        AnyValue val;
                        switch (keyType)
                        {
                        case PackType.END_OF_STREAM:
                            Unpack();
                            more = false;
                            break;

                        case PackType.STRING:
                            key = UnpackString();
                            val = Unpack();
                            if (map.Add(key, val) != null)
                            {
                                throw new BoltIOException(Org.Neo4j.Kernel.Api.Exceptions.Status_Request.Invalid, "Duplicate map key `" + key + "`.");
                            }
                            break;

                        case PackType.NULL:
                            throw new BoltIOException(Org.Neo4j.Kernel.Api.Exceptions.Status_Request.Invalid, "Value `null` is not supported as key in maps, must be a non-nullable string.");

                        default:
                            throw new BoltIOException(Org.Neo4j.Kernel.Api.Exceptions.Status_Request.InvalidFormat, "Bad key type: " + keyType);
                        }
                    }
                }
                else
                {
                    map = new MapValueBuilder(size);
                    for (int i = 0; i < size; i++)
                    {
                        PackType keyType = PeekNextType();
                        string   key;
                        switch (keyType)
                        {
                        case PackType.NULL:
                            throw new BoltIOException(Org.Neo4j.Kernel.Api.Exceptions.Status_Request.Invalid, "Value `null` is not supported as key in maps, must be a non-nullable string.");

                        case PackType.STRING:
                            key = UnpackString();
                            break;

                        default:
                            throw new BoltIOException(Org.Neo4j.Kernel.Api.Exceptions.Status_Request.InvalidFormat, "Bad key type: " + keyType);
                        }

                        AnyValue val = Unpack();
                        if (map.Add(key, val) != null)
                        {
                            throw new BoltIOException(Org.Neo4j.Kernel.Api.Exceptions.Status_Request.Invalid, "Duplicate map key `" + key + "`.");
                        }
                    }
                }
                return(map.Build());
            }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @SuppressWarnings({"unchecked", "WeakerAccess"}) public static org.neo4j.values.AnyValue materializeAnyResult(org.neo4j.kernel.impl.core.EmbeddedProxySPI proxySpi, Object anyValue)
        public static AnyValue MaterializeAnyResult(EmbeddedProxySPI proxySpi, object anyValue)
        {
            if (anyValue == null || anyValue == NO_VALUE)
            {
                return(NO_VALUE);
            }
            else if (anyValue is AnyValue)
            {
                return(MaterializeAnyValueResult(proxySpi, anyValue));
            }
            else if (anyValue is System.Collections.IList)
            {
                return(VirtualValues.fromList((IList <AnyValue>)(((System.Collections.IList)anyValue).Select(v => MaterializeAnyResult(proxySpi, v)).ToList())));
            }
            else if (anyValue is System.Collections.IDictionary)
            {
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: java.util.Map<String,?> incoming = (java.util.Map<String,?>) anyValue;
                IDictionary <string, ?> incoming = (IDictionary <string, ?>)anyValue;
                MapValueBuilder         builder  = new MapValueBuilder(incoming.Count);
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: for (java.util.Map.Entry<String,?> entry : incoming.entrySet())
                foreach (KeyValuePair <string, ?> entry in incoming.SetOfKeyValuePairs())
                {
                    builder.Add(entry.Key, MaterializeAnyResult(proxySpi, entry.Value));
                }
                return(builder.Build());
            }
            else if (anyValue is PrimitiveNodeStream)
            {
                return(VirtualValues.fromList((( PrimitiveNodeStream )anyValue).LongStream().mapToObj(id => (AnyValue)ValueUtils.fromNodeProxy(proxySpi.NewNodeProxy(id))).collect(Collectors.toList())));
            }
            else if (anyValue is PrimitiveRelationshipStream)
            {
                return(VirtualValues.fromList((( PrimitiveRelationshipStream )anyValue).LongStream().mapToObj(id => (AnyValue)ValueUtils.fromRelationshipProxy(proxySpi.NewRelationshipProxy(id))).collect(Collectors.toList())));
            }
            else if (anyValue is LongStream)
            {
                long[] array = (( LongStream )anyValue).toArray();
                return(Values.longArray(array));
            }
            else if (anyValue is DoubleStream)
            {
                double[] array = (( DoubleStream )anyValue).toArray();
                return(Values.doubleArray(array));
            }
            else if (anyValue is IntStream)
            {
                // IntStream is only used for list of primitive booleans
                return(VirtualValues.fromList((( IntStream )anyValue).mapToObj(i => Values.booleanValue(i != 0)).collect(Collectors.toList())));
            }
            else if (anyValue.GetType().IsArray)
            {
                Type componentType = anyValue.GetType().GetElementType();
                int  length        = Array.getLength(anyValue);

                if (componentType.IsPrimitive)
                {
                    object copy = Array.CreateInstance(componentType, length);
                    //noinspection SuspiciousSystemArraycopy
                    Array.Copy(anyValue, 0, copy, 0, length);
                    return(ValueUtils.of(copy));
                }
                else if (anyValue is string[])
                {
                    return(Values.stringArray(( string[] )anyValue));
                }
                else
                {
                    AnyValue[] copy = new AnyValue[length];
                    for (int i = 0; i < length; i++)
                    {
                        copy[i] = MaterializeAnyResult(proxySpi, Array.get(anyValue, i));
                    }
                    return(VirtualValues.list(copy));
                }
            }
            else
            {
                return(ValueUtils.of(anyValue));
            }
        }