Use Java 21 instanceof match whenever possible

Gerrit master is now on Java 21 and it is therefore
possible to use a simpler form to cast an object
to a subtype with instanceof, see [1].

[1] https://docs.oracle.com/en/java/javase/21/language/pattern-matching-instanceof.html

Change-Id: I72a1357ed0a1cfe62d77f501f423152f5c463ed9
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/Configuration.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/Configuration.java
index 846192f..e6f3533 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/Configuration.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/Configuration.java
@@ -243,9 +243,9 @@
           null,
           SharedRefDbConfiguration.SharedRefDatabase.ENABLE_KEY,
           true);
-      if (cfg instanceof FileBasedConfig) {
+      if (cfg instanceof FileBasedConfig fileBasedConfig) {
         try {
-          ((FileBasedConfig) cfg).save();
+          fileBasedConfig.save();
         } catch (IOException e) {
           throw new IllegalStateException("Error while enabling global-refdb by default", e);
         }
@@ -255,10 +255,9 @@
   }
 
   private Supplier<Config> lazyLoad(Config config) {
-    if (config instanceof FileBasedConfig) {
+    if (config instanceof FileBasedConfig fileConfig) {
       return memoize(
           () -> {
-            FileBasedConfig fileConfig = (FileBasedConfig) config;
             String fileConfigFileName = fileConfig.getFile().getPath();
             try {
               log.info("Loading configuration from {}", fileConfigFileName);
@@ -273,8 +272,7 @@
   }
 
   private Supplier<Collection<Message>> lazyValidateReplicatioConfig(Config replicationConfig) {
-    if (replicationConfig instanceof FileBasedConfig) {
-      FileBasedConfig fileConfig = (FileBasedConfig) replicationConfig;
+    if (replicationConfig instanceof FileBasedConfig fileConfig) {
       try {
         fileConfig.load();
         return memoize(() -> validateReplicationConfig(replicationConfig));
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/BatchIndexEventSubscriber.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/BatchIndexEventSubscriber.java
index 15d756b..045aded 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/BatchIndexEventSubscriber.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/BatchIndexEventSubscriber.java
@@ -51,11 +51,11 @@
 
   @Override
   protected Boolean shouldConsumeEvent(Event event) {
-    if (event instanceof ChangeIndexEvent) {
-      return projectsFilter.matches(((ChangeIndexEvent) event).projectName);
+    if (event instanceof ChangeIndexEvent changeIndexEvent) {
+      return projectsFilter.matches(changeIndexEvent.projectName);
     }
-    if (event instanceof ProjectIndexEvent) {
-      return projectsFilter.matches(((ProjectIndexEvent) event).projectName);
+    if (event instanceof ProjectIndexEvent projectIndexEvent) {
+      return projectsFilter.matches(projectIndexEvent.projectName);
     }
     return true;
   }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/IndexEventSubscriber.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/IndexEventSubscriber.java
index a632618..7220cd5 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/IndexEventSubscriber.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/IndexEventSubscriber.java
@@ -57,16 +57,15 @@
 
   @Override
   protected Boolean shouldConsumeEvent(Event event) {
-    if (event instanceof ChangeIndexEvent) {
-      ChangeIndexEvent changeIndexEvent = (ChangeIndexEvent) event;
+    if (event instanceof ChangeIndexEvent changeIndexEvent) {
       String projectName = changeIndexEvent.projectName;
       if (isDeletedChangeWithEmptyProject(changeIndexEvent)) {
         projectName = findProjectFromChangeId(changeIndexEvent.changeId).orElse(projectName);
       }
       return projectsFilter.matches(projectName);
     }
-    if (event instanceof ProjectIndexEvent) {
-      return projectsFilter.matches(((ProjectIndexEvent) event).projectName);
+    if (event instanceof ProjectIndexEvent projectIndexEvent) {
+      return projectsFilter.matches(projectIndexEvent.projectName);
     }
     return true;
   }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/StreamEventSubscriber.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/StreamEventSubscriber.java
index 63fc29a..3450c38 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/StreamEventSubscriber.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/StreamEventSubscriber.java
@@ -50,8 +50,8 @@
 
   @Override
   protected Boolean shouldConsumeEvent(Event event) {
-    if (event instanceof ProjectEvent) {
-      return projectsFilter.matches(((ProjectEvent) event).getProjectNameKey().get());
+    if (event instanceof ProjectEvent projectEvent) {
+      return projectsFilter.matches(projectEvent.getProjectNameKey().get());
     }
     return true;
   }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/SubscriberMetrics.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/SubscriberMetrics.java
index ef71862..2801d5b 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/SubscriberMetrics.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/SubscriberMetrics.java
@@ -144,9 +144,7 @@
         || event instanceof RefUpdatedEvent) {
       ProjectEvent projectEvent = (ProjectEvent) event;
       replicationStatus.updateReplicationLag(projectEvent.getProjectNameKey());
-    } else if (event instanceof ProjectDeletionReplicationSucceededEvent) {
-      ProjectDeletionReplicationSucceededEvent projectDeletion =
-          (ProjectDeletionReplicationSucceededEvent) event;
+    } else if (event instanceof ProjectDeletionReplicationSucceededEvent projectDeletion) {
       replicationStatus.removeProjectFromReplicationLagMetrics(projectDeletion.getProjectNameKey());
     }
   }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexAccountHandler.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexAccountHandler.java
index 6e0aa11..6d5e7bd 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexAccountHandler.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexAccountHandler.java
@@ -52,8 +52,7 @@
 
   @Override
   public void handle(IndexEvent sourceEvent) throws IOException {
-    if (sourceEvent instanceof AccountIndexEvent) {
-      AccountIndexEvent accountIndexEvent = (AccountIndexEvent) sourceEvent;
+    if (sourceEvent instanceof AccountIndexEvent accountIndexEvent) {
       indexAsync(Account.id(accountIndexEvent.accountId), INDEX);
     }
   }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexChangeHandler.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexChangeHandler.java
index aa5929f..8e98359 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexChangeHandler.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexChangeHandler.java
@@ -62,8 +62,7 @@
 
   @Override
   public void handle(IndexEvent sourceEvent) throws IOException {
-    if (sourceEvent instanceof ChangeIndexEvent) {
-      ChangeIndexEvent changeIndexEvent = (ChangeIndexEvent) sourceEvent;
+    if (sourceEvent instanceof ChangeIndexEvent changeIndexEvent) {
       ForwardedIndexingHandler.Operation operation = changeIndexEvent.deleted ? DELETE : INDEX;
       index(
           changeIndexEvent.projectName + "~" + changeIndexEvent.changeId,
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexGroupHandler.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexGroupHandler.java
index f1141c9..953be7b 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexGroupHandler.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexGroupHandler.java
@@ -56,8 +56,7 @@
 
   @Override
   public void handle(IndexEvent sourceEvent) throws IOException {
-    if (sourceEvent instanceof GroupIndexEvent) {
-      GroupIndexEvent groupIndexEvent = (GroupIndexEvent) sourceEvent;
+    if (sourceEvent instanceof GroupIndexEvent groupIndexEvent) {
       index(groupIndexEvent.groupUUID, INDEX, Optional.of(groupIndexEvent));
     }
   }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexProjectHandler.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexProjectHandler.java
index 453d961..191e273 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexProjectHandler.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexProjectHandler.java
@@ -56,8 +56,7 @@
 
   @Override
   public void handle(IndexEvent sourceEvent) throws IOException {
-    if (sourceEvent instanceof ProjectIndexEvent) {
-      ProjectIndexEvent projectIndexEvent = (ProjectIndexEvent) sourceEvent;
+    if (sourceEvent instanceof ProjectIndexEvent projectIndexEvent) {
       index(projectIndexEvent.projectName, INDEX, Optional.of(projectIndexEvent));
     }
   }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/index/FetchRefReplicatedEventHandler.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/index/FetchRefReplicatedEventHandler.java
index 69cdb06..1e00452 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/index/FetchRefReplicatedEventHandler.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/index/FetchRefReplicatedEventHandler.java
@@ -55,8 +55,7 @@
     try {
       Context.setForwardedEvent(true);
 
-      if (event instanceof FetchRefReplicatedEvent && isLocalEvent(event)) {
-        FetchRefReplicatedEvent fetchRefReplicatedEvent = (FetchRefReplicatedEvent) event;
+      if (event instanceof FetchRefReplicatedEvent fetchRefReplicatedEvent && isLocalEvent(event)) {
         // This removal of the ':' prefix is needed because of Issue 426470297 in the
         // pull-replication plugin
         // that may leave the deleted refs notification as a ref-spec instead of the deleted