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/IReportItemGeneration.java
*             when there is a problem serializing the extended item state
	 */
	public abstract void serialize( OutputStream ostream ) throws BirtException;
	/**
	 * Get the size of the extended item. The size is a Dimension object. The
	 * width and height can only be in absolute units (inch, mm, etc.) or pixel.
	 * It can not be a relative size such as 150% or 1.2em. Notice that an
	 * extended item can obtain its design-time size information by querying DE.
	 * This function is needed because the actual size may not be the same as
	 * the design-time size.
	 * 
	 * @return the size of the extended item. Return null if the size does not
	 *         matter or can not be determined.
	 */
	public Size getSize( );
	/**
	 * Performs clean up work
	 */
	public void finish( );
	
	/**
	 * Set the content which is transformed from extended item. Extended item
	 * can process some properties itself, such as bookmark, style etc.
	 * 
	 * @param content
	 *            content which is transformed from extended item.
	 */
	public void setExtendedItemContent( IContent content );
}