package cn.edu.ruc.kafka.resultset;
import java.sql.SQLException;
import java.util.List;
/**
* @author Hank Bian
* @version 0.0.1
* @see java.sql.ResultSetMetaData
*/
public class ResultSetMetaData implements java.sql.ResultSetMetaData
{
private List<String> columns = null;
private List<Integer> types = null;
private List<String> typeClassNames = null;
public ResultSetMetaData(List<String> columns, List<Integer> types)
{
this.columns = columns;
this.types = types;
}
public ResultSetMetaData(List<String> columns, List<Integer> types, List<String> typeClassNames)
{
this(columns, types);
this.typeClassNames = typeClassNames;
}
@Override
public int getColumnCount() throws SQLException
{
return this.columns.size();
}
@Override
public boolean isAutoIncrement(int column) throws SQLException
{
return false;
}
@Override
public boolean isCaseSensitive(int column) throws SQLException
{
return false;
}
@Override
public boolean isSearchable(int column) throws SQLException
{
return false;
}
@Override
public boolean isCurrency(int column) throws SQLException
{
return false;
}
@Override
public int isNullable(int column) throws SQLException
{
return 0;
}
@Override
public boolean isSigned(int column) throws SQLException
{
return false;
}
@Override
public int getColumnDisplaySize(int column) throws SQLException
{
return 0;
}
@Override
public String getColumnLabel(int column) throws SQLException
{
return this.columns.get(column-1);
}
@Override
public String getColumnName(int column) throws SQLException
{
return this.columns.get(column-1);
}
@Override
public String getSchemaName(int column) throws SQLException
{
return null;
}
@Override
public int getPrecision(int column) throws SQLException
{
return 0;
}
@Override
public int getScale(int column) throws SQLException
{
return 0;
}
@Override
public String getTableName(int column) throws SQLException
{
return null;
}
@Override
public String getCatalogName(int column) throws SQLException
{
return "kafka";
}
@Override
public int getColumnType(int column) throws SQLException
{
return types.get(column-1);
}
@Override
public String getColumnTypeName(int column) throws SQLException
{
if (this.typeClassNames != null)
{
this.typeClassNames.get(column-1);
}
return null;
}
@Override
public boolean isReadOnly(int column) throws SQLException
{
return true;
}
@Override
public boolean isWritable(int column) throws SQLException
{
return false;
}
@Override
public boolean isDefinitelyWritable(int column) throws SQLException
{
return false;
}
@Override
public String getColumnClassName(int column) throws SQLException
{
if (this.typeClassNames != null)
{
this.typeClassNames.get(column-1);
}
return null;
}
@Override
public <T> T unwrap(Class<T> iface) throws SQLException
{
return null;
}
@Override
public boolean isWrapperFor(Class<?> iface) throws SQLException
{
return false;
}
}