protected void readContributor ( Revision rev , String str ) throws IOException , ArticleReaderException { char [ ] contrChars = str . toCharArray ( ) ; int size ; StringBuilder buffer = null ; this . keywords . reset ( ) ; for ( char curChar : contrChars ) { if ( buffer != null ) { buffer . append ( curChar ) ; } if ( this . keywords . check ( curChar ) ) { switch ( this . keywords . getValue ( ) ) { case KEY_START_ID : case KEY_START_IP : case KEY_START_USERNAME : buffer = new StringBuilder ( ) ; break ; case KEY_END_IP : size = buffer . length ( ) ; buffer . delete ( size - WikipediaXMLKeys . KEY_END_IP . getKeyword ( ) . length ( ) , size ) ; // escape id string rev . setContributorName ( SQLEscape . escape ( buffer . toString ( ) ) ) ; rev . setContributorIsRegistered ( false ) ; buffer = null ; break ; case KEY_END_USERNAME : size = buffer . length ( ) ; buffer . delete ( size - WikipediaXMLKeys . KEY_END_USERNAME . getKeyword ( ) . length ( ) , size ) ; // escape id string rev . setContributorName ( SQLEscape . escape ( buffer . toString ( ) ) ) ; rev . setContributorIsRegistered ( true ) ; buffer = null ; break ; case KEY_END_ID : size = buffer . length ( ) ; buffer . delete ( size - WikipediaXMLKeys . KEY_END_ID . getKeyword ( ) . length ( ) , size ) ; String id = buffer . toString ( ) ; if ( ! id . isEmpty ( ) ) { rev . setContributorId ( Integer . parseInt ( buffer . toString ( ) ) ) ; } buffer = null ; break ; } } } }
Parses the content within the contributor tags and adds the parsed info to the provided revision object .