Bug 122423 Support page range in RenderTask
Support page range in render task. For PDF format, simply log a message saying range is not supported if a range is specified, and still output whole report. For HTML format, support page range in the form of "1,2,5-10" + "All". The code should check if there is range set. If so, parse it and form a range and output them one after another, with a page splitter in between just like the runAndRenderTask. If no range is set, check if page number is set. There can only be one page in case a page number is set. Invalid page number should be logged, and error message is returned. If neither is set, we default to all pages, instead of the current behavior of giving an error message.
engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/api/impl/RunAndRenderTask.java
*******************************************************************************/
package org.eclipse.birt.report.engine.api.impl;
import java.util.logging.Level;
import org.eclipse.birt.report.engine.api.EngineConfig;
import org.eclipse.birt.report.engine.api.EngineException;
import org.eclipse.birt.report.engine.api.HTMLRenderOption;
import org.eclipse.birt.report.engine.api.IReportRunnable;
import org.eclipse.birt.report.engine.api.IRunAndRenderTask;
import org.eclipse.birt.report.engine.api.ReportEngine;
import org.eclipse.birt.report.engine.emitter.EngineEmitterServices;
import org.eclipse.birt.report.engine.emitter.IContentEmitter;
import org.eclipse.birt.report.engine.executor.ReportExecutor;
import org.eclipse.birt.report.engine.extension.internal.ExtensionManager;
import org.eclipse.birt.report.engine.i18n.MessageConstants;
import org.eclipse.birt.report.engine.presentation.DefaultPaginationEmitter;
import org.eclipse.birt.report.engine.presentation.HTMLPaginationEmitter;
import org.eclipse.birt.report.engine.presentation.LocalizedEmitter;
import org.eclipse.birt.report.model.api.ReportDesignHandle;
/**
 * an engine task that runs a report and renders it to one of the output formats
 * supported by the engine.
 */
public class RunAndRenderTask extends EngineTask implements IRunAndRenderTask
{
	/**
	 * specifies the emitter ID used for rendering the report
	 */
	protected String emitterID;
	/**
	 * @param engine