if ( dataSources == null ) throw new IllegalStateException("DataEngine has been shutdown");
	public void defineDataSet( IBaseDataSetDesign dataSet ) throws DataException	{		if ( dataSet == null )			throw new NullPointerException("dataSet param cannot be null ");		String name = dataSet.getName();		if ( name == null || name.length() == 0 )			throw new IllegalArgumentException("Data Set has no name");				// Sanity check: a data set must have a data source with the proper type, and		// the data source must have be defined		String dataSourceName = dataSet.getDataSourceName();		DataSourceRuntime dsource = this.getDataSourceRuntime( dataSourceName );		if ( dsource == null )			throw new DataException( ResourceConstants.UNDEFINED_DATA_SOURCE, dataSourceName );				Class dSourceClass;		if ( dataSet instanceof IOdaDataSetDesign )			dSourceClass = IOdaDataSourceDesign.class;		else if ( dataSet instanceof IScriptDataSetDesign )			dSourceClass = IScriptDataSourceDesign.class;		else			throw new DataException( ResourceConstants.UNSUPPORTED_DATASET_TYPE );				if ( ! dSourceClass.isInstance(dsource.getDesign()) )			throw new DataException( ResourceConstants.UNSUPPORTED_DATASOURCE_TYPE );					dataSetDesigns.put( name, dataSet );	}