private void readColumn ( int startIndex , int length ) throws Exception { if ( m_currentTable != null ) { int value = FastTrackUtility . getByte ( m_buffer , startIndex ) ; Class < ? > klass = COLUMN_MAP [ value ] ; if ( klass == null ) { klass = UnknownColumn . class ; } FastTrackColumn column = ( FastTrackColumn ) klass . newInstance ( ) ; m_currentColumn = column ; logColumnData ( startIndex , length ) ; column . read ( m_currentTable . getType ( ) , m_buffer , startIndex , length ) ; FastTrackField type = column . getType ( ) ; // // Don't try to add this data if: // 1. We don't know what type it is // 2. We have seen the type already // if ( type != null && ! m_currentFields . contains ( type ) ) { m_currentFields . add ( type ) ; m_currentTable . addColumn ( column ) ; updateDurationTimeUnit ( column ) ; updateWorkTimeUnit ( column ) ; logColumn ( column ) ; } } }
Read data for a single column .