Bug 213126 Add support for DataEngine-leve dataset cache
In many cases the DataEngine-leve dataset cache is useful which ensure that a dataset is executed one time during rendering one report. To support this feature a new dataset property should be added. The Birt customer can choose whether this dataset need to be cached or not by setting the property in deisgn time.
model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/writer/ModuleWriter.java
CachedMetaData metadata = (CachedMetaData) obj.getLocalProperty(
				getModule( ), IDataSetModel.CACHED_METADATA_PROP );
		if ( metadata != null )
		{
			
			writer.startElement( DesignSchemaConstants.STRUCTURE_TAG );
			writer.attribute( IDesignElementModel.NAME_PROP,
					IDataSetModel.CACHED_METADATA_PROP );
			writeStructureList( metadata, CachedMetaData.PARAMETERS_MEMBER );
			writeStructureList( metadata, CachedMetaData.RESULT_SET_MEMBER );
			writer.endElement( );
			
		}
		property( obj, IDataSetModel.ROW_FETCH_LIMIT_PROP );
	}
	/*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.birt.report.model.elements.ElementVisitor#visitSimpleDataSet(org.eclipse.birt.report.model.elements.SimpleDataSet)
	 */
	public void visitSimpleDataSet( SimpleDataSet obj )
	{
		super.visitSimpleDataSet( obj );
		property( obj, ISimpleDataSetModel.DATA_SOURCE_PROP );
		property( obj, ISimpleDataSetModel.BEFORE_OPEN_METHOD );
		property( obj, ISimpleDataSetModel.BEFORE_CLOSE_METHOD );
		property( obj, ISimpleDataSetModel.ON_FETCH_METHOD );
		property( obj, ISimpleDataSetModel.AFTER_OPEN_METHOD );
		property( obj, ISimpleDataSetModel.AFTER_CLOSE_METHOD );
		property( obj, IDesignElementModel.REF_TEMPLATE_PARAMETER_PROP );