private AnalyzeActionsResult toAnalyzeActionsResultLanguageApi()

in sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/AnalyzeActionsUtilClient.java [1054:1305]


    private AnalyzeActionsResult toAnalyzeActionsResultLanguageApi(AnalyzeTextJobState analyzeJobState) {
        final TasksStateTasks tasksStateTasks = analyzeJobState.getTasks();
        final List<AnalyzeTextLROResult> tasksResults = tasksStateTasks.getItems();

        final List<RecognizeEntitiesActionResult> recognizeEntitiesActionResults = new ArrayList<>();
        final List<RecognizePiiEntitiesActionResult> recognizePiiEntitiesActionResults = new ArrayList<>();
        final List<ExtractKeyPhrasesActionResult> extractKeyPhrasesActionResults = new ArrayList<>();
        final List<RecognizeLinkedEntitiesActionResult> recognizeLinkedEntitiesActionResults = new ArrayList<>();
        final List<AnalyzeHealthcareEntitiesActionResult> analyzeHealthcareEntitiesActionResults = new ArrayList<>();
        final List<AnalyzeSentimentActionResult> analyzeSentimentActionResults = new ArrayList<>();
        final List<RecognizeCustomEntitiesActionResult> recognizeCustomEntitiesActionResults = new ArrayList<>();
        final List<SingleLabelClassifyActionResult> singleLabelClassifyActionResults = new ArrayList<>();
        final List<MultiLabelClassifyActionResult> multiLabelClassifyActionResults = new ArrayList<>();
        final List<AbstractiveSummaryActionResult> abstractiveSummaryActionResults = new ArrayList<>();
        final List<ExtractiveSummaryActionResult> extractiveSummaryActionResults = new ArrayList<>();

        if (!CoreUtils.isNullOrEmpty(tasksResults)) {
            for (int i = 0; i < tasksResults.size(); i++) {
                final AnalyzeTextLROResult taskResult = tasksResults.get(i);
                if (taskResult instanceof EntityRecognitionLROResult) {
                    final EntityRecognitionLROResult entityTaskResult = (EntityRecognitionLROResult) taskResult;
                    final RecognizeEntitiesActionResult actionResult = new RecognizeEntitiesActionResult();
                    final EntitiesResult results = entityTaskResult.getResults();
                    if (results != null) {
                        RecognizeEntitiesActionResultPropertiesHelper.setDocumentsResults(actionResult,
                            Utility.toRecognizeEntitiesResultCollection(results));
                    }
                    TextAnalyticsActionResultPropertiesHelper.setActionName(actionResult,
                        entityTaskResult.getTaskName());
                    TextAnalyticsActionResultPropertiesHelper.setCompletedAt(actionResult,
                        entityTaskResult.getLastUpdateDateTime());
                    recognizeEntitiesActionResults.add(actionResult);

                } else if (taskResult instanceof CustomEntityRecognitionLROResult) {
                    final CustomEntityRecognitionLROResult customEntityTaskResult
                        = (CustomEntityRecognitionLROResult) taskResult;
                    final RecognizeCustomEntitiesActionResult actionResult = new RecognizeCustomEntitiesActionResult();
                    final CustomEntitiesResult results = customEntityTaskResult.getResults();
                    if (results != null) {
                        RecognizeCustomEntitiesActionResultPropertiesHelper.setDocumentsResults(actionResult,
                            toRecognizeCustomEntitiesResultCollection(results));
                    }
                    TextAnalyticsActionResultPropertiesHelper.setActionName(actionResult,
                        customEntityTaskResult.getTaskName());
                    TextAnalyticsActionResultPropertiesHelper.setCompletedAt(actionResult,
                        customEntityTaskResult.getLastUpdateDateTime());
                    recognizeCustomEntitiesActionResults.add(actionResult);
                } else if (taskResult instanceof CustomSingleLabelClassificationLROResult) {
                    final CustomSingleLabelClassificationLROResult customSingleLabelClassificationResult
                        = (CustomSingleLabelClassificationLROResult) taskResult;
                    final SingleLabelClassifyActionResult actionResult = new SingleLabelClassifyActionResult();
                    final CustomLabelClassificationResult results = customSingleLabelClassificationResult.getResults();
                    if (results != null) {
                        SingleLabelClassifyActionResultPropertiesHelper.setDocumentsResults(actionResult,
                            toLabelClassificationResultCollection(results));
                    }
                    TextAnalyticsActionResultPropertiesHelper.setActionName(actionResult,
                        customSingleLabelClassificationResult.getTaskName());
                    TextAnalyticsActionResultPropertiesHelper.setCompletedAt(actionResult,
                        customSingleLabelClassificationResult.getLastUpdateDateTime());
                    singleLabelClassifyActionResults.add(actionResult);
                } else if (taskResult instanceof CustomMultiLabelClassificationLROResult) {
                    final CustomMultiLabelClassificationLROResult customMultiLabelClassificationLROResult
                        = (CustomMultiLabelClassificationLROResult) taskResult;
                    final MultiLabelClassifyActionResult actionResult = new MultiLabelClassifyActionResult();
                    final CustomLabelClassificationResult results
                        = customMultiLabelClassificationLROResult.getResults();
                    if (results != null) {
                        MultiLabelClassifyActionResultPropertiesHelper.setDocumentsResults(actionResult,
                            toLabelClassificationResultCollection(results));
                    }
                    TextAnalyticsActionResultPropertiesHelper.setActionName(actionResult,
                        customMultiLabelClassificationLROResult.getTaskName());
                    TextAnalyticsActionResultPropertiesHelper.setCompletedAt(actionResult,
                        customMultiLabelClassificationLROResult.getLastUpdateDateTime());
                    multiLabelClassifyActionResults.add(actionResult);
                } else if (taskResult instanceof EntityLinkingLROResult) {
                    final EntityLinkingLROResult entityLinkingLROResult = (EntityLinkingLROResult) taskResult;
                    final RecognizeLinkedEntitiesActionResult actionResult = new RecognizeLinkedEntitiesActionResult();
                    final EntityLinkingResult results = entityLinkingLROResult.getResults();
                    if (results != null) {
                        RecognizeLinkedEntitiesActionResultPropertiesHelper.setDocumentsResults(actionResult,
                            toRecognizeLinkedEntitiesResultCollection(results));
                    }
                    TextAnalyticsActionResultPropertiesHelper.setActionName(actionResult,
                        entityLinkingLROResult.getTaskName());
                    TextAnalyticsActionResultPropertiesHelper.setCompletedAt(actionResult,
                        entityLinkingLROResult.getLastUpdateDateTime());
                    recognizeLinkedEntitiesActionResults.add(actionResult);
                } else if (taskResult instanceof PiiEntityRecognitionLROResult) {
                    final PiiEntityRecognitionLROResult piiEntityRecognitionLROResult
                        = (PiiEntityRecognitionLROResult) taskResult;
                    final RecognizePiiEntitiesActionResult actionResult = new RecognizePiiEntitiesActionResult();
                    final PiiResult results = piiEntityRecognitionLROResult.getResults();
                    if (results != null) {
                        RecognizePiiEntitiesActionResultPropertiesHelper.setDocumentsResults(actionResult,
                            toRecognizePiiEntitiesResultCollection(results));
                    }
                    TextAnalyticsActionResultPropertiesHelper.setActionName(actionResult,
                        piiEntityRecognitionLROResult.getTaskName());
                    TextAnalyticsActionResultPropertiesHelper.setCompletedAt(actionResult,
                        piiEntityRecognitionLROResult.getLastUpdateDateTime());
                    recognizePiiEntitiesActionResults.add(actionResult);
                } else if (taskResult instanceof HealthcareLROResult) {
                    final HealthcareLROResult healthcareLROResult = (HealthcareLROResult) taskResult;
                    final AnalyzeHealthcareEntitiesActionResult actionResult
                        = new AnalyzeHealthcareEntitiesActionResult();
                    final HealthcareResult results = healthcareLROResult.getResults();
                    if (results != null) {
                        AnalyzeHealthcareEntitiesActionResultPropertiesHelper.setDocumentsResults(actionResult,
                            toAnalyzeHealthcareEntitiesResultCollection(results));
                    }
                    TextAnalyticsActionResultPropertiesHelper.setActionName(actionResult,
                        healthcareLROResult.getTaskName());
                    TextAnalyticsActionResultPropertiesHelper.setCompletedAt(actionResult,
                        healthcareLROResult.getLastUpdateDateTime());
                    analyzeHealthcareEntitiesActionResults.add(actionResult);
                } else if (taskResult instanceof SentimentLROResult) {
                    final SentimentLROResult sentimentLROResult = (SentimentLROResult) taskResult;
                    final AnalyzeSentimentActionResult actionResult = new AnalyzeSentimentActionResult();
                    final SentimentResponse results = sentimentLROResult.getResults();
                    if (results != null) {
                        AnalyzeSentimentActionResultPropertiesHelper.setDocumentsResults(actionResult,
                            toAnalyzeSentimentResultCollection(results));
                    }
                    TextAnalyticsActionResultPropertiesHelper.setActionName(actionResult,
                        sentimentLROResult.getTaskName());
                    TextAnalyticsActionResultPropertiesHelper.setCompletedAt(actionResult,
                        sentimentLROResult.getLastUpdateDateTime());
                    analyzeSentimentActionResults.add(actionResult);
                } else if (taskResult instanceof KeyPhraseExtractionLROResult) {
                    final KeyPhraseExtractionLROResult keyPhraseExtractionLROResult
                        = (KeyPhraseExtractionLROResult) taskResult;
                    final ExtractKeyPhrasesActionResult actionResult = new ExtractKeyPhrasesActionResult();
                    final KeyPhraseResult results = keyPhraseExtractionLROResult.getResults();
                    if (results != null) {
                        ExtractKeyPhrasesActionResultPropertiesHelper.setDocumentsResults(actionResult,
                            toExtractKeyPhrasesResultCollection(results));
                    }
                    TextAnalyticsActionResultPropertiesHelper.setActionName(actionResult,
                        keyPhraseExtractionLROResult.getTaskName());
                    TextAnalyticsActionResultPropertiesHelper.setCompletedAt(actionResult,
                        keyPhraseExtractionLROResult.getLastUpdateDateTime());
                    extractKeyPhrasesActionResults.add(actionResult);
                } else if (taskResult instanceof ExtractiveSummarizationLROResult) {
                    final ExtractiveSummarizationLROResult extractiveSummarizationLROResult
                        = (ExtractiveSummarizationLROResult) taskResult;
                    final ExtractiveSummaryActionResult actionResult = new ExtractiveSummaryActionResult();
                    final ExtractiveSummarizationResult results = extractiveSummarizationLROResult.getResults();
                    if (results != null) {
                        ExtractiveSummaryActionResultPropertiesHelper.setDocumentsResults(actionResult,
                            toExtractiveSummaryResultCollection(results));
                    }
                    TextAnalyticsActionResultPropertiesHelper.setActionName(actionResult,
                        extractiveSummarizationLROResult.getTaskName());
                    TextAnalyticsActionResultPropertiesHelper.setCompletedAt(actionResult,
                        extractiveSummarizationLROResult.getLastUpdateDateTime());
                    extractiveSummaryActionResults.add(actionResult);
                } else if (taskResult instanceof AbstractiveSummarizationLROResult) {
                    final AbstractiveSummarizationLROResult abstractiveSummarizationLROResult
                        = (AbstractiveSummarizationLROResult) taskResult;
                    final AbstractiveSummaryActionResult actionResult = new AbstractiveSummaryActionResult();
                    final AbstractiveSummarizationResult results = abstractiveSummarizationLROResult.getResults();
                    if (results != null) {
                        AbstractiveSummaryActionResultPropertiesHelper.setDocumentsResults(actionResult,
                            toAbstractiveSummaryResultCollection(results));
                    }
                    TextAnalyticsActionResultPropertiesHelper.setActionName(actionResult,
                        abstractiveSummarizationLROResult.getTaskName());
                    TextAnalyticsActionResultPropertiesHelper.setCompletedAt(actionResult,
                        abstractiveSummarizationLROResult.getLastUpdateDateTime());
                    abstractiveSummaryActionResults.add(actionResult);
                } else {
                    throw LOGGER.logExceptionAsError(
                        new RuntimeException("Invalid Long running operation task result: " + taskResult.getClass()));
                }
            }
        }

        //TODO: In Language REST API, there is no such task names. It might be a different way to parse the Error Target
        // https://github.com/Azure/azure-sdk-for-java/issues/28834
        final List<Error> errors = analyzeJobState.getErrors();
        if (!CoreUtils.isNullOrEmpty(errors)) {
            for (Error error : errors) {
                if (error != null) {
                    final String[] targetPair
                        = parseActionErrorTargetLanguageApi(error.getTarget(), error.getMessage());
                    final String taskName = targetPair[0];
                    final Integer taskIndex = Integer.valueOf(targetPair[1]);
                    final TextAnalyticsActionResult actionResult;
                    if (ENTITY_RECOGNITION.equals(taskName)) {
                        actionResult = recognizeEntitiesActionResults.get(taskIndex);
                    } else if (PII_ENTITY_RECOGNITION.equals(taskName)) {
                        actionResult = recognizePiiEntitiesActionResults.get(taskIndex);
                    } else if (KEY_PHRASE_EXTRACTION.equals(taskName)) {
                        actionResult = extractKeyPhrasesActionResults.get(taskIndex);
                    } else if (ENTITY_LINKING.equals(taskName)) {
                        actionResult = recognizeLinkedEntitiesActionResults.get(taskIndex);
                    } else if (SENTIMENT_ANALYSIS.equals(taskName)) {
                        actionResult = analyzeSentimentActionResults.get(taskIndex);
                    } else if (CUSTOM_ENTITY_RECOGNITION.equals(taskName)) {
                        actionResult = recognizeCustomEntitiesActionResults.get(taskIndex);
                    } else if (CUSTOM_SINGLE_LABEL_CLASSIFICATION.equals(taskName)) {
                        actionResult = singleLabelClassifyActionResults.get(taskIndex);
                    } else if (CUSTOM_MULTI_LABEL_CLASSIFICATION.equals(taskName)) {
                        actionResult = multiLabelClassifyActionResults.get(taskIndex);
                    } else if (HEALTHCARE.equals(taskName)) {
                        actionResult = analyzeHealthcareEntitiesActionResults.get(taskIndex);
                    } else if (EXTRACTIVE_SUMMARIZATION.equals(taskName)) {
                        actionResult = extractiveSummaryActionResults.get(taskIndex);
                    } else if (ABSTRACTIVE_SUMMARIZATION.equals(taskName)) {
                        actionResult = abstractiveSummaryActionResults.get(taskIndex);
                    } else {
                        throw LOGGER.logExceptionAsError(
                            new RuntimeException("Invalid task name in target reference, " + taskName));
                    }

                    TextAnalyticsActionResultPropertiesHelper.setIsError(actionResult, true);
                    TextAnalyticsActionResultPropertiesHelper.setError(actionResult,
                        new com.azure.ai.textanalytics.models.TextAnalyticsError(
                            TextAnalyticsErrorCode
                                .fromString(error.getCode() == null ? null : error.getCode().toString()),
                            error.getMessage(), null));
                }
            }
        }

        final AnalyzeActionsResult analyzeActionsResult = new AnalyzeActionsResult();
        AnalyzeActionsResultPropertiesHelper.setRecognizeEntitiesResults(analyzeActionsResult,
            IterableStream.of(recognizeEntitiesActionResults));
        AnalyzeActionsResultPropertiesHelper.setRecognizePiiEntitiesResults(analyzeActionsResult,
            IterableStream.of(recognizePiiEntitiesActionResults));
        AnalyzeActionsResultPropertiesHelper.setAnalyzeHealthcareEntitiesResults(analyzeActionsResult,
            IterableStream.of(analyzeHealthcareEntitiesActionResults));
        AnalyzeActionsResultPropertiesHelper.setExtractKeyPhrasesResults(analyzeActionsResult,
            IterableStream.of(extractKeyPhrasesActionResults));
        AnalyzeActionsResultPropertiesHelper.setRecognizeLinkedEntitiesResults(analyzeActionsResult,
            IterableStream.of(recognizeLinkedEntitiesActionResults));
        AnalyzeActionsResultPropertiesHelper.setAnalyzeSentimentResults(analyzeActionsResult,
            IterableStream.of(analyzeSentimentActionResults));
        AnalyzeActionsResultPropertiesHelper.setRecognizeCustomEntitiesResults(analyzeActionsResult,
            IterableStream.of(recognizeCustomEntitiesActionResults));
        AnalyzeActionsResultPropertiesHelper.setClassifySingleCategoryResults(analyzeActionsResult,
            IterableStream.of(singleLabelClassifyActionResults));
        AnalyzeActionsResultPropertiesHelper.setClassifyMultiCategoryResults(analyzeActionsResult,
            IterableStream.of(multiLabelClassifyActionResults));
        AnalyzeActionsResultPropertiesHelper.setAbstractiveSummaryResults(analyzeActionsResult,
            IterableStream.of(abstractiveSummaryActionResults));
        AnalyzeActionsResultPropertiesHelper.setExtractiveSummaryResults(analyzeActionsResult,
            IterableStream.of(extractiveSummaryActionResults));
        return analyzeActionsResult;
    }