Skip to content

Commit d16554a

Browse files
author
Vinay
committed
Support configuring the Reporter class name
1 parent 0d275e5 commit d16554a

File tree

3 files changed

+18
-11
lines changed

3 files changed

+18
-11
lines changed

src/main/kotlin/org/simple/rmg/RoomMetadataGenerator.kt

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import java.io.File
1818
import java.nio.file.Paths
1919

2020
fun main(args: Array<String>) {
21-
RoomMetadataGenerator().run(args[0], args[1])
21+
RoomMetadataGenerator().run(args[0], args[1], args[2])
2222
}
2323

2424
private val rxJavaTypes = setOf("Single", "Completable", "Observable", "Flowable")
@@ -44,7 +44,8 @@ class RoomMetadataGenerator {
4444

4545
fun run(
4646
projectPath: String,
47-
sourceSet: String
47+
sourceSet: String,
48+
reporterName: String
4849
) {
4950
val moduleGeneratedSourcesDirectory = Paths.get(projectPath, "build", "generated", "source", "kapt", sourceSet)
5051

@@ -62,7 +63,7 @@ class RoomMetadataGenerator {
6263

6364
val transformedAsts = generatedRoomDaoAsts
6465
.map { daoMetadata ->
65-
val transformedAst = transformGeneratedDao(measureMethodCodeTemplate, daoMetadata.ast.clone())
66+
val transformedAst = transformGeneratedDao(measureMethodCodeTemplate, daoMetadata.ast.clone(), reporterName)
6667
daoMetadata.replaceAst(transformedAst)
6768
}
6869

@@ -73,11 +74,16 @@ class RoomMetadataGenerator {
7374

7475
fun transformGeneratedDao(
7576
measureMethodCodeTemplate: String,
76-
generatedDao: CompilationUnit
77+
generatedDao: CompilationUnit,
78+
reporterName: String
7779
): CompilationUnit {
7880
val classDeclaration = generatedDao.types.first() as ClassOrInterfaceDeclaration
7981
val measureMethod = StaticJavaParser
80-
.parse(measureMethodCodeTemplate.replace("\$CLASS_NAME\$", classDeclaration.nameAsString))
82+
.parse(
83+
measureMethodCodeTemplate
84+
.replace("\$CLASS_NAME\$", classDeclaration.nameAsString)
85+
.replace("\$REPORTER_NAME\$", reporterName)
86+
)
8187
.types
8288
.first()
8389
.methods

src/main/resources/MeasureMethod.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ private static <T> T measureAndReport(
1111
result = block.invoke();
1212
final java.time.Duration timeTaken = java.time.Duration.ofMillis(System.currentTimeMillis() - start);
1313

14-
org.simple.clinic.SqlPerformanceReporter.report("$CLASS_NAME$", methodName, timeTaken);
14+
$REPORTER_NAME$.report("$CLASS_NAME$", methodName, timeTaken);
1515

1616
return result;
1717
}

src/test/kotlin/org/simple/rmg/DaoTransformationTest.kt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package org.simple.rmg
33
import com.github.javaparser.StaticJavaParser
44
import com.github.javaparser.ast.CompilationUnit
55
import com.google.common.truth.Truth.assertThat
6-
import org.junit.jupiter.api.Assertions
76
import org.junit.jupiter.api.Assertions.assertThrows
87
import org.junit.jupiter.api.Test
98

@@ -13,6 +12,8 @@ class DaoTransformationTest {
1312

1413
private val measureMethodCodeTemplate: String
1514

15+
private val reporterName = "org.simple.clinic.SqlPerformanceReporter"
16+
1617
init {
1718
measureMethodCodeTemplate = readResourceAsString("MeasureMethod.java")
1819
}
@@ -23,7 +24,7 @@ class DaoTransformationTest {
2324
val daoImplementation = readResourceAsAst("test_data/transform/source/UserRoomDao_Impl.java")
2425

2526
// when
26-
val transformedDao = app.transformGeneratedDao(measureMethodCodeTemplate, daoImplementation)
27+
val transformedDao = app.transformGeneratedDao(measureMethodCodeTemplate, daoImplementation, reporterName)
2728

2829
// then
2930
val expectedTransformedDao = readResourceAsAst("test_data/transform/modified/UserRoomDao_Impl.java")
@@ -37,7 +38,7 @@ class DaoTransformationTest {
3738
val daoImplementation = readResourceAsAst("test_data/transform/source/BloodPressureMeasurementRoomDao_Impl.java")
3839

3940
// when
40-
val transformedDao = app.transformGeneratedDao(measureMethodCodeTemplate, daoImplementation)
41+
val transformedDao = app.transformGeneratedDao(measureMethodCodeTemplate, daoImplementation, reporterName)
4142

4243
// then
4344
val expectedTransformedDao = readResourceAsAst("test_data/transform/modified/BloodPressureMeasurementRoomDao_Impl.java")
@@ -51,7 +52,7 @@ class DaoTransformationTest {
5152
val daoImplementation = readResourceAsAst("test_data/transform/modified/UserRoomDao_Impl.java")
5253

5354
// when
54-
val transformedDao = app.transformGeneratedDao(measureMethodCodeTemplate, daoImplementation)
55+
val transformedDao = app.transformGeneratedDao(measureMethodCodeTemplate, daoImplementation, reporterName)
5556

5657
// then
5758
val expectedTransformedDao = readResourceAsAst("test_data/transform/modified/UserRoomDao_Impl.java")
@@ -66,7 +67,7 @@ class DaoTransformationTest {
6667

6768
// then
6869
assertThrows(RuntimeException::class.java) {
69-
app.transformGeneratedDao(measureMethodCodeTemplate, daoImplementation)
70+
app.transformGeneratedDao(measureMethodCodeTemplate, daoImplementation, reporterName)
7071
}
7172
}
7273

0 commit comments

Comments
 (0)