//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void processAllRelationshipProperties() throws Exception //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ProcessAllRelationshipProperties() { CreateAlistairAndStefanNodes(); CopyUpdateVisitor propertyUpdateVisitor = new CopyUpdateVisitor(); RelationshipStoreScan relationshipStoreScan = new RelationshipStoreScan(new RecordStorageReader(_neoStores), _locks, propertyUpdateVisitor, new int[] { _relTypeId }, id => true); using (StorageRelationshipScanCursor relationshipScanCursor = _reader.allocateRelationshipScanCursor()) { relationshipScanCursor.Single(1); relationshipScanCursor.Next(); relationshipStoreScan.process(relationshipScanCursor); } EntityUpdates propertyUpdates = propertyUpdateVisitor.PropertyUpdates; assertNotNull("Visitor should contain container with updates.", propertyUpdates); RelationTypeSchemaDescriptor index1 = SchemaDescriptorFactory.forRelType(0, 2); RelationTypeSchemaDescriptor index2 = SchemaDescriptorFactory.forRelType(0, 3); RelationTypeSchemaDescriptor index3 = SchemaDescriptorFactory.forRelType(0, 2, 3); RelationTypeSchemaDescriptor index4 = SchemaDescriptorFactory.forRelType(1, 3); IList <RelationTypeSchemaDescriptor> indexes = Arrays.asList(index1, index2, index3, index4); //JAVA TO C# CONVERTER TODO TASK: Method reference arbitrary object instance method syntax is not converted by Java to C# Converter: assertThat(Iterables.map(IndexEntryUpdate::indexKey, propertyUpdates.ForIndexKeys(indexes)), containsInAnyOrder(index1, index2, index3)); }
private Value CommittedValue(RelationshipState relState, int property, StorageRelationshipScanCursor relationship, StoragePropertyCursor properties) { if (_state.relationshipIsAddedInThisTx(relState.Id)) { return(Values.NO_VALUE); } relationship.Single(relState.Id); if (!relationship.Next()) { return(Values.NO_VALUE); } return(CommittedValue(properties, relationship.PropertiesReference(), property)); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: protected boolean process(org.neo4j.storageengine.api.StorageRelationshipScanCursor cursor) throws FAILURE protected internal override bool Process(StorageRelationshipScanCursor cursor) { int reltype = cursor.Type(); if (_propertyUpdatesVisitor != null && containsAnyEntityToken(_relationshipTypeIds, reltype)) { // Notify the property update visitor EntityUpdates.Builder updates = EntityUpdates.forEntity(cursor.EntityReference(), true).withTokens(reltype); if (hasRelevantProperty(cursor, updates)) { return(_propertyUpdatesVisitor.visit(updates.Build())); } } return(false); }
private void TakeSnapshot() { try { using (StorageNodeCursor node = _store.allocateNodeCursor(), StoragePropertyCursor properties = _store.allocatePropertyCursor(), StorageRelationshipScanCursor relationship = _store.allocateRelationshipScanCursor()) { TokenRead tokenRead = _transaction.tokenRead(); _state.addedAndRemovedNodes().Removed.each(nodeId => { node.Single(nodeId); if (node.Next()) { properties.Init(node.PropertiesReference()); while (properties.Next()) { try { _removedNodeProperties.Add(new NodePropertyEntryView(this, nodeId, tokenRead.PropertyKeyName(properties.PropertyKey()), null, properties.PropertyValue())); } catch (PropertyKeyIdNotFoundKernelException e) { throw new System.InvalidOperationException("Nonexisting properties was modified for node " + nodeId, e); } } foreach (long labelId in node.Labels()) { try { _removedLabels.Add(new LabelEntryView(this, nodeId, tokenRead.NodeLabelName(toIntExact(labelId)))); } catch (LabelNotFoundKernelException e) { throw new System.InvalidOperationException("Nonexisting label was modified for node " + nodeId, e); } } } }); _state.addedAndRemovedRelationships().Removed.each(relId => { Relationship relationshipProxy = relationship(relId); relationship.Single(relId); if (relationship.Next()) { properties.Init(relationship.PropertiesReference()); while (properties.Next()) { try { _removedRelationshipProperties.Add(new RelationshipPropertyEntryView(relationshipProxy, tokenRead.PropertyKeyName(properties.PropertyKey()), null, properties.PropertyValue())); } catch (PropertyKeyIdNotFoundKernelException e) { throw new System.InvalidOperationException("Nonexisting node properties was modified for relationship " + relId, e); } } } }); foreach (NodeState nodeState in _state.modifiedNodes()) { IEnumerator <StorageProperty> added = nodeState.AddedAndChangedProperties(); long nodeId = nodeState.Id; while (added.MoveNext()) { StorageProperty property = added.Current; _assignedNodeProperties.Add(new NodePropertyEntryView(this, nodeId, tokenRead.PropertyKeyName(property.PropertyKeyId()), property.Value(), CommittedValue(nodeState, property.PropertyKeyId(), node, properties))); } nodeState.RemovedProperties().each(id => { try { NodePropertyEntryView entryView = new NodePropertyEntryView(this, nodeId, tokenRead.PropertyKeyName(id), null, CommittedValue(nodeState, id, node, properties)); _removedNodeProperties.Add(entryView); } catch (PropertyKeyIdNotFoundKernelException e) { throw new System.InvalidOperationException("Nonexisting node properties was modified for node " + nodeId, e); } }); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.storageengine.api.txstate.LongDiffSets labels = nodeState.labelDiffSets(); LongDiffSets labels = nodeState.LabelDiffSets(); AddLabelEntriesTo(nodeId, labels.Added, _assignedLabels); AddLabelEntriesTo(nodeId, labels.Removed, _removedLabels); } foreach (RelationshipState relState in _state.modifiedRelationships()) { Relationship relationshipProxy = relationship(relState.Id); IEnumerator <StorageProperty> added = relState.AddedAndChangedProperties(); while (added.MoveNext()) { StorageProperty property = added.Current; _assignedRelationshipProperties.Add(new RelationshipPropertyEntryView(relationshipProxy, tokenRead.PropertyKeyName(property.PropertyKeyId()), property.Value(), CommittedValue(relState, property.PropertyKeyId(), relationship, properties))); } relState.RemovedProperties().each(id => { try { RelationshipPropertyEntryView entryView = new RelationshipPropertyEntryView(relationshipProxy, tokenRead.PropertyKeyName(id), null, CommittedValue(relState, id, relationship, properties)); _removedRelationshipProperties.Add(entryView); } catch (PropertyKeyIdNotFoundKernelException e) { throw new System.InvalidOperationException("Nonexisting properties was modified for relationship " + relState.Id, e); } }); } } } catch (PropertyKeyIdNotFoundKernelException e) { throw new System.InvalidOperationException("An entity that does not exist was modified.", e); } }