@Override public void prepareForCommit( R record ) { actual.prepareForCommit( record ); }
@Override public void prepareForCommit( R record, IdSequence idSequence ) { actual.prepareForCommit( record, idSequence ); }
private <RECORD extends AbstractBaseRecord> RECORD prepared( RecordProxy<RECORD,?> proxy, RecordStore<RECORD> store ) { RECORD after = proxy.forReadingLinkage(); store.prepareForCommit( after ); return after; }
private static <RECORD extends AbstractBaseRecord> void migrate( RecordStore<RECORD> from, RecordStore<RECORD> to ) { to.setHighestPossibleIdInUse( from.getHighestPossibleIdInUse() ); from.scanAllRecords( record -> { to.prepareForCommit( record ); to.updateRecord( record ); return false; } ); }
@Test public void recordWithReservedIdIsSkipped() { RecordStore<NodeRecord> store = mock( NodeStore.class ); StageControl stageControl = mock( StageControl.class ); UpdateRecordsStep<NodeRecord> step = new UpdateRecordsStep<>( stageControl, Configuration.DEFAULT, store, new StorePrepareIdSequence() ); NodeRecord node1 = new NodeRecord( 1 ); node1.setInUse( true ); NodeRecord node2 = new NodeRecord( 2 ); node2.setInUse( true ); NodeRecord nodeWithReservedId = new NodeRecord( IdGeneratorImpl.INTEGER_MINUS_ONE ); NodeRecord[] batch = {node1, node2, nodeWithReservedId}; step.process( batch, mock( BatchSender.class ) ); verify( store ).prepareForCommit( eq( node1 ), any( IdSequence.class ) ); verify( store ).updateRecord( node1 ); verify( store ).prepareForCommit( eq( node2 ), any( IdSequence.class ) ); verify( store ).updateRecord( node2 ); verify( store, never() ).prepareForCommit( eq( nodeWithReservedId ), any( IdSequence.class ) ); verify( store, never() ).updateRecord( nodeWithReservedId ); } }
@Override protected void process( RECORD[] batch, BatchSender sender ) { LongFunction<IdSequence> idSequence = prepareIdSequence.apply( store ); int recordsUpdatedInThisBatch = 0; for ( RECORD record : batch ) { if ( record != null && record.inUse() && !IdValidator.isReservedId( record.getId() ) ) { store.prepareForCommit( record, idSequence.apply( record.getId() ) ); store.updateRecord( record ); recordsUpdatedInThisBatch++; } } recordsUpdated.add( recordsUpdatedInThisBatch ); }
store.prepareForCommit( batch[j] );
} ).when( store ).prepareForCommit( any( RelationshipGroupRecord.class ) ); Configuration config = Configuration.withBatchSize( DEFAULT, 10 ); EncodeGroupsStep encoder = new EncodeGroupsStep( control, config, store );
@Override public void prepareForCommit( R record, IdSequence idSequence ) { actual.prepareForCommit( record, idSequence ); }
@Override public void prepareForCommit( R record ) { actual.prepareForCommit( record ); }
private <RECORD extends AbstractBaseRecord> RECORD prepared( RecordProxy<RECORD,?> proxy, RecordStore<RECORD> store ) { RECORD after = proxy.forReadingLinkage(); store.prepareForCommit( after ); return after; }
private static <RECORD extends AbstractBaseRecord> void migrate( RecordStore<RECORD> from, RecordStore<RECORD> to ) { to.setHighestPossibleIdInUse( from.getHighestPossibleIdInUse() ); from.scanAllRecords( record -> { to.prepareForCommit( record ); to.updateRecord( record ); return false; } ); }
@Override protected void process( RECORD[] batch, BatchSender sender ) { LongFunction<IdSequence> idSequence = prepareIdSequence.apply( store ); int recordsUpdatedInThisBatch = 0; for ( RECORD record : batch ) { if ( record != null && record.inUse() && !IdValidator.isReservedId( record.getId() ) ) { store.prepareForCommit( record, idSequence.apply( record.getId() ) ); store.updateRecord( record ); recordsUpdatedInThisBatch++; } } recordsUpdated.add( recordsUpdatedInThisBatch ); }
store.prepareForCommit( batch[j] );