public void process ( ) { if ( m_data != null ) { int index = 0 ; int offset = 0 ; // First the length (repeated twice) int length = MPPUtility . getInt ( m_data , offset ) ; offset += 8 ; // Then the number of custom columns int numberOfAliases = MPPUtility . getInt ( m_data , offset ) ; offset += 4 ; // Then the aliases themselves while ( index < numberOfAliases && offset < length ) { // Each item consists of the Field ID (2 bytes), 40 0B marker (2 bytes), and the // offset to the string (4 bytes) // Get the Field ID int fieldID = MPPUtility . getInt ( m_data , offset ) ; offset += 4 ; // Get the alias offset (offset + 4 for some reason). int aliasOffset = MPPUtility . getInt ( m_data , offset ) + 4 ; offset += 4 ; // Read the alias itself if ( aliasOffset < m_data . length ) { String alias = MPPUtility . getUnicodeString ( m_data , aliasOffset ) ; m_fields . getCustomField ( FieldTypeHelper . getInstance ( fieldID ) ) . setAlias ( alias ) ; } index ++ ; } } }
Process field aliases .