예제 #1
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: protected AutoCloseable query(org.neo4j.storageengine.api.schema.SimpleNodeValueClient client, org.neo4j.internal.kernel.api.IndexOrder order, org.neo4j.internal.kernel.api.IndexQuery... predicates) throws Exception
        protected internal virtual AutoCloseable Query(SimpleNodeValueClient client, IndexOrder order, params IndexQuery[] predicates)
        {
            IndexReader reader = Accessor.newReader();

            reader.Query(client, order, false, predicates);
            return(reader);
        }
예제 #2
0
        /// <summary>
        /// 操作得分
        /// </summary>
        /// <param name="starttime"></param>
        /// <param name="endtime"></param>
        /// <param name="DBName"></param>
        /// <returns></returns>
        public IList OQIAnalysis_score(String id, String starttime, String endtime, String DBName)
        {
            IList list = new ArrayList();
            IDao  dao  = new Dao(DBName);

            if (null != starttime && null != endtime)
            {
                string strSQL;
                strSQL = "exec procOperateQualitySearch_Score '" + starttime + "','" + endtime + "',0";
                DataSet ds = dao.executeProcDS(strSQL, "procOperateQualitySearch_Score");
                if (ds != null)
                {
                    int i = ds.Tables.Count;
                    try
                    {
                        int flag = int.Parse(id);
                        for (int di = 0; di < ds.Tables[flag - 1].Rows.Count; di++)
                        {
                            IndexOrder compAnaly = new IndexOrder();
                            compAnaly.name  = ds.Tables[flag - 1].Rows[di]["DistributeName"].ToString();
                            compAnaly.value = float.Parse(ds.Tables[flag - 1].Rows[di]["Score"].ToString());
                            list.Add(compAnaly);
                        }
                    }
                    catch (Exception e)
                    {
                        string str = e.Message;
                    }
                }
            }
            dao.closeConn();
            return(list);
        }
예제 #3
0
        internal override void ValidateQuery(IndexOrder indexOrder, IndexQuery[] predicates)
        {
            if (predicates.Length != 1)
            {
                throw new System.NotSupportedException("Spatial index doesn't handle composite queries");
            }

            CapabilityValidator.ValidateQuery(SpatialIndexProvider.Capability, indexOrder, predicates);
        }
예제 #4
0
        private DynamicTest RangeTest(ReadableTransactionState state, IndexOrder indexOrder, Value lo, bool includeLo, Value hi, bool includeHi, params NodeWithPropertyValues[] expected)
        {
            return(DynamicTest.dynamicTest(string.Format("range seek: lo={0} (incl: {1}), hi={2} (incl: {3})", lo, includeLo, hi, includeHi), () =>
            {
                // Internal production code relies on null for unbounded, and cannot cope with NO_VALUE in this case
                Debug.Assert(lo != NO_VALUE);
                Debug.Assert(hi != NO_VALUE);
                AddedAndRemoved changes = indexUpdatesForRangeSeek(state, _index, IndexQuery.range(-1, lo, includeLo, hi, includeHi), indexOrder);
                AddedWithValuesAndRemoved changesWithValues = indexUpdatesWithValuesForRangeSeek(state, _index, IndexQuery.range(-1, lo, includeLo, hi, includeHi), indexOrder);

                AssertContains(indexOrder, changes, changesWithValues, expected);
            }));
        }
예제 #5
0
            internal virtual void AssertRangeSeekByPrefixForOrder(IndexOrder indexOrder)
            {
                // GIVEN
                ReadableTransactionState state = (new TxStateBuilder()).WithAdded(40L, "Aaron").withAdded(41L, "Agatha").withAdded(42L, "Andreas").withAdded(43L, "Barbarella").withAdded(44L, "Andrea").withAdded(45L, "Aristotle").withAdded(46L, "Barbara").withAdded(47L, "Andy").withAdded(48L, "Cinderella").withAdded(49L, "Andromeda").build();

                // WHEN
                AddedAndRemoved           changes           = indexUpdatesForRangeSeekByPrefix(state, outerInstance.index, stringValue("And"), indexOrder);
                AddedWithValuesAndRemoved changesWithValues = indexUpdatesWithValuesForRangeSeekByPrefix(state, outerInstance.index, stringValue("And"), indexOrder);

                NodeWithPropertyValues[] expected = new NodeWithPropertyValues[] { NodeWithPropertyValues(44L, "Andrea"), NodeWithPropertyValues(42L, "Andreas"), NodeWithPropertyValues(49L, "Andromeda"), NodeWithPropertyValues(47L, "Andy") };

                // THEN
                outerInstance.AssertContains(indexOrder, changes, changesWithValues, expected);
            }
예제 #6
0
        public override void Initialize(IndexDescriptor descriptor, IndexProgressor progressor, IndexQuery[] query, IndexOrder indexOrder, bool needsValues)
        {
            Debug.Assert(query != null);
            base.Initialize(progressor);
            _sortedMergeJoin.initialize(indexOrder);

            this._indexOrder  = indexOrder;
            this._needsValues = needsValues;
            this._query       = query;

            if (_read.hasTxStateWithChanges() && query.Length > 0)
            {
                IndexQuery firstPredicate = query[0];
                switch (firstPredicate.Type())
                {
                case exact:
                    // No need to order, all values are the same
                    this._indexOrder = IndexOrder.NONE;
                    SeekQuery(descriptor, query);
                    break;

                case exists:
                    SetNeedsValuesIfRequiresOrder();
                    ScanQuery(descriptor);
                    break;

                case range:
                    Debug.Assert(query.Length == 1);
                    SetNeedsValuesIfRequiresOrder();
                    RangeQuery(descriptor, (IndexQuery.RangePredicate)firstPredicate);
                    break;

                case stringPrefix:
                    Debug.Assert(query.Length == 1);
                    SetNeedsValuesIfRequiresOrder();
                    PrefixQuery(descriptor, (IndexQuery.StringPrefixPredicate)firstPredicate);
                    break;

                case stringSuffix:
                case stringContains:
                    Debug.Assert(query.Length == 1);
                    SuffixOrContainsQuery(descriptor, firstPredicate);
                    break;

                default:
                    throw new System.NotSupportedException("Query not supported: " + Arrays.ToString(query));
                }
            }
        }
예제 #7
0
            internal virtual void AssertRangeSeekByContainsForOrder(IndexOrder indexOrder)
            {
                // GIVEN
                ReadableTransactionState state = (new TxStateBuilder()).WithAdded(40L, "Smashing").withAdded(41L, "Bashley").withAdded(42L, "Crasch").withAdded(43L, "Mayonnaise").withAdded(44L, "Seashell").withAdded(45L, "Ton").withAdded(46L, "The Flash").withAdded(47L, "Strayhound").withAdded(48L, "Trashy").withAdded(49L, "Andromeda").build();

                // WHEN
                IndexQuery                indexQuery        = IndexQuery.stringContains(outerInstance.index.Schema().PropertyId, stringValue("ash"));
                AddedAndRemoved           changes           = indexUpdatesForSuffixOrContains(state, outerInstance.index, indexQuery, indexOrder);
                AddedWithValuesAndRemoved changesWithValues = indexUpdatesWithValuesForSuffixOrContains(state, outerInstance.index, indexQuery, indexOrder);

                NodeWithPropertyValues[] expected = new NodeWithPropertyValues[] { NodeWithPropertyValues(41L, "Bashley"), NodeWithPropertyValues(44L, "Seashell"), NodeWithPropertyValues(40L, "Smashing"), NodeWithPropertyValues(46L, "The Flash"), NodeWithPropertyValues(48L, "Trashy") };

                // THEN
                outerInstance.AssertContains(indexOrder, changes, changesWithValues, expected);
            }
예제 #8
0
        public IndexServices()
        {
            database   = new Database(Settings.ProtocolConfiguration.ChainFolderName);
            OwnerIndex = new IndexOwner(database);
            TokenIndex = new IndexToken(database);

            string nativeTokenSymbol = null;

            if (TokenIndex.GetNative() != null)
            {
                nativeTokenSymbol = TokenIndex.GetNative().Symbol;
            }

            BalanceIndex = new IndexBalance(database, nativeTokenSymbol);
            OrderIndex   = new IndexOrder(database);
        }
예제 #9
0
        private void AssertScanWithOrder(IndexOrder indexOrder)
        {
            // GIVEN
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.neo4j.storageengine.api.txstate.ReadableTransactionState state = new TxStateBuilder().withAdded(40L, "Aaron").withAdded(41L, "Agatha").withAdded(42L, "Andreas").withAdded(43L, "Barbarella").withAdded(44L, "Andrea").withAdded(45L, "Aristotle").withAdded(46L, "Barbara").withAdded(47L, "Cinderella").build();
            ReadableTransactionState state = (new TxStateBuilder()).WithAdded(40L, "Aaron").withAdded(41L, "Agatha").withAdded(42L, "Andreas").withAdded(43L, "Barbarella").withAdded(44L, "Andrea").withAdded(45L, "Aristotle").withAdded(46L, "Barbara").withAdded(47L, "Cinderella").build();

            // WHEN
            AddedAndRemoved           changes           = indexUpdatesForScan(state, _index, indexOrder);
            AddedWithValuesAndRemoved changesWithValues = indexUpdatesWithValuesForScan(state, _index, indexOrder);

            NodeWithPropertyValues[] expectedNodesWithValues = new NodeWithPropertyValues[] { NodeWithPropertyValues(40L, "Aaron"), NodeWithPropertyValues(41L, "Agatha"), NodeWithPropertyValues(44L, "Andrea"), NodeWithPropertyValues(42L, "Andreas"), NodeWithPropertyValues(45L, "Aristotle"), NodeWithPropertyValues(46L, "Barbara"), NodeWithPropertyValues(43L, "Barbarella"), NodeWithPropertyValues(47L, "Cinderella") };

            // THEN
            AssertContains(indexOrder, changes, changesWithValues, expectedNodesWithValues);
        }
예제 #10
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: java.util.List<long> assertInOrder(org.neo4j.internal.kernel.api.IndexOrder order, org.neo4j.internal.kernel.api.IndexQuery... predicates) throws Exception
        internal virtual IList <long> AssertInOrder(IndexOrder order, params IndexQuery[] predicates)
        {
            IList <long> actualIds;

            if (order == IndexOrder.NONE)
            {
                actualIds = Query(predicates);
            }
            else
            {
                SimpleNodeValueClient client = new SimpleNodeValueClient();
                using (AutoCloseable ignore = Query(client, order, predicates))
                {
                    actualIds = AssertClientReturnValuesInOrder(client, order);
                }
            }
            return(actualIds);
        }
예제 #11
0
        private void AssertContains(IndexOrder indexOrder, AddedAndRemoved changes, AddedWithValuesAndRemoved changesWithValues, NodeWithPropertyValues[] expected)
        {
            if (indexOrder == IndexOrder.DESCENDING)
            {
                ArrayUtils.reverse(expected);
            }

//JAVA TO C# CONVERTER TODO TASK: Method reference arbitrary object instance method syntax is not converted by Java to C# Converter:
            long[] expectedNodeIds = java.util.expected.Select(NodeWithPropertyValues::getNodeId).ToArray();

            if (indexOrder == IndexOrder.NONE)
            {
                AssertContains(changes.Added, expectedNodeIds);
                AssertContains(changesWithValues.Added, expected);
            }
            else
            {
                AssertContainsInOrder(changes.Added, expectedNodeIds);
                AssertContainsInOrder(changesWithValues.Added, expected);
            }
        }
예제 #12
0
파일: StubRead.cs 프로젝트: Neo4Net/Neo4Net
 public override void NodeIndexScan(IndexReference index, NodeValueIndexCursor cursor, IndexOrder indexOrder, bool needsValues)
 {
     throw new System.NotSupportedException();
 }
예제 #13
0
파일: StubRead.cs 프로젝트: Neo4Net/Neo4Net
 public override void NodeIndexSeek(IndexReference index, NodeValueIndexCursor cursor, IndexOrder indexOrder, bool needsValues, params IndexQuery[] query)
 {
     throw new System.NotSupportedException();
 }
예제 #14
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: public void query(org.neo4j.storageengine.api.schema.IndexProgressor_NodeValueClient cursor, org.neo4j.internal.kernel.api.IndexOrder indexOrder, boolean needsValues, org.neo4j.internal.kernel.api.IndexQuery... predicates) throws org.neo4j.internal.kernel.api.exceptions.schema.IndexNotApplicableKernelException
        public override void Query(Org.Neo4j.Storageengine.Api.schema.IndexProgressor_NodeValueClient cursor, IndexOrder indexOrder, bool needsValues, params IndexQuery[] predicates)
        {
//JAVA TO C# CONVERTER TODO TASK: Method reference arbitrary object instance method syntax is not converted by Java to C# Converter:
            IndexSlot slot = SlotSelector.selectSlot(predicates, IndexQuery::valueGroup);

            if (slot != null)
            {
                InstanceSelector.select(slot).query(cursor, indexOrder, needsValues, predicates);
            }
            else
            {
                if (indexOrder != IndexOrder.NONE)
                {
                    throw new System.NotSupportedException(format("Tried to query index with unsupported order %s. Supported orders for query %s are %s.", indexOrder, Arrays.ToString(predicates), IndexOrder.NONE));
                }
                BridgingIndexProgressor multiProgressor = new BridgingIndexProgressor(cursor, _descriptor.schema().PropertyIds);
                cursor.Initialize(_descriptor, multiProgressor, predicates, indexOrder, needsValues);
                try
                {
                    InstanceSelector.forAll(reader =>
                    {
                        try
                        {
                            reader.query(multiProgressor, indexOrder, needsValues, predicates);
                        }
                        catch (IndexNotApplicableKernelException e)
                        {
                            throw new InnerException(e);
                        }
                    });
                }
                catch (InnerException e)
                {
                    throw e.InnerException;
                }
            }
        }
예제 #15
0
 public ICursor Sort(string field, IndexOrder order)
 {
     return this.Sort(new Document().Append(field, order));
 }
예제 #16
0
        public override void Query(Org.Neo4j.Storageengine.Api.schema.IndexProgressor_NodeValueClient cursor, IndexOrder indexOrder, bool needsValues, params IndexQuery[] predicates)
        {
            ValidateQuery(indexOrder, predicates);

            KEY treeKeyFrom = Layout.newKey();
            KEY treeKeyTo   = Layout.newKey();

            InitializeFromToKeys(treeKeyFrom, treeKeyTo);

            bool needFilter = InitializeRangeForQuery(treeKeyFrom, treeKeyTo, predicates);

            StartSeekForInitializedRange(cursor, treeKeyFrom, treeKeyTo, predicates, indexOrder, needFilter, needsValues);
        }
예제 #17
0
 /// <summary>
 /// Sorts the specified field.
 /// </summary>
 /// <param name="field">The field.</param>
 /// <param name="order">The order.</param>
 /// <returns></returns>
 public ICursor Sort(string field, IndexOrder order)
 {
     _cursor.Sort(field, order);
     return(this);
 }
예제 #18
0
        /// <summary>
        /// Evaluates the function on a vector argument.
        /// </summary>
        /// <param name="Arguments">Function arguments.</param>
        /// <param name="Variables">Variables collection.</param>
        /// <returns>Function result.</returns>
        public override IElement Evaluate(IElement[] Arguments, Variables Variables)
        {
            int c = Arguments.Length;

            if (!(Arguments[0] is IVector Vector))
            {
                throw new ScriptRuntimeException("First argument muts be a vector.", this);
            }

            ICollection <IElement> Temp = Vector.VectorElements;

            IElement[] Elements;
            int        i;

            if (Temp is IElement[] V)
            {
                Elements = (IElement[])V.Clone();
            }
            else
            {
                Elements = new IElement[Temp.Count];
                i        = 0;

                foreach (IElement E in Temp)
                {
                    Elements[i++] = E;
                }
            }

            if (c == 1)
            {
                Array.Sort <IElement>(Elements, new ElementOrder(this));
            }
            else
            {
                IComparer <IElement>[] Comparers = new IComparer <IElement> [c];
                IElement Element;

                for (i = 1; i < c; i++)
                {
                    Element = Arguments[i];

                    if (Element is DoubleNumber N)
                    {
                        double d    = N.Value;
                        int    Sign = 1;

                        if (d < 0)
                        {
                            Sign = -1;
                            d    = -d;
                        }

                        if (d == 0 || d > int.MaxValue || d != Math.Truncate(d))
                        {
                            throw new ScriptRuntimeException("Index values must be non-zero integers.", this);
                        }

                        Comparers[i - 1] = new IndexOrder(this, (int)(d - 1), Sign);
                    }
                    else if (Element is StringValue S)
                    {
                        string s    = S.Value;
                        int    Sign = 1;

                        if (s.StartsWith("-"))
                        {
                            s    = s.Substring(1);
                            Sign = -1;
                        }

                        Comparers[i - 1] = new PropertyOrder(this, s, Sign);
                    }
                    else if (Element is ILambdaExpression Lambda)
                    {
                        if (Lambda.NrArguments != 2)
                        {
                            throw new ScriptRuntimeException("Lambda expressions must take exactly two parameters.", this);
                        }

                        Comparers[i - 1] = new LambdaOrder(Lambda, Variables);
                    }
                    else
                    {
                        throw new ScriptRuntimeException("Order parameters must be either lambda expressions, " +
                                                         "string values representing field names or numeric index values.", this);
                    }
                }

                Comparers[c - 1] = new ElementOrder(this);

                Array.Sort(Elements, new CompoundOrder(Comparers));
            }

            return(Vector.Encapsulate(Elements, this));
        }
예제 #19
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: public void query(org.neo4j.storageengine.api.schema.IndexProgressor_NodeValueClient client, org.neo4j.internal.kernel.api.IndexOrder indexOrder, boolean needsValues, org.neo4j.internal.kernel.api.IndexQuery... predicates) throws org.neo4j.internal.kernel.api.exceptions.schema.IndexNotApplicableKernelException
        public override void Query(Org.Neo4j.Storageengine.Api.schema.IndexProgressor_NodeValueClient client, IndexOrder indexOrder, bool needsValues, params IndexQuery[] predicates)
        {
            Query query = ToLuceneQuery(predicates);

            client.Initialize(_descriptor, Search(query).getIndexProgressor(NODE_ID_KEY, client), predicates, indexOrder, needsValues);
        }
예제 #20
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: org.neo4j.cursor.RawCursor<org.neo4j.index.internal.gbptree.Hit<KEY,VALUE>,java.io.IOException> makeIndexSeeker(KEY treeKeyFrom, KEY treeKeyTo, org.neo4j.internal.kernel.api.IndexOrder indexOrder) throws java.io.IOException
        internal virtual RawCursor <Hit <KEY, VALUE>, IOException> MakeIndexSeeker(KEY treeKeyFrom, KEY treeKeyTo, IndexOrder indexOrder)
        {
            if (indexOrder == IndexOrder.DESCENDING)
            {
                KEY tmpKey = treeKeyFrom;
                treeKeyFrom = treeKeyTo;
                treeKeyTo   = tmpKey;
            }
            RawCursor <Hit <KEY, VALUE>, IOException> seeker = Tree.seek(treeKeyFrom, treeKeyTo);

            OpenSeekers.Add(seeker);
            return(seeker);
        }
예제 #21
0
 internal virtual void StartSeekForInitializedRange(Org.Neo4j.Storageengine.Api.schema.IndexProgressor_NodeValueClient client, KEY treeKeyFrom, KEY treeKeyTo, IndexQuery[] query, IndexOrder indexOrder, bool needFilter, bool needsValues)
 {
     if (IsEmptyRange(treeKeyFrom, treeKeyTo))
     {
         client.Initialize(Descriptor, IndexProgressor.EMPTY, query, indexOrder, needsValues);
         return;
     }
     try
     {
         RawCursor <Hit <KEY, VALUE>, IOException> seeker = MakeIndexSeeker(treeKeyFrom, treeKeyTo, indexOrder);
         IndexProgressor hitProgressor = GetIndexProgressor(seeker, client, needFilter, query);
         client.Initialize(Descriptor, hitProgressor, query, indexOrder, needsValues);
     }
     catch (IOException e)
     {
         throw new UncheckedIOException(e);
     }
 }
예제 #22
0
 internal abstract void ValidateQuery(IndexOrder indexOrder, IndexQuery[] predicates);
예제 #23
0
 public ICursor Sort(string field, IndexOrder order)
 {
     return(this.Sort(new Document().Append(field, order)));
 }
예제 #24
0
파일: Read.cs 프로젝트: Neo4Net/Neo4Net
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: public final void nodeIndexScan(org.neo4j.internal.kernel.api.IndexReference index, org.neo4j.internal.kernel.api.NodeValueIndexCursor cursor, org.neo4j.internal.kernel.api.IndexOrder indexOrder, boolean needsValues) throws org.neo4j.internal.kernel.api.exceptions.KernelException
        public override void NodeIndexScan(IndexReference index, NodeValueIndexCursor cursor, IndexOrder indexOrder, bool needsValues)
        {
            Ktx.assertOpen();
            if (HasForbiddenProperties(index))
            {
                cursor.Close();
                return;
            }

            // for a scan, we simply query for existence of the first property, which covers all entries in an index
            int firstProperty = index.Properties()[0];

            DefaultNodeValueIndexCursor cursorImpl = ( DefaultNodeValueIndexCursor )cursor;

            cursorImpl.Read = this;
            IndexReader(index, false).query(cursorImpl, indexOrder, needsValues, IndexQuery.exists(firstProperty));
        }
예제 #25
0
 /// <summary>
 ///   Sorts the specified field.
 /// </summary>
 /// <param name = "field">The field.</param>
 /// <param name = "order">The order.</param>
 /// <returns></returns>
 public ICursor <T> Sort(string field, IndexOrder order)
 {
     return(Sort(new Document().Add(field, order)));
 }
예제 #26
0
 public override void Initialize(IndexDescriptor descriptor, IndexProgressor progressor, IndexQuery[] queries, IndexOrder indexOrder, bool needsValues)
 {
     _events.Add(new Event.Initialize(progressor, descriptor.Schema().PropertyIds));
 }
예제 #27
0
 public override void Initialize(IndexDescriptor descriptor, IndexProgressor progressor, IndexQuery[] query, IndexOrder indexOrder, bool needsValues)
 {
     this._progressor = progressor;
     _target.initialize(descriptor, this, query, indexOrder, needsValues);
 }
예제 #28
0
 /// <summary>
 /// Sorts the specified field.
 /// </summary>
 /// <param name="field">The field.</param>
 /// <param name="order">The order.</param>
 /// <returns></returns>
 public ICursor Sort(string field, IndexOrder order){
     _cursor.Sort(field, order);
     return this;
 }
예제 #29
0
파일: Read.cs 프로젝트: Neo4Net/Neo4Net
 public abstract void NodeIndexSeek(IndexReference index, NodeValueIndexCursor cursor, IndexOrder indexOrder, bool needsValues, params IndexQuery[] query);
        private IList <long> ExpectedIdsInOrder(NodeValueTuple from, bool fromInclusive, NodeValueTuple to, bool toInclusive, IndexOrder indexOrder)
        {
//JAVA TO C# CONVERTER TODO TASK: Method reference arbitrary object instance method syntax is not converted by Java to C# Converter:
            IList <long> expectedIdsInOrder = _singlePropValues.subSet(from, fromInclusive, to, toInclusive).Select(NodeValueTuple::nodeId).ToList();

            if (indexOrder == IndexOrder.DESCENDING)
            {
                expectedIdsInOrder.Reverse();
            }
            return(expectedIdsInOrder);
        }
예제 #31
0
        public override void Query(Org.Neo4j.Storageengine.Api.schema.IndexProgressor_NodeValueClient cursor, IndexOrder indexOrder, bool needsValues, params IndexQuery[] predicates)
        {
            if (predicates.Length != 1)
            {
                throw new System.ArgumentException("Only single property temporal indexes are supported.");
            }
            IndexQuery predicate = predicates[0];

            if (predicate is IndexQuery.ExistsPredicate)
            {
                LoadAll();
                BridgingIndexProgressor multiProgressor = new BridgingIndexProgressor(cursor, _descriptor.schema().PropertyIds);
                cursor.Initialize(_descriptor, multiProgressor, predicates, indexOrder, needsValues);
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: for (NativeIndexReader<?,NativeIndexValue> reader : this)
                foreach (NativeIndexReader <object, NativeIndexValue> reader in this)
                {
                    reader.Query(multiProgressor, indexOrder, needsValues, predicates);
                }
            }
            else
            {
                if (ValidPredicate(predicate))
                {
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: NativeIndexReader<?,NativeIndexValue> part = uncheckedSelect(predicate.valueGroup());
                    NativeIndexReader <object, NativeIndexValue> part = UncheckedSelect(predicate.ValueGroup());
                    if (part != null)
                    {
                        part.Query(cursor, indexOrder, needsValues, predicates);
                    }
                    else
                    {
                        cursor.Initialize(_descriptor, IndexProgressor.EMPTY, predicates, indexOrder, needsValues);
                    }
                }
                else
                {
                    cursor.Initialize(_descriptor, IndexProgressor.EMPTY, predicates, indexOrder, needsValues);
                }
            }
        }
예제 #32
0
파일: Read.cs 프로젝트: Neo4Net/Neo4Net
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: public final void nodeIndexSeek(org.neo4j.internal.kernel.api.IndexReference index, org.neo4j.internal.kernel.api.NodeValueIndexCursor cursor, org.neo4j.internal.kernel.api.IndexOrder indexOrder, boolean needsValues, org.neo4j.internal.kernel.api.IndexQuery... query) throws org.neo4j.internal.kernel.api.exceptions.schema.IndexNotApplicableKernelException, org.neo4j.internal.kernel.api.exceptions.schema.IndexNotFoundKernelException
        public override void NodeIndexSeek(IndexReference index, NodeValueIndexCursor cursor, IndexOrder indexOrder, bool needsValues, params IndexQuery[] query)
        {
            Ktx.assertOpen();
            if (HasForbiddenProperties(index))
            {
                cursor.Close();
                return;
            }

            DefaultNodeValueIndexCursor cursorImpl = ( DefaultNodeValueIndexCursor )cursor;
            IndexReader reader = IndexReader(index, false);

            cursorImpl.Read = this;
            Org.Neo4j.Storageengine.Api.schema.IndexProgressor_NodeValueClient withFullPrecision = InjectFullValuePrecision(cursorImpl, query, reader);
            reader.Query(withFullPrecision, indexOrder, needsValues, query);
        }