Search in sources :

Example 1 with Loader

use of org.neo4j.kernel.impl.transaction.state.RecordAccess.Loader in project neo4j by neo4j.

the class Loaders method propertyLoader.

public static Loader<Long, PropertyRecord, PrimitiveRecord> propertyLoader(final PropertyStore store) {
    return new Loader<Long, PropertyRecord, PrimitiveRecord>() {

        @Override
        public PropertyRecord newUnused(Long key, PrimitiveRecord additionalData) {
            PropertyRecord record = new PropertyRecord(key);
            setOwner(record, additionalData);
            return andMarkAsCreated(record);
        }

        private void setOwner(PropertyRecord record, PrimitiveRecord owner) {
            if (owner != null) {
                owner.setIdTo(record);
            }
        }

        @Override
        public PropertyRecord load(Long key, PrimitiveRecord additionalData) {
            PropertyRecord record = store.getRecord(key, store.newRecord(), NORMAL);
            setOwner(record, additionalData);
            return record;
        }

        @Override
        public void ensureHeavy(PropertyRecord record) {
            for (PropertyBlock block : record) {
                store.ensureHeavy(block);
            }
        }

        @Override
        public PropertyRecord clone(PropertyRecord propertyRecord) {
            return propertyRecord.clone();
        }
    };
}
Also used : PropertyRecord(org.neo4j.kernel.impl.store.record.PropertyRecord) PropertyBlock(org.neo4j.kernel.impl.store.record.PropertyBlock) Loader(org.neo4j.kernel.impl.transaction.state.RecordAccess.Loader) PrimitiveRecord(org.neo4j.kernel.impl.store.record.PrimitiveRecord)

Example 2 with Loader

use of org.neo4j.kernel.impl.transaction.state.RecordAccess.Loader in project neo4j by neo4j.

the class Loaders method relationshipGroupLoader.

public static Loader<Long, RelationshipGroupRecord, Integer> relationshipGroupLoader(final RecordStore<RelationshipGroupRecord> store) {
    return new Loader<Long, RelationshipGroupRecord, Integer>() {

        @Override
        public RelationshipGroupRecord newUnused(Long key, Integer type) {
            RelationshipGroupRecord record = new RelationshipGroupRecord(key);
            record.setType(type);
            return andMarkAsCreated(record);
        }

        @Override
        public RelationshipGroupRecord load(Long key, Integer type) {
            return store.getRecord(key, store.newRecord(), NORMAL);
        }

        @Override
        public void ensureHeavy(RelationshipGroupRecord record) {
        // Not needed
        }

        @Override
        public RelationshipGroupRecord clone(RelationshipGroupRecord record) {
            return record.clone();
        }
    };
}
Also used : RelationshipGroupRecord(org.neo4j.kernel.impl.store.record.RelationshipGroupRecord) Loader(org.neo4j.kernel.impl.transaction.state.RecordAccess.Loader)

Aggregations

Loader (org.neo4j.kernel.impl.transaction.state.RecordAccess.Loader)2 PrimitiveRecord (org.neo4j.kernel.impl.store.record.PrimitiveRecord)1 PropertyBlock (org.neo4j.kernel.impl.store.record.PropertyBlock)1 PropertyRecord (org.neo4j.kernel.impl.store.record.PropertyRecord)1 RelationshipGroupRecord (org.neo4j.kernel.impl.store.record.RelationshipGroupRecord)1