else if ( this.parameterBindings == null || parameterBindings2 == null ) return false;
	public boolean equals( Object obj )	{		if ( obj == null || obj instanceof DataSourceAndDataSet == false )			return false;		if ( this == obj )			return true;		IBaseDataSourceDesign dataSourceDesign2 = ( (DataSourceAndDataSet) obj ).dataSourceDesign;		IBaseDataSetDesign dataSetDesign2 = ( (DataSourceAndDataSet) obj ).dataSetDesign;		Collection parameterBindings2 = ( (DataSourceAndDataSet) obj ).parameterBindings;		int cacheCount2 = ( (DataSourceAndDataSet) obj ).cacheCount;				if ( this.dataSourceDesign == dataSourceDesign2 )		{			if ( this.dataSetDesign == dataSetDesign2 )			{				if ( this.parameterBindings == parameterBindings2 )					return true;				else if ( this.parameterBindings == null						|| parameterBindings2 == null )					return false;			}			else if ( this.dataSetDesign == null || dataSetDesign2 == null )				return false;		}		else if ( this.dataSourceDesign == null || dataSourceDesign2 == null )		{			return false;		}		else		{			if ( ( this.dataSetDesign != dataSetDesign2 )					&& ( this.dataSetDesign == null || dataSetDesign2 == null ) )				return false;		}				// data source compare		if ( isEqualString( dataSourceDesign.getBeforeOpenScript( ),				dataSourceDesign2.getBeforeOpenScript( ) ) == false				|| isEqualString( dataSourceDesign.getAfterOpenScript( ),						dataSourceDesign2.getAfterOpenScript( ) ) == false				|| isEqualString( dataSourceDesign.getBeforeCloseScript( ),						dataSourceDesign2.getBeforeCloseScript( ) ) == false				|| isEqualString( dataSourceDesign.getAfterCloseScript( ),						dataSourceDesign2.getAfterCloseScript( ) ) == false )			return false;		if ( dataSourceDesign instanceof IOdaDataSourceDesign				&& dataSourceDesign2 instanceof IOdaDataSourceDesign )		{			IOdaDataSourceDesign dataSource = (IOdaDataSourceDesign) dataSourceDesign;			IOdaDataSourceDesign dataSource2 = (IOdaDataSourceDesign) dataSourceDesign2;			if ( isEqualString( dataSource.getExtensionID( ),					dataSource2.getExtensionID( ) ) == false )				return false;			if ( isEqualProps( dataSource.getPublicProperties( ),					dataSource2.getPublicProperties( ) ) == false					|| isEqualProps( dataSource.getPrivateProperties( ),							dataSource2.getPrivateProperties( ) ) == false )				return false;		}		else if ( dataSourceDesign instanceof IScriptDataSourceDesign				&& dataSourceDesign2 instanceof IScriptDataSourceDesign )		{			IScriptDataSourceDesign dataSource = (IScriptDataSourceDesign) dataSourceDesign;			IScriptDataSourceDesign dataSource2 = (IScriptDataSourceDesign) dataSourceDesign2;			if ( isEqualString( dataSource.getOpenScript( ),					dataSource2.getOpenScript( ) ) == false					|| isEqualString( dataSource.getCloseScript( ),							dataSource2.getCloseScript( ) ) == false )				return false;		}		// data set compare		if ( isEqualString( dataSetDesign.getBeforeOpenScript( ),				dataSetDesign2.getBeforeOpenScript( ) ) == false				|| isEqualString( dataSetDesign.getAfterOpenScript( ),						dataSetDesign2.getAfterOpenScript( ) ) == false				|| isEqualString( dataSetDesign.getBeforeCloseScript( ),						dataSetDesign2.getBeforeCloseScript( ) ) == false				|| isEqualString( dataSetDesign.getAfterCloseScript( ),						dataSetDesign2.getAfterCloseScript( ) ) == false )			return false;		if ( isEqualComputedColumns( dataSetDesign.getComputedColumns( ),				dataSetDesign2.getComputedColumns( ) ) == false				|| isEqualFilters( dataSetDesign.getFilters( ),						dataSetDesign2.getFilters( ) ) == false				|| isEqualParameterBindings( dataSetDesign.getInputParamBindings( ),						dataSetDesign2.getInputParamBindings( ) ) == false				|| isEqualParameters( dataSetDesign.getParameters( ),						dataSetDesign2.getParameters( ) ) == false				|| isEqualResultHints( dataSetDesign.getResultSetHints( ),						dataSetDesign2.getResultSetHints( ) ) == false )			return false;		if ( dataSetDesign instanceof IOdaDataSetDesign				&& dataSetDesign2 instanceof IOdaDataSetDesign )		{			IOdaDataSetDesign dataSet = (IOdaDataSetDesign) dataSetDesign;			IOdaDataSetDesign dataSet2 = (IOdaDataSetDesign) dataSetDesign2;			if ( isEqualString( dataSet.getQueryText( ),					dataSet2.getQueryText( ) ) == false					|| isEqualString( dataSet.getQueryScript( ),							dataSet2.getQueryScript( ) ) == false					|| isEqualString( dataSet.getExtensionID( ),							dataSet2.getExtensionID( ) ) == false					|| isEqualString( dataSet.getPrimaryResultSetName( ),							dataSet2.getPrimaryResultSetName( ) ) == false					|| isEqualProps( dataSet.getPublicProperties( ),							dataSet2.getPublicProperties( ) ) == false					|| isEqualProps( dataSet.getPrivateProperties( ),							dataSet2.getPrivateProperties( ) ) == false )				return false;		}		else if ( dataSetDesign instanceof IScriptDataSetDesign				&& dataSetDesign2 instanceof IScriptDataSetDesign )		{			IScriptDataSetDesign dataSet = (IScriptDataSetDesign) dataSetDesign;			IScriptDataSetDesign dataSet2 = (IScriptDataSetDesign) dataSetDesign2;			if ( isEqualString( dataSet.getOpenScript( ),					dataSet2.getOpenScript( ) ) == false					|| isEqualString( dataSet.getFetchScript( ),							dataSet2.getFetchScript( ) ) == false					|| isEqualString( dataSet.getCloseScript( ),							dataSet2.getCloseScript( ) ) == false					|| isEqualString( dataSet.getDescribeScript( ),							dataSet2.getDescribeScript( ) ) == false )				return false;		}		else		{			return false;		}						// parameter bindings compare		if ( this.isEqualParameterBindings( this.parameterBindings,				parameterBindings2 ) == false )			return false;				if ( this.cacheCount != cacheCount2 )			return false;				return true;	}