private void initializeDbToMetaDataType()
{
dbToMetaDataType = new HashMap<Integer, MetaDataModel>();
dbToMetaDataType.put(Types.BIT, new DefaultSimpleMetaDataModel(DataType.BOOLEAN));
dbToMetaDataType.put(Types.TINYINT, new DefaultSimpleMetaDataModel(DataType.BYTE));
dbToMetaDataType.put(Types.SMALLINT, new DefaultSimpleMetaDataModel(DataType.SHORT));
dbToMetaDataType.put(Types.INTEGER, new DefaultSimpleMetaDataModel(DataType.INTEGER));
dbToMetaDataType.put(Types.BIGINT, new DefaultSimpleMetaDataModel(DataType.LONG));
dbToMetaDataType.put(Types.FLOAT, new DefaultSimpleMetaDataModel(DataType.FLOAT));
dbToMetaDataType.put(Types.REAL, new DefaultSimpleMetaDataModel(DataType.FLOAT));
dbToMetaDataType.put(Types.DOUBLE, new DefaultSimpleMetaDataModel(DataType.DOUBLE));
dbToMetaDataType.put(Types.NUMERIC, new DefaultSimpleMetaDataModel(DataType.DECIMAL));
dbToMetaDataType.put(Types.DECIMAL, new DefaultSimpleMetaDataModel(DataType.DECIMAL));
dbToMetaDataType.put(Types.CHAR, new DefaultSimpleMetaDataModel(DataType.STRING));
dbToMetaDataType.put(Types.VARCHAR, new DefaultSimpleMetaDataModel(DataType.STRING));
dbToMetaDataType.put(Types.LONGNVARCHAR, new DefaultSimpleMetaDataModel(DataType.STRING));
DefaultSimpleMetaDataModel dateMetaDataModel = new DefaultSimpleMetaDataModel(DataType.DATE);
dateMetaDataModel.setImplementationClass(Date.class.getName());
dbToMetaDataType.put(Types.DATE, dateMetaDataModel);
DefaultSimpleMetaDataModel timeMetaDataModel = new DefaultSimpleMetaDataModel(DataType.DATE_TIME);
timeMetaDataModel.setImplementationClass(Time.class.getName());
dbToMetaDataType.put(Types.TIME, timeMetaDataModel);
DefaultSimpleMetaDataModel timestampMetaDataModel = new DefaultSimpleMetaDataModel(DataType.DATE_TIME);
timeMetaDataModel.setImplementationClass(Timestamp.class.getName());
dbToMetaDataType.put(Types.TIMESTAMP, timestampMetaDataModel);
MetaDataModel binaryMetaDataModel = new DefaultListMetaDataModel(new DefaultSimpleMetaDataModel(DataType.BYTE), true);
dbToMetaDataType.put(Types.BINARY, binaryMetaDataModel);
MetaDataModel varBinaryMetaDataModel = new DefaultListMetaDataModel(new DefaultSimpleMetaDataModel(DataType.BYTE), true);
dbToMetaDataType.put(Types.VARBINARY, varBinaryMetaDataModel);
MetaDataModel longVarBinaryMetaDataModel = new DefaultListMetaDataModel(new DefaultSimpleMetaDataModel(DataType.BYTE), true);
dbToMetaDataType.put(Types.LONGVARBINARY, longVarBinaryMetaDataModel);
dbToMetaDataType.put(Types.NULL, new DefaultUnknownMetaDataModel());
dbToMetaDataType.put(Types.OTHER, new DefaultUnknownMetaDataModel());
dbToMetaDataType.put(Types.JAVA_OBJECT, new DefaultPojoMetaDataModel(Object.class));
dbToMetaDataType.put(Types.DISTINCT, new DefaultUnknownMetaDataModel());
dbToMetaDataType.put(Types.STRUCT, new DefaultPojoMetaDataModel(Struct.class));
dbToMetaDataType.put(Types.ARRAY, new DefaultListMetaDataModel(new DefaultUnknownMetaDataModel(), true));
dbToMetaDataType.put(Types.BLOB, new DefaultPojoMetaDataModel(Blob.class));
dbToMetaDataType.put(Types.CLOB, new DefaultPojoMetaDataModel(Clob.class));
dbToMetaDataType.put(Types.REF, new DefaultPojoMetaDataModel(Ref.class));
dbToMetaDataType.put(Types.DATALINK, new DefaultPojoMetaDataModel(URL.class));
dbToMetaDataType.put(Types.BOOLEAN, new DefaultSimpleMetaDataModel(DataType.BOOLEAN));
dbToMetaDataType.put(Types.ROWID, new DefaultPojoMetaDataModel(RowId.class));
dbToMetaDataType.put(Types.NCHAR, new DefaultSimpleMetaDataModel(DataType.STRING));
dbToMetaDataType.put(Types.NVARCHAR, new DefaultSimpleMetaDataModel(DataType.STRING));
dbToMetaDataType.put(Types.LONGNVARCHAR, new DefaultSimpleMetaDataModel(DataType.STRING));
dbToMetaDataType.put(Types.NCLOB, new DefaultSimpleMetaDataModel(DataType.STRING));
dbToMetaDataType.put(Types.SQLXML, new DefaultPojoMetaDataModel(SQLXML.class));
}