public static Long readOwnerFromDynamicLabelsRecord( DynamicRecord record ) { byte[] data = record.getData(); byte[] header = PropertyType.ARRAY.readDynamicRecordHeader( data ); byte[] array = Arrays.copyOfRange( data, header.length, data.length ); int requiredBits = header[2]; if ( requiredBits == 0 ) { return null; } Bits bits = Bits.bitsFromBytes( array ); return bits.getLong( requiredBits ); }
public static ArrayValue decodeTemporalArray( TemporalHeader header, byte[] data ) { byte[] dataHeader = PropertyType.ARRAY.readDynamicRecordHeader( data ); byte[] dataBody = new byte[data.length - dataHeader.length]; System.arraycopy( data, dataHeader.length, dataBody, 0, dataBody.length ); Value dataValue = DynamicArrayStore.getRightArray( Pair.of( dataHeader, dataBody ) ); return find( header.temporalType ).decodeArray( dataValue ); }
if ( i++ == 0 ) header = propertyType.readDynamicRecordHeader( record.getData() ); offset = header.length;
@Override public ArrayValue decodeArray( GeometryHeader header, byte[] data ) { byte[] dataHeader = PropertyType.ARRAY.readDynamicRecordHeader( data ); byte[] dataBody = new byte[data.length - dataHeader.length]; System.arraycopy( data, dataHeader.length, dataBody, 0, dataBody.length ); Value dataValue = DynamicArrayStore.getRightArray( Pair.of( dataHeader, dataBody ) ); if ( dataValue instanceof FloatingPointArray ) { FloatingPointArray numbers = (FloatingPointArray) dataValue; PointValue[] points = new PointValue[numbers.length() / header.dimension]; for ( int i = 0; i < points.length; i++ ) { double[] coords = new double[header.dimension]; for ( int d = 0; d < header.dimension; d++ ) { coords[d] = numbers.doubleValue( i * header.dimension + d ); } points[i] = Values.pointValue( header.crs, coords ); } return Values.pointArray( points ); } else { throw new InvalidRecordException( "Point array with unexpected type. Actual:" + dataValue.getClass().getSimpleName() + ". Expected: FloatingPointArray." ); } } };
public static Long readOwnerFromDynamicLabelsRecord( DynamicRecord record ) { byte[] data = record.getData(); byte[] header = PropertyType.ARRAY.readDynamicRecordHeader( data ); byte[] array = Arrays.copyOfRange( data, header.length, data.length ); int requiredBits = header[2]; if ( requiredBits == 0 ) { return null; } Bits bits = Bits.bitsFromBytes( array ); return bits.getLong( requiredBits ); }
public static ArrayValue decodeTemporalArray( TemporalHeader header, byte[] data ) { byte[] dataHeader = PropertyType.ARRAY.readDynamicRecordHeader( data ); byte[] dataBody = new byte[data.length - dataHeader.length]; System.arraycopy( data, dataHeader.length, dataBody, 0, dataBody.length ); Value dataValue = DynamicArrayStore.getRightArray( Pair.of( dataHeader, dataBody ) ); return find( header.temporalType ).decodeArray( dataValue ); }
if ( i++ == 0 ) header = propertyType.readDynamicRecordHeader( record.getData() ); offset = header.length;
@Override public ArrayValue decodeArray( GeometryHeader header, byte[] data ) { byte[] dataHeader = PropertyType.ARRAY.readDynamicRecordHeader( data ); byte[] dataBody = new byte[data.length - dataHeader.length]; System.arraycopy( data, dataHeader.length, dataBody, 0, dataBody.length ); Value dataValue = DynamicArrayStore.getRightArray( Pair.of( dataHeader, dataBody ) ); if ( dataValue instanceof FloatingPointArray ) { FloatingPointArray numbers = (FloatingPointArray) dataValue; PointValue[] points = new PointValue[numbers.length() / header.dimension]; for ( int i = 0; i < points.length; i++ ) { double[] coords = new double[header.dimension]; for ( int d = 0; d < header.dimension; d++ ) { coords[d] = numbers.doubleValue( i * header.dimension + d ); } points[i] = Values.pointValue( header.crs, coords ); } return Values.pointArray( points ); } else { throw new InvalidRecordException( "Point array with unexpected type. Actual:" + dataValue.getClass().getSimpleName() + ". Expected: FloatingPointArray." ); } } };