if( dataSetType == null ) { if( m_defaultDSTypeMapping != null ) typeMappingForDS = m_defaultDSTypeMapping; else { DataSetType dataSet = findDefaultDataSetType(); typeMappingForDS = cacheTypeMappings( dataSet ); m_defaultDSTypeMapping = typeMappingForDS; } }
if( mapping == null ) return Types.CHAR;  String odaType = mapping.getOdaScalarDataType();  if( odaType.equals( "Date" ) ) return Types.DATE; else if( odaType.equals( "Decimal" ) ) return Types.DECIMAL; else if( odaType.equals( "Double" ) ) return Types.DOUBLE; else if( odaType.equals( "Integer" ) ) return Types.INTEGER; else if( odaType.equals( "String" ) ) return Types.CHAR; else if( odaType.equals( "Time" ) ) return Types.TIME; else if( odaType.equals( "Timestamp" ) ) return Types.TIMESTAMP;
	int getTypeMapping( String dataSetType, int nativeType ) throws DataException	{		Hashtable typeMappingForDS = null;				// handle null, which means the caller didn't specify the data set 		// type.  Empty string is ok, since an empty string can be used as 		// a data set type in odaconfig.xml.		if( dataSetType == null )		{			if( m_defaultDSTypeMapping != null )				typeMappingForDS = m_defaultDSTypeMapping;			else			{				DataSetType dataSet = findDefaultDataSetType();				typeMappingForDS = cacheTypeMappings( dataSet );				m_defaultDSTypeMapping = typeMappingForDS;			}		}		else		{			typeMappingForDS = 				(Hashtable) getDSTypeMappings().get( dataSetType );			if( typeMappingForDS == null )			{				DataSetType dataSet = findDataSet( dataSetType );				typeMappingForDS = cacheTypeMappings( dataSet );				getDSTypeMappings().put( dataSetType, typeMappingForDS );			}		}				assert( typeMappingForDS != null );				Integer theNativeType = new Integer( nativeType );		Integer i = (Integer) typeMappingForDS.get( theNativeType );		if( i == null )			throw new DataException( ResourceConstants.UNSUPPORTED_NATIVE_TYPE,				                     new Object[] { theNativeType, m_driverName, 													dataSetType } );				return i.intValue();	}