private void readMultiMapKeys ( XMLEventReader reader , MultiValueMap < String > map ) throws XMLStreamException , JournalException { while ( true ) { XMLEvent event2 = reader . nextTag ( ) ; if ( isStartTagEvent ( event2 , QNAME_TAG_MULTI_VALUE_MAP_KEY ) ) { // if we find a key tag, get the name String key = getRequiredAttributeValue ( event2 . asStartElement ( ) , QNAME_ATTR_NAME ) ; // read as many values as we find. String [ ] values = readMultiMapValuesForKey ( reader ) ; // store in the map storeInMultiMap ( map , key , values ) ; } else if ( isEndTagEvent ( event2 , QNAME_TAG_MULTI_VALUE_MAP ) ) { break ; } else { throw getNotNextMemberOrEndOfGroupException ( QNAME_TAG_MULTI_VALUE_MAP , QNAME_TAG_MULTI_VALUE_MAP_KEY , event2 ) ; } } }
Read through the keys of the multi - map adding to the map as we go .