private static ArrayValue readTimeArray( ByteBuffer bb, int offset ) { final int len = bb.getInt( offset ); offset += Integer.BYTES; final OffsetTime[] array = new OffsetTime[len]; for ( int i = 0; i < len; i++ ) { array[i] = readRawTime( bb, offset ); offset += Long.BYTES + Integer.BYTES; } return timeArray( array ); }
/** * @see RandomValues */ public TimeArray nextTimeArray() { OffsetTime[] array = nextTimeArrayRaw( minArray(), maxArray() ); return Values.timeArray( array ); }
@Override public ArrayValue decodeArray( Value dataValue ) { if ( dataValue instanceof LongArray ) { LongArray numbers = (LongArray) dataValue; OffsetTime[] times = new OffsetTime[(int) (numbers.length() / BLOCKS_TIME)]; for ( int i = 0; i < times.length; i++ ) { long nanoOfDay = numbers.longValue( i * BLOCKS_TIME ); int secondOffset = (int) numbers.longValue( i * BLOCKS_TIME + 1 ); checkValidNanoOfDay( nanoOfDay ); times[i] = OffsetTime.of( LocalTime.ofNanoOfDay( nanoOfDay ), ZoneOffset.ofTotalSeconds( secondOffset ) ); } return Values.timeArray( times ); } else { throw new InvalidRecordException( "Array with unexpected type. Actual:" + dataValue.getClass().getSimpleName() + ". Expected: LongArray." ); } } },
return timeArray( copy( value, new OffsetTime[value.length] ) );
assertLowest( timeArray( new OffsetTime[0] ) );
private static ArrayValue readTimeArray( ByteBuffer bb, int offset ) { final int len = bb.getInt( offset ); offset += Integer.BYTES; final OffsetTime[] array = new OffsetTime[len]; for ( int i = 0; i < len; i++ ) { array[i] = readRawTime( bb, offset ); offset += Long.BYTES + Integer.BYTES; } return timeArray( array ); }
/** * @see RandomValues */ public TimeArray nextTimeArray() { OffsetTime[] array = nextTimeArrayRaw( minArray(), maxArray() ); return Values.timeArray( array ); }
@Override public ArrayValue decodeArray( Value dataValue ) { if ( dataValue instanceof LongArray ) { LongArray numbers = (LongArray) dataValue; OffsetTime[] times = new OffsetTime[(int) (numbers.length() / BLOCKS_TIME)]; for ( int i = 0; i < times.length; i++ ) { long nanoOfDay = numbers.longValue( i * BLOCKS_TIME ); int secondOffset = (int) numbers.longValue( i * BLOCKS_TIME + 1 ); checkValidNanoOfDay( nanoOfDay ); times[i] = OffsetTime.of( LocalTime.ofNanoOfDay( nanoOfDay ), ZoneOffset.ofTotalSeconds( secondOffset ) ); } return Values.timeArray( times ); } else { throw new InvalidRecordException( "Array with unexpected type. Actual:" + dataValue.getClass().getSimpleName() + ". Expected: LongArray." ); } } },
return timeArray( copy( value, new OffsetTime[value.length] ) );