Bug 209916 Improve design of IReportItemGeneration and IReportItemPresentation
This enhancement proposes to enhance the design of IReportItemGeneration and IReportItemPresentation to make them easier to use and less likely to change in the future. The idea is to replace all the setter method that need to be implemented, by a single init method passing a new interface with all the content available through getter methods. Detailed proposal below: 1- Deprecate all set methods, but still call them. Add some javadoc as follow: @deprecated implement @link #init(IReportItemPresentationInfo) instead 2- Add a new init(IReportItemPresentationInfo) method (with a @since 2.3 keyword) 3- Create a new interface IReportItemPresentationInfo with getter methods corresponding to the setter methods, and implement it internally. Locale getLocale(); int getResolution(); ... A similar fix can be done for IReportItemGeneration
engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/extension/IReportItemPresentation.java
public static int OUTPUT_NONE = 0;
	public static int OUTPUT_AS_IMAGE = 1; 
											
	public static int OUTPUT_AS_TEXT = 2;
	public static int OUTPUT_AS_HTML_TEXT = 3;
	public static int OUTPUT_AS_DRAWING = 4;
	public static int OUTPUT_AS_CUSTOM = 5;
	public static int OUTPUT_AS_IMAGE_WITH_MAP = 6;
	/**
	 * passes a handle to the extended report item model to the extension
	 * 
	 * @param modelHandle
	 *            a handle to the extended item model object
	 */
	public abstract void setModelObject( ExtendedItemHandle modelHandle );
	/**
	 * passes the class loader used to load user defined classes.
	 * 
	 * @param loader
	 *            class loader used to load the classes
	 */
	public abstract void setApplicationClassLoader( ClassLoader loader );
	/**
	 * pass the script context to the report item.
	 * 
	 * @param context
	 *            report context used by java-based script
	 */
	public abstract void setScriptContext( IReportContext context );
	/**