/** * Remove old temp computed column metadatas from cache file and add new metadatas. * * @throws DataException */ private void processResultClass() throws DataException { List metadataList = new ArrayList(); this.realColumnCount = 0; ResultFieldMetadata metadata = null; int i = 0; for (i = 0; i < rsMeta.getFieldCount(); i++) { if (!isTempComputedColumn(rsMeta.getFieldName(i + 1))) { metadata = new ResultFieldMetadata( 0, rsMeta.getFieldName(i + 1), rsMeta.getFieldLabel(i + 1), rsMeta.getFieldValueClass(i + 1), rsMeta.getFieldNativeTypeName(i + 1), rsMeta.isCustomField(i + 1), rsMeta.getAnalysisType(i + 1), rsMeta.getAnalysisColumn(i + 1), rsMeta.isIndexColumn(i + 1), rsMeta.isCompressedColumn(i + 1)); metadata.setAlias(rsMeta.getFieldAlias(i + 1)); metadataList.add(metadata); realColumnCount++; } } ComputedColumn tempComputedColumn = null; for (i = 0; i < addedTempComputedColumn.size(); i++) { tempComputedColumn = (ComputedColumn) (addedTempComputedColumn.get(i)); metadata = new ResultFieldMetadata( 0, tempComputedColumn.getName(), null, DataType.getClass(tempComputedColumn.getDataType()), null, true, -1); metadataList.add(metadata); } rsMeta = new ResultClass(metadataList); }