package com.taobao.tddl.common.mock;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
public class MockResultSetMetaData implements ResultSetMetaData {
private String tableName;
public final Map<String/* 列名 */, Integer/* 列序号 */> columnName2Index;
public final Map<Integer/* 列序号 */, String/* 列名 */> columnIndex2Name;
public MockResultSetMetaData(Map<String, Integer> columns){
this.columnName2Index = columns;
this.columnIndex2Name = new HashMap<Integer, String>(columns.size());
for (Map.Entry<String, Integer> e : columns.entrySet()) {
columnIndex2Name.put(e.getValue(), e.getKey());
}
}
public String getCatalogName(int column) throws SQLException {
return null;
}
public String getColumnClassName(int column) throws SQLException {
return null;
}
public int getColumnCount() throws SQLException {
return columnName2Index.size();
}
public int getColumnDisplaySize(int column) throws SQLException {
return 0;
}
public String getColumnLabel(int column) throws SQLException {
return null;
}
public String getColumnName(int column) throws SQLException {
return columnIndex2Name.get(column - 1);// column从1开始
}
public int getColumnType(int column) throws SQLException {
return 0;
}
public String getColumnTypeName(int column) throws SQLException {
return null;
}
public int getPrecision(int column) throws SQLException {
return 0;
}
public int getScale(int column) throws SQLException {
return 0;
}
public String getSchemaName(int column) throws SQLException {
return null;
}
public String getTableName(int column) throws SQLException {
return this.tableName;
}
public boolean isAutoIncrement(int column) throws SQLException {
return false;
}
public boolean isCaseSensitive(int column) throws SQLException {
return false;
}
public boolean isCurrency(int column) throws SQLException {
return false;
}
public boolean isDefinitelyWritable(int column) throws SQLException {
return false;
}
public int isNullable(int column) throws SQLException {
return ResultSetMetaData.columnNoNulls;
}
public boolean isReadOnly(int column) throws SQLException {
return false;
}
public boolean isSearchable(int column) throws SQLException {
return false;
}
public boolean isSigned(int column) throws SQLException {
return false;
}
public boolean isWritable(int column) throws SQLException {
return false;
}
public <T> T unwrap(Class<T> iface) throws SQLException {
return null;
}
public boolean isWrapperFor(Class<?> iface) throws SQLException {
return false;
}
}