Skip to content

Commit cf37243

Browse files
author
David Hasani
committed
address rli comments
1 parent 7c44655 commit cf37243

File tree

3 files changed

+14
-13
lines changed

3 files changed

+14
-13
lines changed

plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/model/CodeModernizerArtifact.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package software.aws.toolkits.jetbrains.services.codemodernizer.model
55

66
import com.fasterxml.jackson.core.JsonProcessingException
77
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
8+
import com.fasterxml.jackson.module.kotlin.readValue
89
import com.intellij.openapi.util.io.FileUtil.createTempDirectory
910
import com.intellij.openapi.vfs.LocalFileSystem
1011
import com.intellij.openapi.vfs.VirtualFile
@@ -41,7 +42,7 @@ open class CodeModernizerArtifact(
4142
private const val SUMMARY_FILE_NAME = "summary.md"
4243
private const val METRICS_FILE_NAME = "metrics.json"
4344
val LOG = getLogger<CodeModernizerArtifact>()
44-
private val MAPPER = jacksonObjectMapper()
45+
val MAPPER = jacksonObjectMapper()
4546

4647
/**
4748
* Extracts the file at [zipPath] and uses its contents to produce a [CodeModernizerArtifact].
@@ -88,7 +89,7 @@ open class CodeModernizerArtifact(
8889
?.firstOrNull { it.name.endsWith(MANIFEST_FILE_NAME) }
8990
?: throw RuntimeException("Could not find manifest")
9091
try {
91-
val manifest = MAPPER.readValue(manifestFile, CodeModernizerManifest::class.java)
92+
val manifest = MAPPER.readValue<CodeModernizerManifest>(manifestFile)
9293
if (manifest.version == 0.0F) {
9394
throw RuntimeException(
9495
"Unable to deserialize the manifest",
@@ -106,7 +107,7 @@ open class CodeModernizerArtifact(
106107
tempDir.resolve(manifest.metricsRoot).listFiles()
107108
?.firstOrNull { it.name.endsWith(METRICS_FILE_NAME) }
108109
?: throw RuntimeException("Could not find metrics.json")
109-
return MAPPER.readValue(metricsFile, CodeModernizerMetrics::class.java)
110+
return MAPPER.readValue<CodeModernizerMetrics>(metricsFile)
110111
} catch (exception: Exception) {
111112
// if metrics.json not present or parsing fails, can still show diff.patch and summary.md
112113
return null

plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/plan/CodeModernizerPlanEditor.kt

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
package software.aws.toolkits.jetbrains.services.codemodernizer.plan
55

6-
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
76
import com.fasterxml.jackson.module.kotlin.readValue
87
import com.intellij.ide.BrowserUtil
98
import com.intellij.openapi.fileEditor.FileEditor
@@ -22,6 +21,7 @@ import software.aws.toolkits.jetbrains.services.codemodernizer.constants.APPENDI
2221
import software.aws.toolkits.jetbrains.services.codemodernizer.constants.CodeModernizerUIConstants
2322
import software.aws.toolkits.jetbrains.services.codemodernizer.constants.JOB_STATISTICS_TABLE_KEY
2423
import software.aws.toolkits.jetbrains.services.codemodernizer.constants.LOC_THRESHOLD
24+
import software.aws.toolkits.jetbrains.services.codemodernizer.model.CodeModernizerArtifact.Companion.MAPPER
2525
import software.aws.toolkits.jetbrains.services.codemodernizer.model.PlanTable
2626
import software.aws.toolkits.jetbrains.services.codemodernizer.plan.CodeModernizerPlanEditorProvider.Companion.MIGRATION_PLAN_KEY
2727
import software.aws.toolkits.jetbrains.services.codemodernizer.utils.getAuthType
@@ -62,7 +62,6 @@ import javax.swing.table.DefaultTableModel
6262
class CodeModernizerPlanEditor(val project: Project, private val virtualFile: VirtualFile) : UserDataHolderBase(), FileEditor {
6363
val plan = virtualFile.getUserData(MIGRATION_PLAN_KEY) ?: throw RuntimeException("Migration plan not found")
6464
private val tableMapping = getTableMapping(plan.transformationSteps()[0].progressUpdates())
65-
private val mapper = jacksonObjectMapper()
6665

6766
// to-do: convert to UI DSL
6867
private val contentPanel =
@@ -77,7 +76,7 @@ class CodeModernizerPlanEditor(val project: Project, private val virtualFile: Vi
7776
// comes from "name" field of each progressUpdate in step zero of plan
7877
if (JOB_STATISTICS_TABLE_KEY in tableMapping) {
7978
val planTable = parseTableMapping(tableMapping)
80-
val linesOfCode = getLinesOfCodeSubmitted(planTable)
79+
val linesOfCode = planTable?.let { getLinesOfCodeSubmitted(it) }
8180
if (linesOfCode != null && linesOfCode > LOC_THRESHOLD && getAuthType(project) == CredentialSourceId.IamIdentityCenter) {
8281
val billingText = getBillingText(linesOfCode)
8382
val billingTextComponent =
@@ -99,15 +98,15 @@ class CodeModernizerPlanEditor(val project: Project, private val virtualFile: Vi
9998
add(billingTextComponent, CodeModernizerUIConstants.transformationPlanPlaneConstraint)
10099
}
101100
add(
102-
transformationPlanInfo(planTable),
101+
planTable?.let { transformationPlanInfo(it) },
103102
CodeModernizerUIConstants.transformationPlanPlaneConstraint,
104103
)
105104
}
106105
add(transformationPlanPanel(plan), CodeModernizerUIConstants.transformationPlanPlaneConstraint)
107106
// key "-1" reserved for appendix table
108107
if (APPENDIX_TABLE_KEY in tableMapping) {
109108
add(
110-
transformationPlanAppendix(mapper.readValue(tableMapping[APPENDIX_TABLE_KEY], PlanTable::class.java)),
109+
tableMapping[APPENDIX_TABLE_KEY]?.let { MAPPER.readValue<PlanTable>(it) }?.let { transformationPlanAppendix(it) },
111110
CodeModernizerUIConstants.transformationPlanPlaneConstraint,
112111
)
113112
}
@@ -397,7 +396,7 @@ class CodeModernizerPlanEditor(val project: Project, private val virtualFile: Vi
397396
val table = tableMapping[step.id()]
398397

399398
val parsedTable = table?.let {
400-
mapper.readValue<PlanTable>(it)
399+
MAPPER.readValue<PlanTable>(it)
401400
}
402401

403402
val renderedStepTable = parsedTable?.let {

plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/utils/CodeTransformApiUtils.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
package software.aws.toolkits.jetbrains.services.codemodernizer.utils
55

6-
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
6+
import com.fasterxml.jackson.module.kotlin.readValue
77
import com.intellij.openapi.project.Project
88
import com.intellij.serviceContainer.AlreadyDisposedException
99
import kotlinx.coroutines.delay
@@ -25,6 +25,7 @@ import software.aws.toolkits.jetbrains.services.codemodernizer.CodeTransformTele
2525
import software.aws.toolkits.jetbrains.services.codemodernizer.client.GumbyClient
2626
import software.aws.toolkits.jetbrains.services.codemodernizer.constants.BILLING_RATE
2727
import software.aws.toolkits.jetbrains.services.codemodernizer.constants.JOB_STATISTICS_TABLE_KEY
28+
import software.aws.toolkits.jetbrains.services.codemodernizer.model.CodeModernizerArtifact.Companion.MAPPER
2829
import software.aws.toolkits.jetbrains.services.codemodernizer.model.JobId
2930
import software.aws.toolkits.jetbrains.services.codemodernizer.model.PlanTable
3031
import software.aws.toolkits.resources.message
@@ -137,12 +138,12 @@ fun getTableMapping(stepZeroProgressUpdates: List<TransformationProgressUpdate>)
137138
it.name() to it.description()
138139
}
139140
} else {
140-
throw RuntimeException("GetPlan response missing step 0 progress updates with table data")
141+
error("GetPlan response missing step 0 progress updates with table data")
141142
}
142143
}
143144

144-
fun parseTableMapping(tableMapping: Map<String, String>): PlanTable =
145-
jacksonObjectMapper().readValue(tableMapping[JOB_STATISTICS_TABLE_KEY], PlanTable::class.java)
145+
fun parseTableMapping(tableMapping: Map<String, String>): PlanTable? =
146+
tableMapping[JOB_STATISTICS_TABLE_KEY]?.let { MAPPER.readValue<PlanTable>(it) }
146147

147148
fun getBillingText(linesOfCode: Int): String {
148149
val estimatedCost = String.format(Locale.US, "%.2f", linesOfCode.times(BILLING_RATE))

0 commit comments

Comments
 (0)