class GlobalAntExecutor {

    public void launchAntExecutor(final String generatorBuilderPath,
                                  final String fileName,
                                  final String deliverableFileName,
                                  final String temporaryDir,
                                  final PrintStream errorStreamWrapper,
                                  final PrintStream outputStreamWrapper) throws APIRestGeneratorException
    {
        // Get the full path of the ant executor module
        String packageName = new StringBuilder(ConstantsOutput.COMMON_GEN_TYPE_PACKAGE)
				                                              .append(ConstantsCommon.STRING_DOT)
				                                              .append(this.translatorType)
				                                              .append(ConstantsCommon.STRING_DOT)
				                                              .append(ConstantsAnt.ANT_FOLDER).toString() ;
        
        InvokeModule invokeModule       = InvokeModule.initInvokeModule(packageName, ConstantsAnt.ANT_LAUNCHER_CLASS) ;

        if (invokeModule != null)
        {
            Object[] constParams        = {generatorBuilderPath, this.parserType, deliverableFileName} ;
            Class<?>[] consTypeParams   = {String.class, String.class, String.class} ;

            Object executorInstance     = invokeModule.createInstance(constParams, consTypeParams) ;

            Object[] methodParams       = {fileName, errorStreamWrapper, outputStreamWrapper, temporaryDir} ;
            Class<?>[] methodTypeParams = {String.class, PrintStream.class, PrintStream.class, String.class} ;

            invokeModule.invokeMethod(executorInstance, "executeAntTask", methodParams, methodTypeParams) ;
        }
    }

    public  GlobalAntExecutor(final String parserType, final String translatorType);

}