question: public String parse ( String inputTemplate , String intputEncoding , String outputFile , String outputEncoding , String objectID , Object object ) throws Exception { if ( objectID != null && object != null ) { controlContext . put ( objectID , object ) ; } Template template = getTemplate ( inputTemplate , inputEncoding != null ? inputEncoding : this . inputEncoding ) ; if ( outputFile == null || outputFile . equals ( "" ) ) { StringWriter sw = new StringWriter ( ) ; template . merge ( controlContext , sw ) ; return sw . toString ( ) ; } else { Writer writer = null ; if ( writers . get ( outputFile ) == null ) { writer = getWriter ( getOutputPath ( ) + File . separator + outputFile , outputEncoding != null ? outputEncoding : this . outputEncoding ) ; writers . put ( outputFile , writer ) ; } else { writer = ( Writer ) writers . get ( outputFile ) ; } VelocityContext vc = new VelocityContext ( controlContext ) ; template . merge ( vc , writer ) ; return "" ; } }
target:  Parse an input and write the output to an output file.  If the output file parameter is null or an empty string the result is returned as a string object.  Otherwise an empty string is returned. You can add objects to the context with the objs Hashtable.