public static String getCMDKey ( final MetaData columnMD , final String line ) { if ( ! columnMD . isAnyRecordFormatSpecified ( ) ) { // no <RECORD> elements were specified for this parse, just return the // detail id return FPConstants . DETAIL_ID ; } final Iterator < Entry < String , XMLRecordElement > > mapEntries = columnMD . xmlRecordIterator ( ) ; // loop through the XMLRecordElement objects and see if we need a // different MD object while ( mapEntries . hasNext ( ) ) { final Entry < String , XMLRecordElement > entry = mapEntries . next ( ) ; final XMLRecordElement recordXMLElement = entry . getValue ( ) ; if ( recordXMLElement . getEndPositition ( ) > line . length ( ) ) { // make sure our substring is not going to fail continue ; } final int subfrm = recordXMLElement . getStartPosition ( ) - 1 ; // convert // to 0 // based final int subto = recordXMLElement . getEndPositition ( ) ; if ( line . substring ( subfrm , subto ) . equals ( recordXMLElement . getIndicator ( ) ) ) { // we found the MD object we want to return return entry . getKey ( ) ; } } // must be a detail line return FPConstants . DETAIL_ID ; }
Returns the key to the list of ColumnMetaData objects . Returns the correct MetaData per the mapping file and the data contained on the line