protected void writeRecordData( RECORD record, PageCursor cursor ) { cursor.putInt( record.getNameId() ); } }
@Override public void ensureHeavy( RECORD record ) { if ( !record.isLight() ) { return; } record.addNameRecords( nameStore.getRecords( record.getNameId(), NORMAL ) ); }
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() ); } }
@SuppressWarnings( "unchecked" ) @Override public void check( RECORD record, CheckerEngine<RECORD, REPORT> engine, RecordAccess records ) { if ( record.inUse() ) { DynamicOwner.NameOwner owner = owner( record ); DynamicOwner prev = owners.put( (long)record.getNameId(), owner ); if ( prev != null ) { engine.comparativeCheck( prev.record( records ), owner ); } } checker.check( record, engine, records ); }
public List<NamedToken> getTokens() { LinkedList<NamedToken> records = new LinkedList<>(); long maxIdInUse = getHighestPossibleIdInUse(); int found = 0; RECORD record = newRecord(); for ( int i = 0; i <= maxIdInUse; i++ ) { if ( !getRecord( i, record, RecordLoad.CHECK ).inUse() ) { continue; } found++; if ( record != null && record.inUse() && record.getNameId() != Record.RESERVED.intValue() ) { records.add( new NamedToken( getStringFor( record ), i ) ); } } return records; }
protected void writeRecordData( RECORD record, PageCursor cursor ) { cursor.putInt( record.getNameId() ); } }
@Override public void ensureHeavy( RECORD record ) { if ( !record.isLight() ) { return; } record.addNameRecords( nameStore.getRecords( record.getNameId(), NORMAL ) ); }
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() ); } }
public List<NamedToken> getTokens() { LinkedList<NamedToken> records = new LinkedList<>(); long maxIdInUse = getHighestPossibleIdInUse(); int found = 0; RECORD record = newRecord(); for ( int i = 0; i <= maxIdInUse; i++ ) { if ( !getRecord( i, record, RecordLoad.CHECK ).inUse() ) { continue; } found++; if ( record != null && record.inUse() && record.getNameId() != Record.RESERVED.intValue() ) { records.add( new NamedToken( getStringFor( record ), i ) ); } } return records; }