Skip to content

Commit 27da064

Browse files
committed
move cusomization data class to shared
1 parent 936d3fa commit 27da064

File tree

7 files changed

+27
-25
lines changed

7 files changed

+27
-25
lines changed

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/clients/chat/model/Requests.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ package software.aws.toolkits.jetbrains.services.cwc.clients.chat.model
55

66
import com.fasterxml.jackson.annotation.JsonProperty
77
import software.amazon.awssdk.services.codewhispererstreaming.model.UserIntent
8-
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererCustomization
8+
import software.aws.toolkits.jetbrains.services.amazonq.models.QCustomization
99
import software.aws.toolkits.jetbrains.services.cwc.editor.context.ActiveFileContext
1010
import software.aws.toolkits.jetbrains.services.amazonq.project.RelevantDocument
1111

@@ -22,7 +22,7 @@ data class ChatRequestData(
2222
val activeFileContext: ActiveFileContext,
2323
val userIntent: UserIntent?,
2424
val triggerType: TriggerType,
25-
val customization: CodeWhispererCustomization?,
25+
val customization: QCustomization?,
2626
val relevantTextDocuments: List<RelevantDocument>,
2727
val useRelevantDocuments: Boolean,
2828
)

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ import software.aws.toolkits.core.utils.getLogger
1313
import software.aws.toolkits.core.utils.info
1414
import software.aws.toolkits.core.utils.warn
1515
import software.aws.toolkits.jetbrains.services.amazonq.apps.AmazonQAppInitContext
16+
import software.aws.toolkits.jetbrains.services.amazonq.models.QCustomization
1617
import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWhispererClientAdaptor
17-
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererCustomization
1818
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererModelConfigurator
1919
import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings
2020
import software.aws.toolkits.jetbrains.services.cwc.clients.chat.model.ChatRequestData
@@ -45,7 +45,7 @@ class TelemetryHelper(private val context: AmazonQAppInitContext, private val se
4545
private val responseStreamTimeForChunks: MutableMap<String, MutableList<Instant>> = mutableMapOf()
4646
private val responseHasProjectContext: MutableMap<String, Boolean> = mutableMapOf()
4747

48-
private val customization: CodeWhispererCustomization?
48+
private val customization: QCustomization?
4949
get() = CodeWhispererModelConfigurator.getInstance().activeCustomization(context.project)
5050

5151
fun getConversationId(tabId: String): String? = sessionStorage.getSession(tabId)?.session?.conversationId

plugins/amazonq/codewhisperer/jetbrains-community/src/migration/software/aws/toolkits/jetbrains/services/codewhisperer/customization/CodeWhispererModelConfigurator.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ package migration.software.aws.toolkits.jetbrains.services.codewhisperer.customi
55

66
import com.intellij.openapi.components.service
77
import com.intellij.openapi.project.Project
8-
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererCustomization
8+
import software.aws.toolkits.jetbrains.services.amazonq.models.QCustomization
99
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CustomizationUiItem
1010

1111
// A component responsible managing client's codewhisperer model configuration (currently customization feature only support enterprise tier users)
@@ -14,9 +14,9 @@ interface CodeWhispererModelConfigurator {
1414

1515
fun listCustomizations(project: Project, passive: Boolean = false): List<CustomizationUiItem>?
1616

17-
fun activeCustomization(project: Project): CodeWhispererCustomization?
17+
fun activeCustomization(project: Project): QCustomization?
1818

19-
fun switchCustomization(project: Project, newCustomization: CodeWhispererCustomization?)
19+
fun switchCustomization(project: Project, newCustomization: QCustomization?)
2020

2121
/**
2222
* This method is only used for invalidate a stale customization which was previously active but was removed, it will remove all usage of this customization

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/credentials/CodeWhispererClientAdaptor.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnection
4343
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager
4444
import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManagerListener
4545
import software.aws.toolkits.jetbrains.core.credentials.pinning.CodeWhispererConnection
46-
import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererCustomization
46+
import software.aws.toolkits.jetbrains.services.amazonq.models.QCustomization
4747
import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager
4848
import software.aws.toolkits.jetbrains.services.codewhisperer.language.CodeWhispererProgrammingLanguage
4949
import software.aws.toolkits.jetbrains.services.codewhisperer.service.RequestContext
@@ -89,7 +89,7 @@ interface CodeWhispererClientAdaptor : Disposable {
8989
isSigv4: Boolean = shouldUseSigv4Client(project),
9090
): ListCodeScanFindingsResponse
9191

92-
fun listAvailableCustomizations(): List<CodeWhispererCustomization>
92+
fun listAvailableCustomizations(): List<QCustomization>
9393

9494
fun sendUserTriggerDecisionTelemetry(
9595
requestContext: RequestContext,
@@ -152,7 +152,7 @@ interface CodeWhispererClientAdaptor : Disposable {
152152
responseLength: Int?,
153153
numberOfCodeBlocks: Int?,
154154
hasProjectLevelContext: Boolean?,
155-
customization: CodeWhispererCustomization?,
155+
customization: QCustomization?,
156156
): SendTelemetryEventResponse
157157

158158
fun sendChatInteractWithMessageTelemetry(
@@ -173,7 +173,7 @@ interface CodeWhispererClientAdaptor : Disposable {
173173
language: CodeWhispererProgrammingLanguage,
174174
modificationPercentage: Double,
175175
hasProjectLevelContext: Boolean?,
176-
customization: CodeWhispererCustomization?,
176+
customization: QCustomization?,
177177
): SendTelemetryEventResponse
178178

179179
companion object {
@@ -273,7 +273,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
273273
}
274274

275275
// DO NOT directly use this method to fetch customizations, use wrapper [CodeWhispererModelConfigurator.listCustomization()] instead
276-
override fun listAvailableCustomizations(): List<CodeWhispererCustomization> =
276+
override fun listAvailableCustomizations(): List<QCustomization> =
277277
bearerClient().listAvailableCustomizationsPaginator(ListAvailableCustomizationsRequest.builder().build())
278278
.stream()
279279
.toList()
@@ -284,7 +284,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
284284
}"
285285
}
286286
resp.customizations().map {
287-
CodeWhispererCustomization(
287+
QCustomization(
288288
arn = it.arn(),
289289
name = it.name(),
290290
description = it.description()
@@ -459,7 +459,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
459459
responseLength: Int?,
460460
numberOfCodeBlocks: Int?,
461461
hasProjectLevelContext: Boolean?,
462-
customization: CodeWhispererCustomization?,
462+
customization: QCustomization?,
463463
): SendTelemetryEventResponse = bearerClient().sendTelemetryEvent { requestBuilder ->
464464
requestBuilder.telemetryEvent { telemetryEventBuilder ->
465465
telemetryEventBuilder.chatAddMessageEvent {
@@ -520,7 +520,7 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
520520
language: CodeWhispererProgrammingLanguage,
521521
modificationPercentage: Double,
522522
hasProjectLevelContext: Boolean?,
523-
customization: CodeWhispererCustomization?,
523+
customization: QCustomization?,
524524
): SendTelemetryEventResponse = bearerClient().sendTelemetryEvent { requestBuilder ->
525525
requestBuilder.telemetryEvent { telemetryEventBuilder ->
526526
telemetryEventBuilder.chatUserModificationEvent {

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/customization/CodeWhispererCustomizationDialog.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import software.amazon.awssdk.arns.Arn
2626
import software.aws.toolkits.core.utils.debug
2727
import software.aws.toolkits.core.utils.getLogger
2828
import software.aws.toolkits.core.utils.tryOrNull
29+
import software.aws.toolkits.jetbrains.services.amazonq.models.QCustomization
2930
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererConstants.Q_CUSTOM_LEARN_MORE_URI
3031
import software.aws.toolkits.jetbrains.ui.AsyncComboBox
3132
import software.aws.toolkits.jetbrains.utils.notifyInfo
@@ -34,7 +35,7 @@ import javax.swing.JComponent
3435
import javax.swing.JList
3536

3637
private val NoDataToDisplay = CustomizationUiItem(
37-
CodeWhispererCustomization("", message("codewhisperer.custom.dialog.option.no_data"), ""),
38+
QCustomization("", message("codewhisperer.custom.dialog.option.no_data"), ""),
3839
false,
3940
false
4041
)
@@ -227,7 +228,7 @@ class CodeWhispererCustomizationDialog(
227228
}
228229
}
229230

230-
private fun List<CustomizationUiItem>.putPickedUpFront(picked: Set<CodeWhispererCustomization>) = sortedWith { o1, o2 ->
231+
private fun List<CustomizationUiItem>.putPickedUpFront(picked: Set<QCustomization>) = sortedWith { o1, o2 ->
231232
val has1 = picked.contains(o1.customization)
232233
val has2 = picked.contains(o2.customization)
233234

plugins/amazonq/codewhisperer/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codewhisperer/customization/CodeWhispererModelConfigurator.kt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import com.intellij.util.xmlb.annotations.Property
2020
import software.amazon.awssdk.services.codewhispererruntime.model.CodeWhispererRuntimeException
2121
import software.aws.toolkits.core.utils.debug
2222
import software.aws.toolkits.core.utils.getLogger
23+
import software.aws.toolkits.jetbrains.services.amazonq.models.QCustomization
2324
import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWhispererClientAdaptor
2425
import software.aws.toolkits.jetbrains.services.codewhisperer.service.CodeWhispererFeatureConfigService
2526
import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererConstants
@@ -65,7 +66,7 @@ private fun notifyNewCustomization(project: Project) {
6566
class DefaultCodeWhispererModelConfigurator : CodeWhispererModelConfigurator, PersistentStateComponent<CodeWhispererCustomizationState>, Disposable {
6667
// TODO: refactor and clean these states, probably not need all the follwing and it's hard to maintain
6768
// Map to store connectionId to its active customization
68-
private val connectionIdToActiveCustomizationArn = Collections.synchronizedMap<String, CodeWhispererCustomization>(mutableMapOf())
69+
private val connectionIdToActiveCustomizationArn = Collections.synchronizedMap<String, QCustomization>(mutableMapOf())
6970

7071
// Map to store connectionId to its listAvailableCustomizations result last time
7172
private val connectionToCustomizationsShownLastTime = mutableMapOf<String, MutableList<String>>()
@@ -157,20 +158,20 @@ class DefaultCodeWhispererModelConfigurator : CodeWhispererModelConfigurator, Pe
157158
return@calculateIfIamIdentityCenterConnection customizationUiItems
158159
}
159160

160-
override fun activeCustomization(project: Project): CodeWhispererCustomization? {
161+
override fun activeCustomization(project: Project): QCustomization? {
161162
val result = calculateIfIamIdentityCenterConnection(project) { connectionIdToActiveCustomizationArn[it.id] }
162163

163164
// A/B case
164165
val customizationArnFromAB = CodeWhispererFeatureConfigService.getInstance().getCustomizationArnOverride()
165166
if (customizationArnFromAB.isEmpty()) return result
166-
return CodeWhispererCustomization(
167+
return QCustomization(
167168
arn = customizationArnFromAB,
168169
name = result?.name.orEmpty(),
169170
description = result?.description
170171
)
171172
}
172173

173-
override fun switchCustomization(project: Project, newCustomization: CodeWhispererCustomization?) {
174+
override fun switchCustomization(project: Project, newCustomization: QCustomization?) {
174175
calculateIfIamIdentityCenterConnection(project) {
175176
val oldCus = connectionIdToActiveCustomizationArn[it.id]
176177
if (oldCus != newCustomization) {
@@ -268,15 +269,15 @@ class DefaultCodeWhispererModelConfigurator : CodeWhispererModelConfigurator, Pe
268269
class CodeWhispererCustomizationState : BaseState() {
269270
@get:Property
270271
@get:MapAnnotation
271-
val connectionIdToActiveCustomizationArn by map<String, CodeWhispererCustomization>()
272+
val connectionIdToActiveCustomizationArn by map<String, QCustomization>()
272273

273274
@get:Property
274275
@get:MapAnnotation
275276
val previousAvailableCustomizations by map<String, MutableList<String>>()
276277
}
277278

278279
data class CustomizationUiItem(
279-
val customization: CodeWhispererCustomization,
280+
val customization: QCustomization,
280281
val isNew: Boolean,
281282
val shouldPrefixAccountId: Boolean,
282283
)
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
// Copyright 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
22
// SPDX-License-Identifier: Apache-2.0
33

4-
package software.aws.toolkits.jetbrains.services.codewhisperer.customization
4+
package software.aws.toolkits.jetbrains.services.amazonq.models
55

6-
data class CodeWhispererCustomization(
6+
data class QCustomization(
77
@JvmField
88
var arn: String = "",
99

0 commit comments

Comments
 (0)