Remove GitRepoFilesHandler

Favor Guice injection over a static members and remove
`GitRepoFilesHandler` that keept a single static instance of
`GitRepoFiles` class.

Change-Id: I72bc43728b27aa1757f096b55e38b79fa535724e
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/EventHandlerTask.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/EventHandlerTask.java
index 885736f..ea6b1fe 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/EventHandlerTask.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/EventHandlerTask.java
@@ -14,7 +14,6 @@
 import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.api.gerrit.GerritClient;
 import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.data.ChangeSetData;
 import com.googlesource.gerrit.plugins.chatgpt.mode.stateful.client.api.git.GitRepoFiles;
-import com.googlesource.gerrit.plugins.chatgpt.mode.stateful.client.api.git.GitRepoFilesHandler;
 import lombok.extern.slf4j.Slf4j;
 
 import java.util.List;
@@ -37,7 +36,6 @@
 
     private final Configuration config;
     private final GerritClient gerritClient;
-    private final GitRepoFiles gitRepoFiles;
     private final ChangeSetData changeSetData;
     private final GerritChange change;
     private final PatchSetReviewer reviewer;
@@ -50,7 +48,6 @@
             GerritChange change,
             PatchSetReviewer reviewer,
             GerritClient gerritClient,
-            GitRepoFiles gitRepoFiles,
             PluginDataHandler pluginDataHandler
     ) {
         this.changeSetData = changeSetData;
@@ -58,7 +55,6 @@
         this.reviewer = reviewer;
         this.gerritClient = gerritClient;
         this.config = config;
-        this.gitRepoFiles = gitRepoFiles;
         this.pluginDataHandler = pluginDataHandler;
     }
 
@@ -69,7 +65,6 @@
 
     @VisibleForTesting
     public Result execute() {
-        GitRepoFilesHandler.createNewInstance(gitRepoFiles);
         ProjectDataHandler.createNewInstance(pluginDataHandler);
 
         if (!preProcessEvent(change, changeSetData)) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/chatgpt/ChatGptAssistant.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/chatgpt/ChatGptAssistant.java
index d8cc4de..4b4a86d 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/chatgpt/ChatGptAssistant.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/chatgpt/ChatGptAssistant.java
@@ -8,7 +8,7 @@
 import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.http.HttpClient;
 import com.googlesource.gerrit.plugins.chatgpt.mode.common.model.api.chatgpt.ChatGptTool;
 import com.googlesource.gerrit.plugins.chatgpt.mode.stateful.client.api.UriResourceLocatorStateful;
-import com.googlesource.gerrit.plugins.chatgpt.mode.stateful.client.api.git.GitRepoFilesHandler;
+import com.googlesource.gerrit.plugins.chatgpt.mode.stateful.client.api.git.GitRepoFiles;
 import com.googlesource.gerrit.plugins.chatgpt.mode.stateful.client.prompt.ChatGptPromptStateful;
 import com.googlesource.gerrit.plugins.chatgpt.mode.stateful.model.api.chatgpt.ChatGptCreateAssistantResponse;
 import com.googlesource.gerrit.plugins.chatgpt.mode.stateful.model.api.chatgpt.ChatGptFilesResponse;
@@ -32,10 +32,12 @@
 
     private final HttpClient httpClient = new HttpClient();
     private final GerritChange change;
+    private final GitRepoFiles gitRepoFiles;
 
-    public ChatGptAssistant(Configuration config, GerritChange change) {
+    public ChatGptAssistant(Configuration config, GerritChange change, GitRepoFiles gitRepoFiles) {
         super(config);
         this.change = change;
+        this.gitRepoFiles = gitRepoFiles;
     }
 
     public void setupAssistant() {
@@ -53,7 +55,7 @@
     }
 
     private String uploadRepoFiles() {
-        String repoFiles = GitRepoFilesHandler.getInstance().getGitRepoFiles(change);
+        String repoFiles = gitRepoFiles.getGitRepoFiles(change);
         Path repoPath = createTempFileWithContent(change.getProjectName(), ".json", repoFiles);
         ChatGptFiles chatGptFiles = new ChatGptFiles(config);
         ChatGptFilesResponse chatGptFilesResponse = chatGptFiles.uploadFiles(repoPath);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/gerrit/GerritClientPatchSetStateful.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/gerrit/GerritClientPatchSetStateful.java
index 0b62eb0..22107e1 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/gerrit/GerritClientPatchSetStateful.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/gerrit/GerritClientPatchSetStateful.java
@@ -7,18 +7,21 @@
 import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.api.gerrit.GerritChange;
 import com.googlesource.gerrit.plugins.chatgpt.mode.common.client.api.gerrit.GerritClientPatchSet;
 import com.googlesource.gerrit.plugins.chatgpt.mode.interfaces.client.api.gerrit.IGerritClientPatchSet;
+import com.googlesource.gerrit.plugins.chatgpt.mode.stateful.client.api.git.GitRepoFiles;
 import lombok.extern.slf4j.Slf4j;
 
 @Slf4j
 public class GerritClientPatchSetStateful extends GerritClientPatchSet implements IGerritClientPatchSet {
+    private final GitRepoFiles gitRepoFiles;
 
     @Inject
-    public GerritClientPatchSetStateful(Configuration config) {
+    public GerritClientPatchSetStateful(Configuration config, GitRepoFiles gitRepoFiles) {
         super(config);
+        this.gitRepoFiles = gitRepoFiles;
     }
 
     public String getPatchSet(ChangeSetData changeSetData, GerritChange change) {
-        ChatGptAssistant chatGptAssistant = new ChatGptAssistant(config, change);
+        ChatGptAssistant chatGptAssistant = new ChatGptAssistant(config, change, gitRepoFiles);
         chatGptAssistant.setupAssistant();
 
         return "";
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/git/GitRepoFilesHandler.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/git/GitRepoFilesHandler.java
deleted file mode 100644
index 7e734ff..0000000
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/mode/stateful/client/api/git/GitRepoFilesHandler.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.googlesource.gerrit.plugins.chatgpt.mode.stateful.client.api.git;
-
-public class GitRepoFilesHandler {
-    private static GitRepoFiles gitRepoFiles;
-
-    public static synchronized GitRepoFiles getInstance() {
-        return gitRepoFiles;
-    }
-
-    public static synchronized void createNewInstance(GitRepoFiles gitRepoFiles) {
-        GitRepoFilesHandler.gitRepoFiles = gitRepoFiles;
-    }
-
-}
diff --git a/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewTestBase.java b/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewTestBase.java
index 4966a2a..305ff60 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewTestBase.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewTestBase.java
@@ -315,7 +315,7 @@
 
     private IGerritClientPatchSet getGerritClientPatchSet() {
         return switch (config.getGptMode()) {
-            case stateful -> new GerritClientPatchSetStateful(config);
+            case stateful -> new GerritClientPatchSetStateful(config, gitRepoFiles);
             case stateless -> new GerritClientPatchSetStateless(config);
         };
     }