@Override DynamicRecord record( long id ) { DynamicRecord result = new DynamicRecord( id ); result.setType( SCHEMA_RECORD_TYPE ); return result; }
public static DynamicRecord array( DynamicRecord record ) { record.setType( PropertyType.ARRAY.intValue() ); return record; }
private static DynamicRecord dynamicRecord( long id ) { DynamicRecord record = new DynamicRecord( id ); record.setType( RecordAccessStub.SCHEMA_RECORD_TYPE ); return record; } }
public static DynamicRecord string( DynamicRecord record ) { record.setType( PropertyType.STRING.intValue() ); return record; }
/** * @deprecated use {@link #initialize(boolean, boolean, long, int, int)} instead. */ @Deprecated public static DynamicRecord dynamicRecord( long id, boolean inUse, boolean isStartRecord, long nextBlock, int type, byte [] data ) { DynamicRecord record = new DynamicRecord( id ); record.setInUse( inUse ); record.setStartRecord( isStartRecord ); record.setNextBlock( nextBlock ); record.setType( type ); record.setData( data ); return record; }
@Override public void writeString( String value ) throws IllegalArgumentException { // Try short string first, i.e. inlined in the property block if ( LongerShortString.encode( keyId, value, block, PropertyType.getPayloadSize() ) ) { return; } // Fall back to dynamic string store byte[] encodedString = encodeString( value ); List<DynamicRecord> valueRecords = new ArrayList<>(); allocateStringRecords( valueRecords, encodedString, stringAllocator ); setSingleBlockValue( block, keyId, PropertyType.STRING, Iterables.first( valueRecords ).getId() ); for ( DynamicRecord valueRecord : valueRecords ) { valueRecord.setType( PropertyType.STRING.intValue() ); } block.setValueRecords( valueRecords ); }
private DynamicRecord dynamicRecord() { DynamicRecord dynamicRecord = new DynamicRecord( 42 ); dynamicRecord.setType( PropertyType.STRING.intValue() ); dynamicRecord.setCreated(); return dynamicRecord; }
@Test void shouldReportMalformedSchemaRule() throws Exception { // given DynamicRecord badRecord = inUse( new DynamicRecord( 0 ) ); badRecord.setType( RecordAccessStub.SCHEMA_RECORD_TYPE ); when( checker().ruleAccess.loadSingleSchemaRule( 0 ) ).thenThrow( new MalformedSchemaRuleException( "Bad Record" ) ); // when ConsistencyReport.SchemaConsistencyReport report = check( badRecord ); // then verify( report ).malformedSchemaRule(); }
public void ensureHeavy( PropertyBlock block ) { if ( !block.isLight() ) { return; } PropertyType type = block.getType(); RecordStore<DynamicRecord> dynamicStore = dynamicStoreForValueType( type ); if ( dynamicStore != null ) { List<DynamicRecord> dynamicRecords = dynamicStore.getRecords( block.getSingleValueLong(), NORMAL ); for ( DynamicRecord dynamicRecord : dynamicRecords ) { dynamicRecord.setType( type.intValue() ); } block.setValueRecords( dynamicRecords ); } }
public static void encodeValue( PropertyBlock block, int keyId, Value value, DynamicRecordAllocator stringAllocator, DynamicRecordAllocator arrayAllocator, boolean allowStorePointsAndTemporal ) { if ( value instanceof ArrayValue ) { Object asObject = value.asObject(); // Try short array first, i.e. inlined in the property block if ( ShortArray.encode( keyId, asObject, block, PropertyType.getPayloadSize() ) ) { return; } // Fall back to dynamic array store List<DynamicRecord> arrayRecords = new ArrayList<>(); allocateArrayRecords( arrayRecords, asObject, arrayAllocator, allowStorePointsAndTemporal ); setSingleBlockValue( block, keyId, PropertyType.ARRAY, Iterables.first( arrayRecords ).getId() ); for ( DynamicRecord valueRecord : arrayRecords ) { valueRecord.setType( PropertyType.ARRAY.intValue() ); } block.setValueRecords( arrayRecords ); } else { value.writeTo( new PropertyBlockValueWriter( block, keyId, stringAllocator, allowStorePointsAndTemporal ) ); } }
@Override protected void transactionData( GraphStoreFixture.TransactionDataBuilder tx, GraphStoreFixture.IdGenerator next ) { DynamicRecord array = new DynamicRecord( next.arrayProperty() ); array.setInUse( true ); array.setCreated(); array.setType( ARRAY.intValue() ); array.setNextBlock( next.arrayProperty() ); array.setData( UTF8.encode( "hello world" ) ); PropertyBlock block = new PropertyBlock(); block.setSingleBlock( (((long) ARRAY.intValue()) << 24) | (array.getId() << 28) ); block.addValueRecord( array ); PropertyRecord property = new PropertyRecord( next.property() ); property.addPropertyBlock( block ); tx.create( property ); } } );
@Override protected void transactionData( GraphStoreFixture.TransactionDataBuilder tx, GraphStoreFixture.IdGenerator next ) { DynamicRecord string = new DynamicRecord( next.stringProperty() ); string.setInUse( true ); string.setCreated(); string.setType( PropertyType.STRING.intValue() ); string.setNextBlock( next.stringProperty() ); string.setData( UTF8.encode( "hello world" ) ); PropertyBlock block = new PropertyBlock(); block.setSingleBlock( (((long) PropertyType.STRING.intValue()) << 24) | (string.getId() << 28) ); block.addValueRecord( string ); PropertyRecord property = new PropertyRecord( next.property() ); property.addPropertyBlock( block ); tx.create( property ); } } );
@Override DynamicRecord record( long id ) { DynamicRecord result = new DynamicRecord( id ); result.setType( SCHEMA_RECORD_TYPE ); return result; }
public static DynamicRecord string( DynamicRecord record ) { record.setType( PropertyType.STRING.intValue() ); return record; }
private DynamicRecord dynamicRecord( long id ) { DynamicRecord record = new DynamicRecord( id ); record.setType( RecordAccessStub.SCHEMA_RECORD_TYPE ); return record; } }
public static DynamicRecord array( DynamicRecord record ) { record.setType( PropertyType.ARRAY.intValue() ); return record; }
/** * @deprecated use {@link #initialize(boolean, boolean, long, int, int)} instead. */ @Deprecated public static DynamicRecord dynamicRecord( long id, boolean inUse, boolean isStartRecord, long nextBlock, int type, byte [] data ) { DynamicRecord record = new DynamicRecord( id ); record.setInUse( inUse ); record.setStartRecord( isStartRecord ); record.setNextBlock( nextBlock ); record.setType( type ); record.setData( data ); return record; }
public void ensureHeavy( PropertyBlock block ) { if ( !block.isLight() ) { return; } PropertyType type = block.getType(); RecordStore<DynamicRecord> dynamicStore = dynamicStoreForValueType( type ); if ( dynamicStore != null ) { List<DynamicRecord> dynamicRecords = dynamicStore.getRecords( block.getSingleValueLong(), NORMAL ); for ( DynamicRecord dynamicRecord : dynamicRecords ) { dynamicRecord.setType( type.intValue() ); } block.setValueRecords( dynamicRecords ); } }
@Test public void shouldReportMalformedSchemaRule() throws Exception { // given DynamicRecord badRecord = inUse( new DynamicRecord( 0 ) ); badRecord.setType( RecordAccessStub.SCHEMA_RECORD_TYPE ); when( checker().ruleAccess.loadSingleSchemaRule( 0 ) ).thenThrow( new MalformedSchemaRuleException( "Bad Record" ) ); // when ConsistencyReport.SchemaConsistencyReport report = check( badRecord ); // then verify( report ).malformedSchemaRule(); }
@Override protected void transactionData( GraphStoreFixture.TransactionDataBuilder tx, GraphStoreFixture.IdGenerator next ) { DynamicRecord string = new DynamicRecord( next.stringProperty() ); string.setInUse( true ); string.setCreated(); string.setType( PropertyType.STRING.intValue() ); string.setNextBlock( next.stringProperty() ); string.setData( UTF8.encode( "hello world" ) ); PropertyBlock block = new PropertyBlock(); block.setSingleBlock( (((long) PropertyType.STRING.intValue()) << 24) | (string.getId() << 28) ); block.addValueRecord( string ); PropertyRecord property = new PropertyRecord( next.property() ); property.addPropertyBlock( block ); tx.create( property ); } } );