private long CreatePropertyChain(PrimitiveRecord owner, IEnumerator <PropertyBlock> properties, RecordAccess <PropertyRecord, PrimitiveRecord> propertyRecords, System.Action <PropertyRecord> createdPropertyRecords) { //JAVA TO C# CONVERTER TODO TASK: Java iterators are only converted within the context of 'while' and 'for' loops: if (properties == null || !properties.hasNext()) { return(Record.NO_NEXT_PROPERTY.intValue()); } PropertyRecord currentRecord = propertyRecords.Create(_propertyRecordIdGenerator.nextId(), owner).forChangingData(); createdPropertyRecords(currentRecord); currentRecord.InUse = true; currentRecord.SetCreated(); PropertyRecord firstRecord = currentRecord; while (properties.MoveNext()) { PropertyBlock block = properties.Current; if (currentRecord.Size() + block.Size > PropertyType.PayloadSize) { // Here it means the current block is done for PropertyRecord prevRecord = currentRecord; // Create new record long propertyId = _propertyRecordIdGenerator.nextId(); currentRecord = propertyRecords.Create(propertyId, owner).forChangingData(); createdPropertyRecords(currentRecord); currentRecord.InUse = true; currentRecord.SetCreated(); // Set up links prevRecord.NextProp = propertyId; currentRecord.PrevProp = prevRecord.Id; // Now current is ready to start picking up blocks } currentRecord.AddPropertyBlock(block); } return(firstRecord.Id); }
public virtual void Create(PropertyRecord property) { property.SetCreated(); PropertyRecord before = new PropertyRecord(property.Id); if (property.NodeSet) { before.NodeId = property.NodeId; } if (property.RelSet) { before.RelId = property.RelId; } Update(before, property); }
public static PropertyCommand CreateProperty(long id, PropertyType type, int key, params long[] valueRecordIds) { PropertyRecord record = new PropertyRecord(id); record.InUse = true; record.SetCreated(); PropertyBlock block = new PropertyBlock(); if (valueRecordIds.Length == 0) { PropertyStore.encodeValue(block, key, Values.of(123), null, null, true); } else { PropertyStore.setSingleBlockValue(block, key, type, valueRecordIds[0]); block.ValueRecords = DynamicRecords(valueRecordIds); } record.AddPropertyBlock(block); return(new PropertyCommand(new PropertyRecord(id), record)); }