From e0a8d893311baf0ed2d151ef1424e63145580e6a Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Wed, 21 Apr 2010 06:41:45 +0000
Subject: [PATCH] SE-236 bug fixed

SVN: 15542
---
 .../dss/genedata/FeatureStorageProcessor.java | 25 +++++++++++++------
 1 file changed, 18 insertions(+), 7 deletions(-)

diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/genedata/FeatureStorageProcessor.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/genedata/FeatureStorageProcessor.java
index 2b3442fbaed..aab66ff7655 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/dss/genedata/FeatureStorageProcessor.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/genedata/FeatureStorageProcessor.java
@@ -48,14 +48,10 @@ public class FeatureStorageProcessor extends DefaultStorageProcessor
         
         public void startNewColumn(String columnName)
         {
-            if (tableBuilder != null)
-            {
-                columns.addAll(tableBuilder.getColumns());
-            }
+            addColumn();
             tableBuilder = new TableBuilder(columnName);
-            
         }
-        
+
         public void checkColumnsLine(int lineIndex, String line)
         {
             int columnCount = new StringTokenizer(line).countTokens();
@@ -94,6 +90,11 @@ public class FeatureStorageProcessor extends DefaultStorageProcessor
             }
         }
         
+        public void finish()
+        {
+            addColumn();
+        }
+        
         public int getNumberOfWells()
         {
             return numberOfColumns * rowLetters.size();
@@ -101,7 +102,7 @@ public class FeatureStorageProcessor extends DefaultStorageProcessor
         
         public String getRowLetter(int index)
         {
-            return rowLetters.get(index % rowLetters.size());
+            return rowLetters.get((index / numberOfColumns) % rowLetters.size());
         }
         
         public int getColumnNumber(int index)
@@ -113,6 +114,15 @@ public class FeatureStorageProcessor extends DefaultStorageProcessor
         {
             return columns;
         }
+        
+        private void addColumn()
+        {
+            if (tableBuilder != null)
+            {
+                columns.addAll(tableBuilder.getColumns());
+            }
+        }
+        
     }
     
     public FeatureStorageProcessor(Properties properties)
@@ -149,6 +159,7 @@ public class FeatureStorageProcessor extends DefaultStorageProcessor
                 columnsBuilder.addRow(i, line);
             }
         }
+        columnsBuilder.finish();
         List<Column> columns = columnsBuilder.getColumns();
         StringBuilder builder = new StringBuilder();
         builder.append("barcode").append(DELIMITER).append("row").append(DELIMITER).append("col");
-- 
GitLab