private List < Object > convertType ( DataType type , byte [ ] data ) { List < Object > result = new ArrayList < Object > ( ) ; int index = 0 ; while ( index < data . length ) { switch ( type ) { case STRING : { String value = MPPUtility . getUnicodeString ( data , index ) ; result . add ( value ) ; index += ( ( value . length ( ) + 1 ) * 2 ) ; break ; } case CURRENCY : { Double value = Double . valueOf ( MPPUtility . getDouble ( data , index ) / 100 ) ; result . add ( value ) ; index += 8 ; break ; } case NUMERIC : { Double value = Double . valueOf ( MPPUtility . getDouble ( data , index ) ) ; result . add ( value ) ; index += 8 ; break ; } case DATE : { Date value = MPPUtility . getTimestamp ( data , index ) ; result . add ( value ) ; index += 4 ; break ; } case DURATION : { TimeUnit units = MPPUtility . getDurationTimeUnits ( MPPUtility . getShort ( data , index + 4 ) , m_properties . getDefaultDurationUnits ( ) ) ; Duration value = MPPUtility . getAdjustedDuration ( m_properties , MPPUtility . getInt ( data , index ) , units ) ; result . add ( value ) ; index += 6 ; break ; } case BOOLEAN : { Boolean value = Boolean . valueOf ( MPPUtility . getShort ( data , index ) == 1 ) ; result . add ( value ) ; index += 2 ; break ; } default : { index = data . length ; break ; } } } return result ; }
Convert raw data into Java types .