Changeset 2611


Ignore:
Timestamp:
Aug 30, 2006, 4:34:09 PM (16 years ago)
Author:
Johan Enell
Message:

Fixex #264

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/plugins/core/net/sf/basedb/plugins/Base1PluginExecuter.java

    r2606 r2611  
    10541054    else
    10551055    {
     1056      ItemQuery<BioAssay> assayQuery = bas.getBioAssays();
     1057      assayQuery.order(Orders.asc(Hql.property("dataCubeColumn.columnNo")));
     1058     
     1059      ArrayList<Short> columnNo = new ArrayList<Short>((int) assayQuery.count(dc));
     1060     
    10561061      out.println(spotHeader);
    10571062      out.print("assays");
    1058       for (BioAssay ba : bas.getBioAssays().list(dc))
     1063      for (BioAssay ba : assayQuery.list(dc))
    10591064      {
    10601065        out.print("\t" + ba.getId());
     1066        columnNo.add(ba.getDataCubeColumnNo());
    10611067      }
    10621068      out.println("\ncount\t" + bas.getNumSpots());
    1063       out.println("%");
     1069      out.print("%");
     1070
     1071      List<Integer> columnIndex = new ArrayList<Integer>(columns.size());
     1072      List<Integer> fieldIndex = new ArrayList<Integer>(fields.size());
     1073      DynamicSpotQuery q = createSpotQuery(bas.getSpotData(), columns, fields);
     1074      q.select(Selects.expression(Dynamic.column(VirtualColumn.COLUMN), "column"));
     1075      q.order(Orders.asc(Dynamic.column(VirtualColumn.POSITION)));
     1076      q.order(Orders.asc(Dynamic.column(VirtualColumn.COLUMN)));
     1077      DynamicResultIterator result = q.iterate(dc);
     1078     
     1079
     1080      for (String column : columns)
     1081      {
     1082        columnIndex.add(result.getIndex(column));
     1083      }
     1084      for (String field : fields)
     1085      {
     1086        fieldIndex.add(result.getIndex(field));
     1087      }
     1088      int columnNoIndex = result.getIndex("column");
     1089      int positionIndex = result.getIndex("position");
     1090     
     1091     
     1092      int i = Integer.MAX_VALUE;
     1093      int prevPos = Integer.MAX_VALUE;
     1094      while (result.hasNext())
     1095      {
     1096        SqlResult r = result.next();
     1097       
     1098        if (prevPos != r.getInt(positionIndex) || i > columnNo.size())
     1099        {
     1100          if (i < columnNo.size())
     1101          {
     1102            out.print(getString(getString("\t", fieldIndex.size()), columnNo.size() - i));
     1103          }
     1104          i = 0;
     1105          out.println();
     1106        }
     1107       
     1108        if (i == 0)
     1109        {
     1110          boolean del = false;
     1111          for (Integer column : columnIndex)
     1112          {
     1113            if (del)
     1114            {
     1115              out.print("\t");
     1116            }
     1117            out.print(r.getString(column) != null ? r.getString(column) : "");
     1118            del = true;
     1119          }
     1120        }
     1121       
     1122        while (i < columnNo.size() && columnNo.get(i) != r.getShort(columnNoIndex))
     1123        {
     1124          out.print(getString("\t", fieldIndex.size()));
     1125          i++;
     1126        }
     1127
     1128        for (Integer field : fieldIndex)
     1129        {
     1130          out.print("\t");
     1131          out.print(r.getString(field) != null ? r.getString(field) : "");
     1132        }
     1133        i++;
     1134       
     1135        prevPos = r.getInt(positionIndex);
     1136      }
    10641137    }
    10651138    out.close();
    1066     dc.commit();
     1139    dc.close();
    10671140  }
    10681141
     
    10851158      base1columns.put("nid", Selects.expression(Dynamic.reporter("nid"), "nid"));
    10861159      base1columns.put("omim", Selects.expression(Dynamic.reporter("omim"), "omim"));
    1087       base1columns.put("position", Selects.expression(Dynamic.column(VirtualColumn.POSITION), "position"));
    10881160      base1columns.put("reporter", Selects.expression(Dynamic.reporter("id"), "reporter"));
    10891161      base1columns.put("reporterId", Selects.expression(Dynamic.reporter("externalId"), "reporterId"));
     
    10941166
    10951167      // Spot fields
     1168      base1columns.put("position", Selects.expression(Dynamic.column(VirtualColumn.POSITION), "position"));
    10961169      base1columns.put("intensity1", Selects.expression(Dynamic.column(VirtualColumn.channel(1)), "intensity1"));
    10971170      base1columns.put("intensity2", Selects.expression(Dynamic.column(VirtualColumn.channel(2)), "intensity2"));
     
    12811354    }
    12821355  }
     1356 
     1357  private String getString(String s, int n)
     1358  {
     1359    StringBuffer sb = new StringBuffer(s.length() * n);
     1360    for (int i = 0; i < n; i++)
     1361    {
     1362      sb.append(s);
     1363    }
     1364    return sb.toString();
     1365  }
    12831366   
    12841367 
Note: See TracChangeset for help on using the changeset viewer.