@Override public void updateRecord( RECORD record ) { super.updateRecord( record ); if ( !record.isLight() ) { for ( DynamicRecord keyRecord : record.getNameRecords() ) { nameStore.updateRecord( keyRecord ); } } }
public String getStringFor( RECORD nameRecord ) { ensureHeavy( nameRecord ); int recordToFind = nameRecord.getNameId(); Iterator<DynamicRecord> records = nameRecord.getNameRecords().iterator(); Collection<DynamicRecord> relevantRecords = new ArrayList<>(); while ( recordToFind != Record.NO_NEXT_BLOCK.intValue() && records.hasNext() ) { DynamicRecord record = records.next(); if ( record.inUse() && record.getId() == recordToFind ) { recordToFind = (int) record.getNextBlock(); // TODO: optimize here, high chance next is right one relevantRecords.add( record ); records = nameRecord.getNameRecords().iterator(); } } return decodeString( nameStore.readFullByteArray( relevantRecords, PropertyType.STRING ).other() ); } }
private <RECORD extends TokenRecord> void trackToken( TokenStore<RECORD> tokenStore, TokenCommand<RECORD> tokenCommand ) { track( tokenStore, tokenCommand.getAfter() ); track( tokenStore.getNameStore(), tokenCommand.getAfter().getNameRecords() ); }
@Override public void updateRecord( RECORD record ) { super.updateRecord( record ); if ( !record.isLight() ) { for ( DynamicRecord keyRecord : record.getNameRecords() ) { nameStore.updateRecord( keyRecord ); } } }
public String getStringFor( RECORD nameRecord ) { ensureHeavy( nameRecord ); int recordToFind = nameRecord.getNameId(); Iterator<DynamicRecord> records = nameRecord.getNameRecords().iterator(); Collection<DynamicRecord> relevantRecords = new ArrayList<>(); while ( recordToFind != Record.NO_NEXT_BLOCK.intValue() && records.hasNext() ) { DynamicRecord record = records.next(); if ( record.inUse() && record.getId() == recordToFind ) { recordToFind = (int) record.getNextBlock(); // TODO: optimize here, high chance next is right one relevantRecords.add( record ); records = nameRecord.getNameRecords().iterator(); } } return decodeString( nameStore.readFullByteArray( relevantRecords, PropertyType.STRING ).other() ); } }
private <RECORD extends TokenRecord> void trackToken( TokenStore<RECORD> tokenStore, TokenCommand<RECORD> tokenCommand ) { track( tokenStore, tokenCommand.getAfter() ); track( tokenStore.getNameStore(), tokenCommand.getAfter().getNameRecords() ); }