From 1fcaaaef050d01ccfa8af6476fffb7dc7aa5e301 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Thu, 6 Jun 2019 21:06:14 +0200
Subject: [PATCH] gene name column is allowed only in genetic variant data
 overlay

---
 CHANGELOG                                                    | 2 ++
 .../lcsb/mapviewer/services/utils/ColorSchemaReader.java     | 5 ++++-
 .../mapviewer/services/utils/data/ColorSchemaColumn.java     | 2 +-
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 3c08eb6f18..34e4b4e661 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -11,6 +11,8 @@ minerva (12.3.1~beta.1) unstable; urgency=low
   * Bug fix: redirect url from export panel is fixed (#819)
   * Bug fix: allow to reupload the same file without closing add overlay dialog
     (#833)
+  * Bug fix: gene_name column is allowed only in the genetic variant data 
+    overlay
   * Bug fix: protein types are sorted properly in "Select valid annotations"
     dialog (#815)
   * Bug fix: if there is a description of (sub)map then it is available in
diff --git a/service/src/main/java/lcsb/mapviewer/services/utils/ColorSchemaReader.java b/service/src/main/java/lcsb/mapviewer/services/utils/ColorSchemaReader.java
index 93f0517170..3b2eb71dc6 100644
--- a/service/src/main/java/lcsb/mapviewer/services/utils/ColorSchemaReader.java
+++ b/service/src/main/java/lcsb/mapviewer/services/utils/ColorSchemaReader.java
@@ -162,6 +162,9 @@ public class ColorSchemaReader {
       Integer nameColumn = schemaColumns.get(ColorSchemaColumn.NAME);
       if (nameColumn == null) {
         nameColumn = schemaColumns.get(ColorSchemaColumn.GENE_NAME);
+      } else if (schemaColumns.get(ColorSchemaColumn.GENE_NAME) != null) {
+        throw new InvalidColorSchemaException(ColorSchemaColumn.GENE_NAME + " and " + ColorSchemaColumn.NAME
+            + " column cannot appear in the same dataset");
       }
       Integer modelNameColumn = schemaColumns.get(ColorSchemaColumn.MODEL_NAME);
       Integer identifierColumn = schemaColumns.get(ColorSchemaColumn.IDENTIFIER);
@@ -292,7 +295,7 @@ public class ColorSchemaReader {
           gv.setContig(values[contigColumn]);
 
           schema.addGeneVariation(gv);
-          if (schema.getName()!=null && schema.getName().contains(";")) {
+          if (schema.getName() != null && schema.getName().contains(";")) {
             String[] names = schema.getName().split(";");
             for (String string : names) {
               if (!string.trim().isEmpty()) {
diff --git a/service/src/main/java/lcsb/mapviewer/services/utils/data/ColorSchemaColumn.java b/service/src/main/java/lcsb/mapviewer/services/utils/data/ColorSchemaColumn.java
index 8fd9276dfe..5cbcc2e705 100644
--- a/service/src/main/java/lcsb/mapviewer/services/utils/data/ColorSchemaColumn.java
+++ b/service/src/main/java/lcsb/mapviewer/services/utils/data/ColorSchemaColumn.java
@@ -21,7 +21,7 @@ public enum ColorSchemaColumn {
    */
   NAME(new ColorSchemaType[] { ColorSchemaType.GENERIC, ColorSchemaType.GENETIC_VARIANT }),
 
-  GENE_NAME(new ColorSchemaType[] { ColorSchemaType.GENERIC, ColorSchemaType.GENETIC_VARIANT }),
+  GENE_NAME(new ColorSchemaType[] { ColorSchemaType.GENETIC_VARIANT }),
 
   /**
    * Name of the element.
-- 
GitLab