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
*         about the extended item. Presentation engine guarantees that the
	 *         same object is returned to the extended item instance at
	 *         presentation time. To achieve such a goal, generation engine may
	 *         uses serialization services provided by the
	 *         IReportItemSerializable interface.
	 * @throws BirtException
	 *             throws exception when there is a problem processing the
	 *             extended item
	 */
	public abstract void onRowSets( IBaseResultSet[] results )
			throws BirtException;
	
	/**
	 * returns whether the extended item needs serialization of state
	 * information at generation time
	 * 
	 * @return whether the extended item needs to serialize state information at
	 *         generation time
	 */
	public abstract boolean needSerialization( );
	/**
	 * serializes the extended item generation time state. The application
	 * developer should not assume that the output stream is a file stream.
	 * Presentation engine guarantees that a corresponding input stream is
	 * available for deserializing what is written by this function.
	 * 
	 * @param ostream
	 *            the output stream to write the generation time state of the
	 *            extended item to
	 * @throws BirtException