@Override
public List<ResultsetColumnHeaderData> fillResultsetColumnHeaders(final String datatable) {
logger.debug("::3 Was inside the fill ResultSetColumnHeader");
final SqlRowSet columnDefinitions = getDatatableMetaData(datatable);
final List<ResultsetColumnHeaderData> columnHeaders = new ArrayList<>();
columnDefinitions.beforeFirst();
while (columnDefinitions.next()) {
final String columnName = columnDefinitions.getString("COLUMN_NAME");
final String isNullable = columnDefinitions.getString("IS_NULLABLE");
final String isPrimaryKey = columnDefinitions.getString("COLUMN_KEY");
final String columnType = columnDefinitions.getString("DATA_TYPE");
final Long columnLength = columnDefinitions.getLong("CHARACTER_MAXIMUM_LENGTH");
final boolean columnNullable = "YES".equalsIgnoreCase(isNullable);
final boolean columnIsPrimaryKey = "PRI".equalsIgnoreCase(isPrimaryKey);
List<ResultsetColumnValueData> columnValues = new ArrayList<>();
String codeName = null;
if ("varchar".equalsIgnoreCase(columnType)) {
final int codePosition = columnName.indexOf("_cv");
if (codePosition > 0) {
codeName = columnName.substring(0, codePosition);
columnValues = retreiveColumnValues(codeName);
}
} else if ("int".equalsIgnoreCase(columnType)) {
final int codePosition = columnName.indexOf("_cd");
if (codePosition > 0) {
codeName = columnName.substring(0, codePosition);
columnValues = retreiveColumnValues(codeName);
}
}
if (codeName == null) {
final SqlRowSet rsValues = getDatatableCodeData(datatable, columnName);
Integer codeId = null;
while (rsValues.next()) {
codeId = rsValues.getInt("id");
codeName = rsValues.getString("code_name");
}
columnValues = retreiveColumnValues(codeId);
}