if ( reportParam == null || dataSetParam == null || dataSetDesign == null )
if ( reportParam == null || dataSetParam == null )
	public void updateLinkedReportParameter( ScalarParameterHandle reportParam,			OdaDataSetParameterHandle dataSetParam, DataSetDesign dataSetDesign )			throws SemanticException	{		if ( reportParam == null || dataSetParam == null				|| dataSetDesign == null )			return;		ParameterDefinition matchedParam = getValidParameterDefinition(				dataSetParam, dataSetDesign.getParameters( ) );		if ( matchedParam == null )			return;		ParameterDefinition cachedParam = null;		OdaDataSetHandle setHandle = (OdaDataSetHandle) dataSetParam				.getElementHandle( );		if ( setHandle != null )		{			DesignValues values = null;			try			{				values = SerializerImpl.instance( ).read(						setHandle.getDesignerValues( ) );			}			catch ( IOException e )			{			}			if ( values != null )				cachedParam = DataSetParameterAdapter.findParameterDefinition(						values.getDataSetParameters( ), matchedParam								.getAttributes( ).getName( ), new Integer(								matchedParam.getAttributes( ).getPosition( ) ) );		}		String dataType = DataSetParameterAdapter.getROMDataType( dataSetDesign				.getOdaExtensionDataSourceId( ), dataSetDesign				.getOdaExtensionDataSetId( ),				(OdaDataSetParameter) dataSetParam.getStructure( ),				setHandle == null ? null : setHandle.parametersIterator( ) );		CommandStack cmdStack = reportParam.getModuleHandle( )				.getCommandStack( );		cmdStack.startTrans( null );		try		{			updateLinkedReportParameterFromROMParameter( reportParam,					dataSetParam );			updateLinkedReportParameter( reportParam, matchedParam,					cachedParam, dataType );		}		catch ( SemanticException e )		{			cmdStack.rollback( );			throw e;		}		cmdStack.commit( );	}