InlineChatResultParams buildResultObject()

in plugin/src/software/aws/toolkits/eclipse/amazonq/inlineChat/InlineChatTask.java [172:211]


    InlineChatResultParams buildResultObject() {
        var userDecision = this.userDecision.get();
        int inputLength = -1;
        double startLatency = -1;
        double endLatency = -1;
        int numSuggestionAddChars = 0;
        int numSuggestionDelChars = 0;

        if (userDecision != UserDecision.DISMISS) {
            inputLength = getPrompt().length();
            startLatency = getFirstTokenTime() - requestTime.get();
            endLatency = lastTokenTime.get() - requestTime.get();
        }
        if (textDiffs != null) {
            numSuggestionAddChars = textDiffs.stream()
                    .filter(diff -> !diff.isDeletion())
                    .mapToInt(TextDiff::length)
                    .sum();
            numSuggestionDelChars = textDiffs.stream()
                    .filter(TextDiff::isDeletion)
                    .mapToInt(TextDiff::length)
                    .sum();
        }

        int numSuggestionDelLines = this.numDeletedLines.get();
        int numSuggestionAddLines = this.numAddedLines.get();

        return new InlineChatResultParams(
                requestId,
                language,
                inputLength,
                numSelectedLines,
                numSuggestionAddChars,
                numSuggestionAddLines,
                numSuggestionDelChars,
                numSuggestionDelLines,
                userDecision,
                startLatency,
                endLatency);
    }