Exemplo n.º 1
0
  /**
   * @param meta
   * @throws BirtException
   */
  private void addResultSetColumn(DataSetHandle dataSetHandle, IResultMetaData meta)
      throws BirtException {
    if (meta == null || !(dataSetHandle instanceof OdaDataSetHandle)) return;

    Set computedColumnNameSet = new HashSet();
    Iterator computedIter = dataSetHandle.computedColumnsIterator();
    while (computedIter.hasNext()) {
      ComputedColumnHandle handle = (ComputedColumnHandle) computedIter.next();
      computedColumnNameSet.add(handle.getName());
    }

    HashSet orgColumnNameSet = new HashSet();
    HashSet uniqueColumnNameSet = new HashSet();

    PropertyHandle handle = dataSetHandle.getPropertyHandle(DataSetHandle.RESULT_SET_PROP);
    for (int i = 1; i <= meta.getColumnCount(); i++) {
      OdaResultSetColumn rsColumn = new OdaResultSetColumn();

      String uniqueName;

      if (!computedColumnNameSet.contains(meta.getColumnName(i))) {
        uniqueName =
            MetaDataPopulator.getUniqueName(
                orgColumnNameSet, uniqueColumnNameSet, meta.getColumnName(i), i - 1);
        rsColumn.setColumnName(uniqueName);
        if (meta.getColumnType(i) != DataType.ANY_TYPE)
          rsColumn.setDataType(DataAdapterUtil.adapterToModelDataType(meta.getColumnType(i)));
        rsColumn.setNativeName(meta.getColumnName(i));
        rsColumn.setPosition(Integer.valueOf(i));

        handle.addItem(rsColumn);
        uniqueColumnNameSet.add(uniqueName);
      }
    }
  }