コード例 #1
0
ファイル: PropertyCreator.cs プロジェクト: Neo4Net/Neo4Net
        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);
        }
コード例 #2
0
ファイル: TransactionWriter.cs プロジェクト: Neo4Net/Neo4Net
        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);
        }
コード例 #3
0
ファイル: Commands.cs プロジェクト: Neo4Net/Neo4Net
        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));
        }