//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: public void process(org.neo4j.kernel.api.index.IndexEntryUpdate<?> update) throws org.neo4j.kernel.api.exceptions.index.IndexEntryConflictException public override void Process <T1>(IndexEntryUpdate <T1> update) { IndexUpdater to = Select(update.Values()[0].valueGroup()); switch (update.UpdateMode()) { case ADDED: case REMOVED: to.Process(update); break; case CHANGED: IndexUpdater from = Select(update.BeforeValues()[0].valueGroup()); // There are two cases: // - both before/after go into the same updater --> pass update into that updater if (from == to) { from.Process(update); } // - before go into one and after into the other --> REMOVED from one and ADDED into the other else { from.Process(IndexEntryUpdate.remove(update.EntityId, update.IndexKey(), update.BeforeValues())); to.Process(IndexEntryUpdate.add(update.EntityId, update.IndexKey(), update.Values())); } break; default: throw new System.ArgumentException("Unknown update mode"); } }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: public void add(org.neo4j.kernel.api.index.IndexEntryUpdate<?> update, org.neo4j.io.pagecache.PageCursor pageCursor) throws java.io.IOException public override void Add <T1>(IndexEntryUpdate <T1> update, PageCursor pageCursor) { int entrySize = TYPE_SIZE; UpdateMode updateMode = update.UpdateMode(); switch (updateMode.innerEnumValue) { case UpdateMode.InnerEnum.ADDED: initializeKeyAndValueFromUpdate(_key1, _value, update.EntityId, update.Values()); entrySize += BlockEntry.EntrySize(_layout, _key1, _value); break; case UpdateMode.InnerEnum.REMOVED: initializeKeyFromUpdate(_key1, update.EntityId, update.Values()); entrySize += BlockEntry.KeySize(_layout, _key1); break; case UpdateMode.InnerEnum.CHANGED: initializeKeyFromUpdate(_key1, update.EntityId, update.BeforeValues()); initializeKeyAndValueFromUpdate(_key2, _value, update.EntityId, update.Values()); entrySize += BlockEntry.KeySize(_layout, _key1) + BlockEntry.EntrySize(_layout, _key2, _value); break; default: throw new System.ArgumentException("Unknown update mode " + updateMode); } prepareWrite(entrySize); pageCursor.PutByte(( sbyte )updateMode.ordinal()); IndexUpdateEntry.Write(pageCursor, _layout, updateMode, _key1, _key2, _value); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: private static <KEY extends NativeIndexKey<KEY>, VALUE extends NativeIndexValue> void processChange(KEY treeKey, VALUE treeValue, org.neo4j.kernel.api.index.IndexEntryUpdate<?> update, org.neo4j.index.internal.gbptree.Writer<KEY,VALUE> writer, ConflictDetectingValueMerger<KEY,VALUE,org.neo4j.values.storable.Value[]> conflictDetectingValueMerger) throws org.neo4j.kernel.api.exceptions.index.IndexEntryConflictException private static void ProcessChange <KEY, VALUE, T1>(KEY treeKey, VALUE treeValue, IndexEntryUpdate <T1> update, Writer <KEY, VALUE> writer, ConflictDetectingValueMerger <KEY, VALUE, Value[]> conflictDetectingValueMerger) where KEY : NativeIndexKey <KEY> where VALUE : NativeIndexValue { // Remove old entry InitializeKeyFromUpdate(treeKey, update.EntityId, update.BeforeValues()); writer.Remove(treeKey); // Insert new entry InitializeKeyFromUpdate(treeKey, update.EntityId, update.Values()); treeValue.From(update.Values()); conflictDetectingValueMerger.ControlConflictDetection(treeKey); writer.Merge(treeKey, treeValue, conflictDetectingValueMerger); conflictDetectingValueMerger.CheckConflict(update.Values()); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: public void process(org.neo4j.kernel.api.index.IndexEntryUpdate<?> update) throws org.neo4j.kernel.api.exceptions.index.IndexEntryConflictException public override void Process <T1>(IndexEntryUpdate <T1> update) { PointValue value = ( PointValue )update.Values()[0]; switch (update.UpdateMode()) { case ADDED: Select(value.CoordinateReferenceSystem).process(update); break; case CHANGED: // These are both spatial, but could belong in different parts PointValue fromValue = ( PointValue )update.BeforeValues()[0]; IndexUpdater from = Select(fromValue.CoordinateReferenceSystem); IndexUpdater to = Select(value.CoordinateReferenceSystem); // There are two cases: // - both before/after go into the same updater --> pass update into that updater if (from == to) { from.Process(update); } // - before go into one and after into the other --> REMOVED from one and ADDED into the other else { from.Process(IndexEntryUpdate.remove(update.EntityId, update.IndexKey(), update.BeforeValues())); to.Process(IndexEntryUpdate.add(update.EntityId, update.IndexKey(), update.Values())); } break; case REMOVED: Select(value.CoordinateReferenceSystem).process(update); break; default: throw new System.ArgumentException("Unknown update mode"); } }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: public void process(org.neo4j.kernel.api.index.IndexEntryUpdate<?> update) throws org.neo4j.kernel.api.exceptions.index.IndexEntryConflictException public override void Process <T1>(IndexEntryUpdate <T1> update) { switch (update.UpdateMode()) { case ADDED: InstanceSelector.select(SlotSelector.selectSlot(update.Values(), GroupOf)).process(update); break; case CHANGED: // Hmm, here's a little conundrum. What if we change from a value that goes into native // to a value that goes into fallback, or vice versa? We also don't want to blindly pass // all CHANGED updates to both updaters since not all values will work in them. IndexUpdater from = InstanceSelector.select(SlotSelector.selectSlot(update.BeforeValues(), GroupOf)); IndexUpdater to = InstanceSelector.select(SlotSelector.selectSlot(update.Values(), GroupOf)); // There are two cases: // - both before/after go into the same updater --> pass update into that updater if (from == to) { from.Process(update); } // - before go into one and after into the other --> REMOVED from one and ADDED into the other else { from.Process(IndexEntryUpdate.remove(update.EntityId, update.IndexKey(), update.BeforeValues())); to.Process(IndexEntryUpdate.add(update.EntityId, update.IndexKey(), update.Values())); } break; case REMOVED: InstanceSelector.select(SlotSelector.selectSlot(update.Values(), GroupOf)).process(update); break; default: throw new System.ArgumentException("Unknown update mode"); } }
protected internal override void Changed <T1>(IndexEntryUpdate <T1> update) { string encodedValueBefore = LuceneDocumentStructure.encodedStringValuesForSampling(update.BeforeValues()); _sampler.exclude(encodedValueBefore); string encodedValueAfter = LuceneDocumentStructure.encodedStringValuesForSampling(update.Values()); _sampler.include(encodedValueAfter); }