From 44eb1748fdfa7b4bc93bc130e50805019341f078 Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Thu, 17 Jun 2021 14:30:11 +0200
Subject: [PATCH] CheckParOblPropPresent handle illegal flag value

---
 .../jobs/core/CheckParOblPropPresent.java     | 26 +++++++------------
 1 file changed, 10 insertions(+), 16 deletions(-)

diff --git a/src/main/java/org/caosdb/server/jobs/core/CheckParOblPropPresent.java b/src/main/java/org/caosdb/server/jobs/core/CheckParOblPropPresent.java
index 6899373a..ffcbcc06 100644
--- a/src/main/java/org/caosdb/server/jobs/core/CheckParOblPropPresent.java
+++ b/src/main/java/org/caosdb/server/jobs/core/CheckParOblPropPresent.java
@@ -24,6 +24,7 @@ package org.caosdb.server.jobs.core;
 
 import org.caosdb.server.entity.EntityInterface;
 import org.caosdb.server.entity.Message;
+import org.caosdb.server.entity.Message.MessageType;
 import org.caosdb.server.entity.StatementStatus;
 import org.caosdb.server.entity.wrapper.Parent;
 import org.caosdb.server.entity.wrapper.Property;
@@ -38,10 +39,12 @@ import org.caosdb.server.utils.ServerMessages;
  */
 public class CheckParOblPropPresent extends EntityJob {
 
-  public static final Message ENTITY_NOT_UNIQUE =
-      new Message("Error", 0, "Could not check importance. Parent was not uniquely resolvable.");
-
   public static final String OBL_IMPORTANCE_FLAG_KEY = "force-missing-obligatory";
+  public static final Message ENTITY_NOT_UNIQUE =
+      new Message(
+          MessageType.Error, 0, "Could not check importance. Parent was not uniquely resolvable.");
+  public static final Message ILLEGAL_FLAG_VALUE =
+      new Message(MessageType.Warning, "Illegal value for flag 'force-missing-obligatory'.");
 
   @Override
   public final void run() {
@@ -131,19 +134,10 @@ public class CheckParOblPropPresent extends EntityJob {
     final String entityFlag =
         getEntity().getFlags().getOrDefault(OBL_IMPORTANCE_FLAG_KEY, globalFlag);
     if (entityFlag != null) {
-      switch (entityFlag) {
-        case "error":
-          setFailureSeverity(JobFailureSeverity.ERROR);
-          break;
-        case "warn":
-          setFailureSeverity(JobFailureSeverity.WARN);
-          break;
-        case "ignore":
-          setFailureSeverity(JobFailureSeverity.IGNORE);
-          break;
-        default:
-          // do nothing
-          break;
+      try {
+        setFailureSeverity(JobFailureSeverity.valueOf(entityFlag.toUpperCase()));
+      } catch (final IllegalArgumentException e) {
+        getEntity().addWarning(ILLEGAL_FLAG_VALUE);
       }
     }
   }
-- 
GitLab