@Override protected boolean isFirstInChain( RelationshipRecord relationship ) { return relationship.isFirstInSecondChain(); }
@Override boolean isFirstInChain( RelationshipRecord rel ) { return rel.isFirstInSecondChain(); } },
@Override boolean isFirstInChain( RelationshipRecord rel ) { return rel.isFirstInSecondChain(); } };
@Override public boolean endOfChain( RelationshipRecord rel ) { return rel.isFirstInSecondChain(); } };
@Override public boolean isFirst( RelationshipRecord relationship ) { return relationship.isFirstInSecondChain(); }
@Override protected boolean isFirstInChain( RelationshipRecord relationship ) { return relationship.isFirstInFirstChain() && relationship.isFirstInSecondChain(); }
@Override long get( RelationshipRecord rel ) { return rel.isFirstInSecondChain() ? Record.NO_NEXT_RELATIONSHIP.intValue() : rel.getSecondPrevRel(); }
private boolean relIsFirstInChain( long nodeId, RelationshipRecord rel ) { return (nodeId == rel.getFirstNode() && rel.isFirstInFirstChain()) || (nodeId == rel.getSecondNode() && rel.isFirstInSecondChain()); } }
@Override protected void assertRecordsEqual( RelationshipRecord actualRecord, RelationshipRecord expectedRecord ) { assertNotNull( "actualRecord", actualRecord ); assertNotNull( "expectedRecord", expectedRecord ); assertThat( "getFirstNextRel", actualRecord.getFirstNextRel(), is( expectedRecord.getFirstNextRel() ) ); assertThat( "getFirstNode", actualRecord.getFirstNode(), is( expectedRecord.getFirstNode() ) ); assertThat( "getFirstPrevRel", actualRecord.getFirstPrevRel(), is( expectedRecord.getFirstPrevRel() ) ); assertThat( "getSecondNextRel", actualRecord.getSecondNextRel(), is( expectedRecord.getSecondNextRel() ) ); assertThat( "getSecondNode", actualRecord.getSecondNode(), is( expectedRecord.getSecondNode() ) ); assertThat( "getSecondPrevRel", actualRecord.getSecondPrevRel(), is( expectedRecord.getSecondPrevRel() ) ); assertThat( "getType", actualRecord.getType(), is( expectedRecord.getType() ) ); assertThat( "isFirstInFirstChain", actualRecord.isFirstInFirstChain(), is( expectedRecord.isFirstInFirstChain() ) ); assertThat( "isFirstInSecondChain", actualRecord.isFirstInSecondChain(), is( expectedRecord.isFirstInSecondChain() ) ); assertThat( "getId", actualRecord.getId(), is( expectedRecord.getId() ) ); assertThat( "getLongId", actualRecord.getId(), is( expectedRecord.getId() ) ); assertThat( "getNextProp", actualRecord.getNextProp(), is( expectedRecord.getNextProp() ) ); assertThat( "inUse", actualRecord.inUse(), is( expectedRecord.inUse() ) ); }
private String diff( RelationshipRecord expected, RelationshipRecord actual ) { if ( actual.getId() == expected.getId() && actual.getFirstNode() == expected.getFirstNode() && actual.getSecondNode() == expected.getSecondNode() && actual.getType() == expected.getType() && actual.getFirstPrevRel() == expected.getFirstPrevRel() && actual.getFirstNextRel() == expected.getFirstNextRel() && actual.getSecondPrevRel() == expected.getSecondPrevRel() && actual.getSecondNextRel() == expected.getSecondNextRel() && actual.isFirstInFirstChain() == expected.isFirstInFirstChain() && actual.isFirstInSecondChain() == expected.isFirstInSecondChain() ) { return null; } return describeDiff( expected.toString(), actual.toString() ); }
@Override public RecordKey<RelationshipRecord> relationship() { return ( written, read ) -> { assertEquals( written.getNextProp(), read.getNextProp() ); assertEquals( written.getFirstNode(), read.getFirstNode() ); assertEquals( written.getSecondNode(), read.getSecondNode() ); assertEquals( written.getType(), read.getType() ); assertEquals( written.getFirstPrevRel(), read.getFirstPrevRel() ); assertEquals( written.getFirstNextRel(), read.getFirstNextRel() ); assertEquals( written.getSecondPrevRel(), read.getSecondPrevRel() ); assertEquals( written.getSecondNextRel(), read.getSecondNextRel() ); assertEquals( written.isFirstInFirstChain(), read.isFirstInFirstChain() ); assertEquals( written.isFirstInSecondChain(), read.isFirstInSecondChain() ); }; }
long firstInEndNodeChain = record.isFirstInSecondChain() ? 0x2 : 0; byte extraByte = (byte) (firstInEndNodeChain | firstInStartNodeChain);
private void writeRelationshipRecord( WritableChannel channel, RelationshipRecord record ) throws IOException { byte flags = bitFlags( bitFlag( record.inUse(), Record.IN_USE.byteValue() ), bitFlag( record.isCreated(), Record.CREATED_IN_TX ), bitFlag( record.requiresSecondaryUnit(), Record.REQUIRE_SECONDARY_UNIT ), bitFlag( record.hasSecondaryUnitId(), Record.HAS_SECONDARY_UNIT ), bitFlag( record.isUseFixedReferences(), Record.USES_FIXED_REFERENCE_FORMAT ) ); channel.put( flags ); if ( record.inUse() ) { channel.putLong( record.getFirstNode() ).putLong( record.getSecondNode() ).putInt( record.getType() ) .putLong( record.getFirstPrevRel() ).putLong( record.getFirstNextRel() ) .putLong( record.getSecondPrevRel() ).putLong( record.getSecondNextRel() ) .putLong( record.getNextProp() ) .put( (byte) ((record.isFirstInFirstChain() ? 1 : 0) | (record.isFirstInSecondChain() ? 2 : 0)) ); if ( record.hasSecondaryUnitId() ) { channel.putLong( record.getSecondaryUnitId() ); } } else { channel.putInt( record.getType() ); } } }
if ( rel.isFirstInSecondChain() ) if ( rel.isFirstInSecondChain() )
@Override boolean isFirstInChain( RelationshipRecord rel ) { return rel.isFirstInSecondChain(); } };
private long getSecondPrevReference( RelationshipRecord record, long recordId ) { return record.isFirstInSecondChain() ? record.getSecondPrevRel() : toRelative( record.getSecondPrevRel(), recordId ); }
private long getSecondPrevReference( RelationshipRecord record, long recordId ) { return record.isFirstInSecondChain() ? record.getSecondPrevRel() : toRelative( record.getSecondPrevRel(), recordId ); }
private long getSecondPrevReference( RelationshipRecord record, long recordId ) { return record.isFirstInSecondChain() ? record.getSecondPrevRel() : toRelative( record.getSecondPrevRel(), recordId ); }
@Override protected byte headerBits( RelationshipRecord record ) { byte header = 0; header = set( header, FIRST_IN_FIRST_CHAIN_BIT, record.isFirstInFirstChain() ); header = set( header, FIRST_IN_SECOND_CHAIN_BIT, record.isFirstInSecondChain() ); header = set( header, HAS_PROPERTY_BIT, record.getNextProp(), NULL ); header = set( header, HAS_FIRST_CHAIN_NEXT_BIT, record.getFirstNextRel(), NULL ); header = set( header, HAS_SECOND_CHAIN_NEXT_BIT, record.getSecondNextRel(), NULL ); return header; }
@Override protected byte headerBits( RelationshipRecord record ) { byte header = 0; header = set( header, FIRST_IN_FIRST_CHAIN_BIT, record.isFirstInFirstChain() ); header = set( header, FIRST_IN_SECOND_CHAIN_BIT, record.isFirstInSecondChain() ); header = set( header, HAS_PROPERTY_BIT, record.getNextProp(), NULL ); header = set( header, HAS_FIRST_CHAIN_NEXT_BIT, record.getFirstNextRel(), NULL ); header = set( header, HAS_SECOND_CHAIN_NEXT_BIT, record.getSecondNextRel(), NULL ); return header; }