private List < RecordInfo > getPositionsFromEmbeddedCollection ( final BytesContainer bytes , int serializerVersion ) { List < RecordInfo > retList = new ArrayList <> ( ) ; int numberOfElements = OVarIntSerializer . readAsInteger ( bytes ) ; //read collection type readByte ( bytes ) ; for ( int i = 0 ; i < numberOfElements ; i ++ ) { //read element //read data type OType dataType = readOType ( bytes , false ) ; int fieldStart = bytes . offset ; RecordInfo fieldInfo = new RecordInfo ( ) ; fieldInfo . fieldStartOffset = fieldStart ; fieldInfo . fieldType = dataType ; //TODO find better way to skip data bytes; deserializeValue ( bytes , dataType , null , true , - 1 , serializerVersion , true ) ; fieldInfo . fieldLength = bytes . offset - fieldStart ; retList . add ( fieldInfo ) ; } return retList ; }
returns begin position and length for each value in embedded collection