From 295a87208f8c9898fbdc733a438587dc03a16877 Mon Sep 17 00:00:00 2001
From: Matteo Mara <matteo.mara@sonarsource.com>
Date: Mon, 9 Jan 2023 10:21:46 +0100
Subject: [NO-JIRA] Remove reported code smells about usage of instanceof

---
 .../src/main/java/org/sonar/server/es/BaseDoc.java | 25 ++++++++++------------
 .../org/sonar/server/es/IndexDefinitionHash.java   | 12 +++++------
 .../server/es/metadata/MetadataIndexImpl.java      |  6 ++----
 .../notification/FpOrWontFixEmailTemplate.java     |  4 ++--
 .../IssuesChangesNotificationSerializer.java       |  3 +--
 5 files changed, 22 insertions(+), 28 deletions(-)

(limited to 'server/sonar-server-common/src')

diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/es/BaseDoc.java b/server/sonar-server-common/src/main/java/org/sonar/server/es/BaseDoc.java
index 847b9df15db..5130fd15655 100644
--- a/server/sonar-server-common/src/main/java/org/sonar/server/es/BaseDoc.java
+++ b/server/sonar-server-common/src/main/java/org/sonar/server/es/BaseDoc.java
@@ -51,12 +51,9 @@ public abstract class BaseDoc {
   protected BaseDoc(IndexType indexType, Map<String, Object> fields) {
     this.indexType = indexType;
     this.fields = fields;
-    if (indexType instanceof IndexMainType) {
-      IndexMainType mainType = (IndexMainType) indexType;
-      if (mainType.getIndex().acceptsRelations()) {
-        setField(mainType.getIndex().getJoinField(), ImmutableMap.of("name", mainType.getType()));
-        setField(FIELD_INDEX_TYPE, mainType.getType());
-      }
+    if (indexType instanceof IndexMainType mainType && mainType.getIndex().acceptsRelations()) {
+      setField(mainType.getIndex().getJoinField(), ImmutableMap.of("name", mainType.getType()));
+      setField(FIELD_INDEX_TYPE, mainType.getType());
     }
   }
 
@@ -106,11 +103,11 @@ public abstract class BaseDoc {
   public Date getNullableFieldAsDate(String key) {
     Object val = getNullableField(key);
     if (val != null) {
-      if (val instanceof Date) {
-        return (Date) val;
+      if (val instanceof Date date) {
+        return date;
       }
-      if (val instanceof Number) {
-        return epochSecondsToDate((Number) val);
+      if (val instanceof Number number) {
+        return epochSecondsToDate(number);
       }
       return EsUtils.parseDateTime((String) val);
     }
@@ -136,11 +133,11 @@ public abstract class BaseDoc {
 
   public Date getFieldAsDate(String key) {
     Object value = getField(key);
-    if (value instanceof Date) {
-      return (Date) value;
+    if (value instanceof Date date) {
+      return date;
     }
-    if (value instanceof Number) {
-      return epochSecondsToDate((Number) value);
+    if (value instanceof Number number) {
+      return epochSecondsToDate(number);
     }
     return EsUtils.parseDateTime((String) value);
   }
diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/es/IndexDefinitionHash.java b/server/sonar-server-common/src/main/java/org/sonar/server/es/IndexDefinitionHash.java
index fa073389e66..b2d4f83f761 100644
--- a/server/sonar-server-common/src/main/java/org/sonar/server/es/IndexDefinitionHash.java
+++ b/server/sonar-server-common/src/main/java/org/sonar/server/es/IndexDefinitionHash.java
@@ -67,12 +67,12 @@ class IndexDefinitionHash {
   }
 
   private static void appendObject(StringBuilder sb, Object value) {
-    if (value instanceof Object[]) {
-      sb.append(Arrays.toString((Object[]) value));
-    } else if (value instanceof Map) {
-      appendMap(sb, (Map) value);
-    } else if (value instanceof IndexType) {
-      sb.append(((IndexType) value).format());
+    if (value instanceof Object[] arrayValue) {
+      sb.append(Arrays.toString(arrayValue));
+    } else if (value instanceof Map map) {
+      appendMap(sb, map);
+    } else if (value instanceof IndexType indexType) {
+      sb.append(indexType.format());
     } else {
       sb.append(value);
     }
diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/es/metadata/MetadataIndexImpl.java b/server/sonar-server-common/src/main/java/org/sonar/server/es/metadata/MetadataIndexImpl.java
index 80e91f7e16e..c4377b7ebbf 100644
--- a/server/sonar-server-common/src/main/java/org/sonar/server/es/metadata/MetadataIndexImpl.java
+++ b/server/sonar-server-common/src/main/java/org/sonar/server/es/metadata/MetadataIndexImpl.java
@@ -68,12 +68,10 @@ public class MetadataIndexImpl implements MetadataIndex {
   }
 
   private static String initializedId(IndexType indexType) {
-    if (indexType instanceof IndexMainType) {
-      IndexMainType mainType = (IndexMainType) indexType;
+    if (indexType instanceof IndexMainType mainType) {
       return mainType.getIndex().getName() + "." + mainType.getType() + ".initialized";
     }
-    if (indexType instanceof IndexRelationType) {
-      IndexRelationType relationType = (IndexRelationType) indexType;
+    if (indexType instanceof IndexRelationType relationType) {
       IndexMainType mainType = relationType.getMainType();
       return mainType.getIndex().getName() + "." + mainType.getType() + "." + relationType.getName() + ".initialized";
     }
diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/issue/notification/FpOrWontFixEmailTemplate.java b/server/sonar-server-common/src/main/java/org/sonar/server/issue/notification/FpOrWontFixEmailTemplate.java
index 488d7efdbce..5afe9794b00 100644
--- a/server/sonar-server-common/src/main/java/org/sonar/server/issue/notification/FpOrWontFixEmailTemplate.java
+++ b/server/sonar-server-common/src/main/java/org/sonar/server/issue/notification/FpOrWontFixEmailTemplate.java
@@ -54,8 +54,8 @@ public class FpOrWontFixEmailTemplate extends IssueChangesEmailTemplate {
       .setMessageId(getMessageId(notification.getResolution()))
       .setSubject(buildSubject(notification))
       .setHtmlMessage(buildMessage(notification));
-    if (notification.getChange() instanceof UserChange) {
-      User user = ((UserChange) notification.getChange()).getUser();
+    if (notification.getChange() instanceof UserChange userChange) {
+      User user = userChange.getUser();
       emailMessage.setFrom(user.getName().orElse(user.getLogin()));
     }
     return emailMessage;
diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/issue/notification/IssuesChangesNotificationSerializer.java b/server/sonar-server-common/src/main/java/org/sonar/server/issue/notification/IssuesChangesNotificationSerializer.java
index 68fdc0bc6d7..d7c9b93e069 100644
--- a/server/sonar-server-common/src/main/java/org/sonar/server/issue/notification/IssuesChangesNotificationSerializer.java
+++ b/server/sonar-server-common/src/main/java/org/sonar/server/issue/notification/IssuesChangesNotificationSerializer.java
@@ -222,8 +222,7 @@ public class IssuesChangesNotificationSerializer {
 
   private static void serializeChange(IssuesChangesNotification notification, IssuesChangesNotificationBuilder.Change change) {
     notification.setFieldValue(FIELD_CHANGE_DATE, String.valueOf(change.date));
-    if (change instanceof IssuesChangesNotificationBuilder.UserChange) {
-      IssuesChangesNotificationBuilder.UserChange userChange = (IssuesChangesNotificationBuilder.UserChange) change;
+    if (change instanceof IssuesChangesNotificationBuilder.UserChange userChange) {
       User user = userChange.getUser();
       notification.setFieldValue(FIELD_CHANGE_AUTHOR_UUID, user.getUuid());
       notification.setFieldValue(FIELD_CHANGE_AUTHOR_LOGIN, user.getLogin());
-- 
cgit v1.2.3