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.tests/test/org/eclipse/birt/report/model/parser/JointDataSetParseTest.java
* Tests joint data set can be correctly parsed.
	 * 
	 * @throws DesignFileException
	 *             design file can't be parsed correctly.
	 */
	public void testParser( ) throws DesignFileException
	{
		openDesign( inputFileName );
		JointDataSetHandle dataSet = designHandle
				.findJointDataSet( "JointDataSet" ); 
		assertNotNull( dataSet );
		assertEquals( 0, dataSet.getRowFetchLimit( ) );
		List dataSets = dataSet.getListProperty( JointDataSet.DATA_SETS_PROP );
		assertEquals( 2, dataSets.size( ) );
		DataSetHandle ds1 = designHandle.findDataSet( "DataSet1" );
		assertSame( ds1.getElement( ), ( (ElementRefValue) dataSets.get( 0 ) )
				.getElement( ) );
		assertEquals( 30, ds1.getRowFetchLimit( ) );
		DataSetHandle ds2 = designHandle.findDataSet( "DataSet2" );
		assertEquals( 0, ds2.getRowFetchLimit( ) );
		assertSame( ds2.getElement( ), ( (ElementRefValue) dataSets.get( 1 ) )
				.getElement( ) );
		Iterator joinConditionsIterator = dataSet.joinConditionsIterator( );
		assertTrue( joinConditionsIterator.hasNext( ) );
		JoinConditionHandle joinConditionHandle = (JoinConditionHandle) joinConditionsIterator
				.next( );
		assertFalse( joinConditionsIterator.hasNext( ) );
		assertEquals( DesignChoiceConstants.JOIN_TYPE_INNER,
				joinConditionHandle.getJoinType( ) );
		assertEquals( DesignChoiceConstants.JOIN_OPERATOR_EQALS,