Skip to content
This repository was archived by the owner on May 14, 2025. It is now read-only.

Commit 8fe2a0e

Browse files
author
ritvik
committed
Refactor code writing methods to reduce duplication
1 parent ebdc53b commit 8fe2a0e

File tree

1 file changed

+10
-27
lines changed

1 file changed

+10
-27
lines changed

src/main/java/org/springframework/cli/merger/ai/ProjectArtifactProcessor.java

Lines changed: 10 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,10 @@ private ProcessArtifactResult<Void> processArtifacts(List<ProjectArtifact> proje
8080
ProjectArtifactType artifactType = projectArtifact.getArtifactType();
8181
switch (artifactType) {
8282
case SOURCE_CODE:
83-
writeSourceCode(projectArtifact, projectPath);
83+
writeCode(projectArtifact, projectPath, false);
8484
break;
8585
case TEST_CODE:
86-
writeTestCode(projectArtifact, projectPath);
86+
writeCode(projectArtifact, projectPath, true);
8787
break;
8888
case MAVEN_DEPENDENCIES:
8989
writeMavenDependencies(projectArtifact, projectPath, terminalMessage);
@@ -110,29 +110,24 @@ private ProcessArtifactResult<Void> processArtifacts(List<ProjectArtifact> proje
110110
return processArtifactResult;
111111
}
112112

113-
private void writeSourceCode(ProjectArtifact projectArtifact, Path projectPath) throws IOException {
113+
private void writeCode(ProjectArtifact projectArtifact, Path projectPath, boolean isTest) throws IOException {
114114
String packageName = this.calculatePackageForArtifact(projectArtifact);
115115
ClassNameExtractor classNameExtractor = new ClassNameExtractor();
116116
Optional<String> className = classNameExtractor.extractClassName(projectArtifact.getText());
117117
if (className.isPresent()) {
118-
Path output = createSourceFile(projectPath, packageName, className.get() + ".java");
118+
Path output = createCodeFile(projectPath, packageName, className.get() + ".java", isTest);
119119
try (Writer writer = new BufferedWriter(new FileWriter(output.toFile()))) {
120120
writer.write(projectArtifact.getText());
121121
}
122122
}
123123
}
124124

125-
private void writeTestCode(ProjectArtifact projectArtifact, Path projectPath) throws IOException {
126-
// TODO parameterize better to reduce code duplication
127-
String packageName = this.calculatePackageForArtifact(projectArtifact);
128-
ClassNameExtractor classNameExtractor = new ClassNameExtractor();
129-
Optional<String> className = classNameExtractor.extractClassName(projectArtifact.getText());
130-
if (className.isPresent()) {
131-
Path output = createTestFile(projectPath, packageName, className.get() + ".java");
132-
try (Writer writer = new BufferedWriter(new FileWriter(output.toFile()))) {
133-
writer.write(projectArtifact.getText());
134-
}
135-
}
125+
private Path createCodeFile(Path projectPath, String packageName, String fileName, boolean isTest)
126+
throws IOException {
127+
Path sourceFile = isTest ? resolveTestFile(projectPath, packageName, fileName)
128+
: resolveSourceFile(projectPath, packageName, fileName);
129+
createFile(sourceFile);
130+
return sourceFile;
136131
}
137132

138133
private void writeMavenDependencies(ProjectArtifact projectArtifact, Path projectPath,
@@ -276,18 +271,6 @@ private static String extractFilenameFromComment(String content) {
276271
return null;
277272
}
278273

279-
private Path createSourceFile(Path projectPath, String packageName, String fileName) throws IOException {
280-
Path sourceFile = resolveSourceFile(projectPath, packageName, fileName);
281-
createFile(sourceFile);
282-
return sourceFile;
283-
}
284-
285-
private Path createTestFile(Path projectPath, String packageName, String fileName) throws IOException {
286-
Path sourceFile = resolveTestFile(projectPath, packageName, fileName);
287-
createFile(sourceFile);
288-
return sourceFile;
289-
}
290-
291274
public Path resolveSourceFile(Path projectPath, String packageName, String fileName) {
292275
Path sourceDirectory = projectPath.resolve("src").resolve("main").resolve("java");
293276
return resolvePackage(sourceDirectory, packageName).resolve(fileName);

0 commit comments

Comments
 (0)