/** * @param design * @param odaStatement * @return * @throws DataException */ private IResultClass getMetaData(IOdaDataSetDesign design, PreparedStatement odaStatement) throws DataException { IResultClass result = null; if (design != null) { if (canAccessResultSetByName(design)) { try { result = odaStatement.getMetaData(design.getPrimaryResultSetName()); } catch (DataException e) { throw new DataException( ResourceConstants.ERROR_HAPPEN_WHEN_RETRIEVE_RESULTSET, design.getPrimaryResultSetName()); } } else if (canAccessResultSetByNumber(design)) { try { result = odaStatement.getMetaData(design.getPrimaryResultSetNumber()); } catch (DataException e) { throw new DataException( ResourceConstants.ERROR_HAPPEN_WHEN_RETRIEVE_RESULTSET, design.getPrimaryResultSetNumber()); } } } if (result == null) result = odaStatement.getMetaData(); if (design != null) { List hintList = design.getResultSetHints(); for (int i = 0; i < hintList.size(); i++) { IColumnDefinition columnDefinition = (IColumnDefinition) hintList.get(i); for (int j = 1; j <= result.getFieldCount(); j++) { ResultFieldMetadata resultFieldMetadata = result.getFieldMetaData(j); if (columnDefinition.getColumnName().equals(resultFieldMetadata.getName())) { resultFieldMetadata.setAlias(columnDefinition.getAlias()); resultFieldMetadata.setAnalysisType(columnDefinition.getAnalysisType()); resultFieldMetadata.setAnalysisColumn(columnDefinition.getAnalysisColumn()); resultFieldMetadata.setIndexColumn(columnDefinition.isIndexColumn()); resultFieldMetadata.setCompressedColumn(columnDefinition.isCompressedColumn()); break; } } } } return result; }