question: String decodeTextValue ( byte [ ] data ) throws IOException { boolean isCompressed = ( ( data . length > 1 ) && ( data [ 0 ] == TEXT_COMPRESSION_HEADER [ 0 ] ) && ( data [ 1 ] == TEXT_COMPRESSION_HEADER [ 1 ] ) ) ; if ( isCompressed ) { StringBuilder textBuf = new StringBuilder ( data . length ) ; int dataStart = TEXT_COMPRESSION_HEADER . length ; int dataEnd = dataStart ; boolean inCompressedMode = true ; while ( dataEnd < data . length ) { if ( data [ dataEnd ] == ( byte ) 0x00 ) { decodeTextSegment ( data , dataStart , dataEnd , inCompressedMode , textBuf ) ; inCompressedMode = ! inCompressedMode ; ++ dataEnd ; dataStart = dataEnd ; } else { ++ dataEnd ; } } decodeTextSegment ( data , dataStart , dataEnd , inCompressedMode , textBuf ) ; return textBuf . toString ( ) ; } return decodeUncompressedText ( data , getCharset ( ) ) ; }
target:  Decodes a compressed or uncompressed text value.