public static String render ( List < Node > nodes ) { StringBuilder buf = new StringBuilder ( ) ; for ( Node node : nodes ) { if ( node instanceof Text ) { String text = ( ( Text ) node ) . text ; boolean inquote = false ; for ( int i = 0 ; i < text . length ( ) ; i ++ ) { char ch = text . charAt ( i ) ; switch ( ch ) { case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : if ( ! inquote ) { buf . append ( ' ' ) ; } buf . append ( ch ) ; break ; default : if ( inquote ) { buf . append ( ' ' ) ; } buf . append ( ch ) ; break ; } } } else if ( node instanceof Field ) { Field field = ( Field ) node ; for ( int i = 0 ; i < field . width ; i ++ ) { buf . append ( field . ch ) ; } } } return buf . toString ( ) ; }
Render the compiled pattern back into string form .