diff --git a/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml b/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml
index 9dccb5286e34..3a101533cd6c 100755
--- a/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml
+++ b/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml
@@ -261,10 +261,6 @@
-
-
-
diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/AnalyzeSentimentAsyncClient.java b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/AnalyzeSentimentAsyncClient.java
index 728c5a73eb09..9399fdbf69f0 100644
--- a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/AnalyzeSentimentAsyncClient.java
+++ b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/AnalyzeSentimentAsyncClient.java
@@ -32,12 +32,13 @@
import java.util.stream.Collectors;
import static com.azure.ai.textanalytics.TextAnalyticsAsyncClient.COGNITIVE_TRACING_NAMESPACE_VALUE;
-import static com.azure.ai.textanalytics.Transforms.toBatchStatistics;
-import static com.azure.ai.textanalytics.Transforms.toTextAnalyticsError;
-import static com.azure.ai.textanalytics.Transforms.toTextDocumentStatistics;
import static com.azure.ai.textanalytics.implementation.Utility.getEmptyErrorIdHttpResponse;
import static com.azure.ai.textanalytics.implementation.Utility.inputDocumentsValidation;
import static com.azure.ai.textanalytics.implementation.Utility.mapToHttpResponseExceptionIfExist;
+import static com.azure.ai.textanalytics.implementation.Utility.toBatchStatistics;
+import static com.azure.ai.textanalytics.implementation.Utility.toMultiLanguageInput;
+import static com.azure.ai.textanalytics.implementation.Utility.toTextAnalyticsError;
+import static com.azure.ai.textanalytics.implementation.Utility.toTextDocumentStatistics;
import static com.azure.core.util.FluxUtil.fluxError;
import static com.azure.core.util.FluxUtil.withContext;
import static com.azure.core.util.tracing.Tracer.AZ_TRACING_NAMESPACE_KEY;
@@ -211,7 +212,7 @@ private AnalyzeSentimentResult convertToAnalyzeSentimentResult(DocumentSentiment
private Mono> getAnalyzedSentimentResponseInPage(
Iterable documents, TextAnalyticsRequestOptions options, Context context) {
return service.sentimentWithResponseAsync(
- new MultiLanguageBatchInput().setDocuments(Transforms.toMultiLanguageInput(documents)),
+ new MultiLanguageBatchInput().setDocuments(toMultiLanguageInput(documents)),
context.addData(AZ_TRACING_NAMESPACE_KEY, COGNITIVE_TRACING_NAMESPACE_VALUE),
options == null ? null : options.getModelVersion(),
options == null ? null : options.isIncludeStatistics())
diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/DetectLanguageAsyncClient.java b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/DetectLanguageAsyncClient.java
index 112345eef2a0..47bb7fada9cb 100644
--- a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/DetectLanguageAsyncClient.java
+++ b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/DetectLanguageAsyncClient.java
@@ -28,12 +28,13 @@
import java.util.stream.Collectors;
import static com.azure.ai.textanalytics.TextAnalyticsAsyncClient.COGNITIVE_TRACING_NAMESPACE_VALUE;
-import static com.azure.ai.textanalytics.Transforms.toBatchStatistics;
-import static com.azure.ai.textanalytics.Transforms.toLanguageInput;
-import static com.azure.ai.textanalytics.Transforms.toTextAnalyticsError;
import static com.azure.ai.textanalytics.implementation.Utility.getEmptyErrorIdHttpResponse;
import static com.azure.ai.textanalytics.implementation.Utility.inputDocumentsValidation;
import static com.azure.ai.textanalytics.implementation.Utility.mapToHttpResponseExceptionIfExist;
+import static com.azure.ai.textanalytics.implementation.Utility.toBatchStatistics;
+import static com.azure.ai.textanalytics.implementation.Utility.toLanguageInput;
+import static com.azure.ai.textanalytics.implementation.Utility.toTextAnalyticsError;
+import static com.azure.ai.textanalytics.implementation.Utility.toTextDocumentStatistics;
import static com.azure.core.util.FluxUtil.fluxError;
import static com.azure.core.util.FluxUtil.withContext;
import static com.azure.core.util.tracing.Tracer.AZ_TRACING_NAMESPACE_KEY;
@@ -121,7 +122,7 @@ private TextAnalyticsPagedResponse toTextAnalyticsPagedRes
detectLanguageResults.add(new DetectLanguageResult(
documentLanguage.getId(),
documentLanguage.getStatistics() == null
- ? null : Transforms.toTextDocumentStatistics(documentLanguage.getStatistics()),
+ ? null : toTextDocumentStatistics(documentLanguage.getStatistics()),
null,
new DetectedLanguage(detectedLanguage.getName(),
detectedLanguage.getIso6391Name(), detectedLanguage.getConfidenceScore(),
diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/ExtractKeyPhraseAsyncClient.java b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/ExtractKeyPhraseAsyncClient.java
index fd0c18cadd4b..8f2cd601f549 100644
--- a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/ExtractKeyPhraseAsyncClient.java
+++ b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/ExtractKeyPhraseAsyncClient.java
@@ -31,14 +31,14 @@
import java.util.stream.Collectors;
import static com.azure.ai.textanalytics.TextAnalyticsAsyncClient.COGNITIVE_TRACING_NAMESPACE_VALUE;
-import static com.azure.ai.textanalytics.Transforms.toBatchStatistics;
-import static com.azure.ai.textanalytics.Transforms.toMultiLanguageInput;
-import static com.azure.ai.textanalytics.Transforms.toTextAnalyticsError;
-import static com.azure.ai.textanalytics.Transforms.toTextAnalyticsException;
-import static com.azure.ai.textanalytics.Transforms.toTextDocumentStatistics;
import static com.azure.ai.textanalytics.implementation.Utility.getEmptyErrorIdHttpResponse;
import static com.azure.ai.textanalytics.implementation.Utility.inputDocumentsValidation;
import static com.azure.ai.textanalytics.implementation.Utility.mapToHttpResponseExceptionIfExist;
+import static com.azure.ai.textanalytics.implementation.Utility.toBatchStatistics;
+import static com.azure.ai.textanalytics.implementation.Utility.toMultiLanguageInput;
+import static com.azure.ai.textanalytics.implementation.Utility.toTextAnalyticsError;
+import static com.azure.ai.textanalytics.implementation.Utility.toTextAnalyticsException;
+import static com.azure.ai.textanalytics.implementation.Utility.toTextDocumentStatistics;
import static com.azure.core.util.FluxUtil.fluxError;
import static com.azure.core.util.FluxUtil.monoError;
import static com.azure.core.util.FluxUtil.withContext;
diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/RecognizeEntityAsyncClient.java b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/RecognizeEntityAsyncClient.java
index 11ebb469ccb7..fa067b430679 100644
--- a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/RecognizeEntityAsyncClient.java
+++ b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/RecognizeEntityAsyncClient.java
@@ -30,14 +30,14 @@
import java.util.stream.Collectors;
import static com.azure.ai.textanalytics.TextAnalyticsAsyncClient.COGNITIVE_TRACING_NAMESPACE_VALUE;
-import static com.azure.ai.textanalytics.Transforms.toBatchStatistics;
-import static com.azure.ai.textanalytics.Transforms.toMultiLanguageInput;
-import static com.azure.ai.textanalytics.Transforms.toTextAnalyticsError;
-import static com.azure.ai.textanalytics.Transforms.toTextAnalyticsException;
-import static com.azure.ai.textanalytics.Transforms.toTextDocumentStatistics;
import static com.azure.ai.textanalytics.implementation.Utility.getEmptyErrorIdHttpResponse;
import static com.azure.ai.textanalytics.implementation.Utility.inputDocumentsValidation;
import static com.azure.ai.textanalytics.implementation.Utility.mapToHttpResponseExceptionIfExist;
+import static com.azure.ai.textanalytics.implementation.Utility.toBatchStatistics;
+import static com.azure.ai.textanalytics.implementation.Utility.toMultiLanguageInput;
+import static com.azure.ai.textanalytics.implementation.Utility.toTextAnalyticsError;
+import static com.azure.ai.textanalytics.implementation.Utility.toTextAnalyticsException;
+import static com.azure.ai.textanalytics.implementation.Utility.toTextDocumentStatistics;
import static com.azure.core.util.FluxUtil.fluxError;
import static com.azure.core.util.FluxUtil.monoError;
import static com.azure.core.util.FluxUtil.withContext;
diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/RecognizeLinkedEntityAsyncClient.java b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/RecognizeLinkedEntityAsyncClient.java
index 4f4b44ba0028..27cb31e266a3 100644
--- a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/RecognizeLinkedEntityAsyncClient.java
+++ b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/RecognizeLinkedEntityAsyncClient.java
@@ -30,13 +30,14 @@
import java.util.stream.Collectors;
import static com.azure.ai.textanalytics.TextAnalyticsAsyncClient.COGNITIVE_TRACING_NAMESPACE_VALUE;
-import static com.azure.ai.textanalytics.Transforms.toBatchStatistics;
-import static com.azure.ai.textanalytics.Transforms.toTextAnalyticsError;
-import static com.azure.ai.textanalytics.Transforms.toTextAnalyticsException;
-import static com.azure.ai.textanalytics.Transforms.toTextDocumentStatistics;
import static com.azure.ai.textanalytics.implementation.Utility.getEmptyErrorIdHttpResponse;
import static com.azure.ai.textanalytics.implementation.Utility.inputDocumentsValidation;
import static com.azure.ai.textanalytics.implementation.Utility.mapToHttpResponseExceptionIfExist;
+import static com.azure.ai.textanalytics.implementation.Utility.toBatchStatistics;
+import static com.azure.ai.textanalytics.implementation.Utility.toMultiLanguageInput;
+import static com.azure.ai.textanalytics.implementation.Utility.toTextAnalyticsError;
+import static com.azure.ai.textanalytics.implementation.Utility.toTextAnalyticsException;
+import static com.azure.ai.textanalytics.implementation.Utility.toTextDocumentStatistics;
import static com.azure.core.util.FluxUtil.fluxError;
import static com.azure.core.util.FluxUtil.monoError;
import static com.azure.core.util.FluxUtil.withContext;
@@ -206,7 +207,7 @@ private IterableStream mapLinkedEntity(
private Mono> getRecognizedLinkedEntitiesResponseInPage(
Iterable documents, TextAnalyticsRequestOptions options, Context context) {
return service.entitiesLinkingWithResponseAsync(
- new MultiLanguageBatchInput().setDocuments(Transforms.toMultiLanguageInput(documents)),
+ new MultiLanguageBatchInput().setDocuments(toMultiLanguageInput(documents)),
context.addData(AZ_TRACING_NAMESPACE_KEY, COGNITIVE_TRACING_NAMESPACE_VALUE),
options == null ? null : options.getModelVersion(),
options == null ? null : options.isIncludeStatistics())
diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClient.java b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClient.java
index e9e24d4f9dda..482eb6858f67 100644
--- a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClient.java
+++ b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClient.java
@@ -32,8 +32,8 @@
import java.util.Collections;
import java.util.Objects;
-import static com.azure.ai.textanalytics.Transforms.mapByIndex;
-import static com.azure.ai.textanalytics.Transforms.toTextAnalyticsException;
+import static com.azure.ai.textanalytics.implementation.Utility.mapByIndex;
+import static com.azure.ai.textanalytics.implementation.Utility.toTextAnalyticsException;
import static com.azure.core.util.FluxUtil.fluxError;
import static com.azure.core.util.FluxUtil.monoError;
diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/Transforms.java b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/Transforms.java
deleted file mode 100644
index b611df351982..000000000000
--- a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/Transforms.java
+++ /dev/null
@@ -1,134 +0,0 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-// Licensed under the MIT License.
-
-package com.azure.ai.textanalytics;
-
-import com.azure.ai.textanalytics.implementation.models.DocumentStatistics;
-import com.azure.ai.textanalytics.implementation.models.LanguageInput;
-import com.azure.ai.textanalytics.implementation.models.MultiLanguageInput;
-import com.azure.ai.textanalytics.implementation.models.RequestStatistics;
-import com.azure.ai.textanalytics.implementation.models.TextAnalyticsError;
-import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics;
-import com.azure.ai.textanalytics.models.TextDocumentStatistics;
-import com.azure.ai.textanalytics.models.DetectLanguageInput;
-import com.azure.ai.textanalytics.models.TextAnalyticsErrorCode;
-import com.azure.ai.textanalytics.models.TextAnalyticsException;
-import com.azure.ai.textanalytics.models.TextDocumentInput;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.function.BiFunction;
-
-/**
- * Helper class to convert service level models to SDK exposes models.
- */
-final class Transforms {
- private Transforms() {
- }
-
- /**
- * Given a list of documents will apply the indexing function to it and return the updated list.
- *
- * @param documents the inputs to apply the mapping function to.
- * @param mappingFunction the function which applies the index to the incoming input value.
- * @param the type of items being returned in the list.
- * @return The list holding all the generic items combined.
- */
- static List mapByIndex(Iterable documents, BiFunction mappingFunction) {
- Objects.requireNonNull(documents, "'documents' cannot be null.");
- AtomicInteger i = new AtomicInteger(0);
- List result = new ArrayList<>();
- documents.forEach(document ->
- result.add(mappingFunction.apply(String.valueOf(i.getAndIncrement()), document))
- );
- return result;
- }
-
- /**
- * Convert {@link DocumentStatistics} to {@link TextDocumentStatistics}
- *
- * @param statistics the {@link DocumentStatistics} provided by the service.
- * @return the {@link TextDocumentStatistics} returned by the SDK.
- */
- static TextDocumentStatistics toTextDocumentStatistics(DocumentStatistics statistics) {
- return new TextDocumentStatistics(statistics.getCharactersCount(), statistics.getTransactionsCount());
- }
-
- /**
- * Convert {@link RequestStatistics} to {@link TextDocumentBatchStatistics}
- *
- * @param statistics the {@link RequestStatistics} provided by the service.
- * @return the {@link TextDocumentBatchStatistics} returned by the SDK.
- */
- static TextDocumentBatchStatistics toBatchStatistics(RequestStatistics statistics) {
- return new TextDocumentBatchStatistics(statistics.getDocumentsCount(), statistics.getValidDocumentsCount(),
- statistics.getErroneousDocumentsCount(), statistics.getTransactionsCount());
- }
-
- /**
- * Convert {@link TextAnalyticsError} to {@link com.azure.ai.textanalytics.models.TextAnalyticsError}
- * This function maps the service returned {@link TextAnalyticsError inner error} to the top level
- * {@link com.azure.ai.textanalytics.models.TextAnalyticsError error}, if inner error present.
- *
- * @param textAnalyticsError the {@link TextAnalyticsError} returned by the service.
- * @return the {@link com.azure.ai.textanalytics.models.TextAnalyticsError} returned by the SDK.
- */
- static com.azure.ai.textanalytics.models.TextAnalyticsError toTextAnalyticsError(
- TextAnalyticsError textAnalyticsError) {
- if (textAnalyticsError.getInnererror() == null) {
- return new com.azure.ai.textanalytics.models.TextAnalyticsError(
- TextAnalyticsErrorCode.fromString(textAnalyticsError.getCode().toString()),
- textAnalyticsError.getMessage(),
- textAnalyticsError.getTarget());
- }
- return new com.azure.ai.textanalytics.models.TextAnalyticsError(
- TextAnalyticsErrorCode.fromString(textAnalyticsError.getInnererror().getCode().toString()),
- textAnalyticsError.getInnererror().getMessage(),
- textAnalyticsError.getInnererror().getTarget());
- }
-
- /**
- * Convert the incoming input {@link TextDocumentInput} to the service expected {@link MultiLanguageInput}.
- *
- * @param documents the user provided input in {@link TextDocumentInput}
- * @return the service required input {@link MultiLanguageInput}
- */
- static List toMultiLanguageInput(Iterable documents) {
- List multiLanguageInputs = new ArrayList<>();
- for (TextDocumentInput textDocumentInput : documents) {
- multiLanguageInputs.add(new MultiLanguageInput().setId(textDocumentInput.getId())
- .setText(textDocumentInput.getText()).setLanguage(textDocumentInput.getLanguage()));
- }
- return multiLanguageInputs;
- }
-
- /**
- * Convert the incoming input {@link com.azure.ai.textanalytics.models.TextAnalyticsError}
- * to a {@link TextAnalyticsException}.
- *
- * @param error the {@link com.azure.ai.textanalytics.models.TextAnalyticsError}.
- * @return the {@link TextAnalyticsException} to be thrown.
- */
- static TextAnalyticsException toTextAnalyticsException(
- com.azure.ai.textanalytics.models.TextAnalyticsError error) {
- return new TextAnalyticsException(error.getMessage(), error.getErrorCode().toString(), error.getTarget());
- }
-
- /**
- * Convert to a list of {@link LanguageInput} from {@link DetectLanguageInput}.
- *
- * @param documents The list of documents to detect languages for.
- *
- * @return a list of {@link LanguageInput}.
- */
- static List toLanguageInput(Iterable documents) {
- final List multiLanguageInputs = new ArrayList<>();
- documents.forEach(textDocumentInput -> multiLanguageInputs.add(new LanguageInput()
- .setId(textDocumentInput.getId())
- .setText(textDocumentInput.getText())
- .setCountryHint(textDocumentInput.getCountryHint())));
- return multiLanguageInputs;
- }
-}
diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/implementation/Utility.java b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/implementation/Utility.java
index 2714e03582d0..a4784c9f8b35 100644
--- a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/implementation/Utility.java
+++ b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/implementation/Utility.java
@@ -3,7 +3,21 @@
package com.azure.ai.textanalytics.implementation;
+import com.azure.ai.textanalytics.implementation.models.DocumentStatistics;
+import com.azure.ai.textanalytics.implementation.models.ErrorCodeValue;
+import com.azure.ai.textanalytics.implementation.models.InnerError;
+import com.azure.ai.textanalytics.implementation.models.InnerErrorCodeValue;
+import com.azure.ai.textanalytics.implementation.models.LanguageInput;
+import com.azure.ai.textanalytics.implementation.models.MultiLanguageInput;
+import com.azure.ai.textanalytics.implementation.models.RequestStatistics;
+import com.azure.ai.textanalytics.implementation.models.TextAnalyticsError;
import com.azure.ai.textanalytics.implementation.models.TextAnalyticsErrorException;
+import com.azure.ai.textanalytics.models.DetectLanguageInput;
+import com.azure.ai.textanalytics.models.TextAnalyticsErrorCode;
+import com.azure.ai.textanalytics.models.TextAnalyticsException;
+import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics;
+import com.azure.ai.textanalytics.models.TextDocumentInput;
+import com.azure.ai.textanalytics.models.TextDocumentStatistics;
import com.azure.core.exception.HttpResponseException;
import com.azure.core.http.HttpHeaders;
import com.azure.core.http.HttpResponse;
@@ -13,8 +27,12 @@
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
+import java.util.ArrayList;
import java.util.Iterator;
+import java.util.List;
import java.util.Objects;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.function.BiFunction;
/**
* Utility method class.
@@ -94,8 +112,120 @@ public Mono getBodyAsString(Charset charset) {
public static Throwable mapToHttpResponseExceptionIfExist(Throwable throwable) {
if (throwable instanceof TextAnalyticsErrorException) {
TextAnalyticsErrorException errorException = (TextAnalyticsErrorException) throwable;
- return new HttpResponseException(errorException.getMessage(), errorException.getResponse());
+ return new HttpResponseException(errorException.getMessage(), errorException.getResponse(),
+ toTextAnalyticsError(errorException.getValue()));
}
return throwable;
}
+
+
+ /**
+ * Given a list of documents will apply the indexing function to it and return the updated list.
+ *
+ * @param documents the inputs to apply the mapping function to.
+ * @param mappingFunction the function which applies the index to the incoming input value.
+ * @param the type of items being returned in the list.
+ * @return The list holding all the generic items combined.
+ */
+ public static List mapByIndex(Iterable documents, BiFunction mappingFunction) {
+ Objects.requireNonNull(documents, "'documents' cannot be null.");
+ AtomicInteger i = new AtomicInteger(0);
+ List result = new ArrayList<>();
+ documents.forEach(document ->
+ result.add(mappingFunction.apply(String.valueOf(i.getAndIncrement()), document))
+ );
+ return result;
+ }
+
+ /**
+ * Convert {@link DocumentStatistics} to {@link TextDocumentStatistics}
+ *
+ * @param statistics the {@link DocumentStatistics} provided by the service.
+ * @return the {@link TextDocumentStatistics} returned by the SDK.
+ */
+ public static TextDocumentStatistics toTextDocumentStatistics(DocumentStatistics statistics) {
+ return new TextDocumentStatistics(statistics.getCharactersCount(), statistics.getTransactionsCount());
+ }
+
+ /**
+ * Convert {@link RequestStatistics} to {@link TextDocumentBatchStatistics}
+ *
+ * @param statistics the {@link RequestStatistics} provided by the service.
+ * @return the {@link TextDocumentBatchStatistics} returned by the SDK.
+ */
+ public static TextDocumentBatchStatistics toBatchStatistics(RequestStatistics statistics) {
+ return new TextDocumentBatchStatistics(statistics.getDocumentsCount(), statistics.getValidDocumentsCount(),
+ statistics.getErroneousDocumentsCount(), statistics.getTransactionsCount());
+ }
+
+ /**
+ * Convert {@link TextAnalyticsError} to {@link com.azure.ai.textanalytics.models.TextAnalyticsError}
+ * This function maps the service returned {@link TextAnalyticsError inner error} to the top level
+ * {@link com.azure.ai.textanalytics.models.TextAnalyticsError error}, if inner error present.
+ *
+ * @param textAnalyticsError the {@link TextAnalyticsError} returned by the service.
+ * @return the {@link com.azure.ai.textanalytics.models.TextAnalyticsError} returned by the SDK.
+ */
+ public static com.azure.ai.textanalytics.models.TextAnalyticsError toTextAnalyticsError(
+ TextAnalyticsError textAnalyticsError) {
+
+ final InnerError innerError = textAnalyticsError.getInnererror();
+
+ if (innerError == null) {
+ final ErrorCodeValue errorCodeValue = textAnalyticsError.getCode();
+ return new com.azure.ai.textanalytics.models.TextAnalyticsError(
+ TextAnalyticsErrorCode.fromString(errorCodeValue == null ? null : errorCodeValue.toString()),
+ textAnalyticsError.getMessage(),
+ textAnalyticsError.getTarget());
+ }
+
+ final InnerErrorCodeValue innerErrorCodeValue = innerError.getCode();
+ return new com.azure.ai.textanalytics.models.TextAnalyticsError(
+ TextAnalyticsErrorCode.fromString(innerErrorCodeValue == null ? null : innerErrorCodeValue.toString()),
+ innerError.getMessage(),
+ innerError.getTarget());
+ }
+
+ /**
+ * Convert the incoming input {@link TextDocumentInput} to the service expected {@link MultiLanguageInput}.
+ *
+ * @param documents the user provided input in {@link TextDocumentInput}
+ * @return the service required input {@link MultiLanguageInput}
+ */
+ public static List toMultiLanguageInput(Iterable documents) {
+ List multiLanguageInputs = new ArrayList<>();
+ for (TextDocumentInput textDocumentInput : documents) {
+ multiLanguageInputs.add(new MultiLanguageInput().setId(textDocumentInput.getId())
+ .setText(textDocumentInput.getText()).setLanguage(textDocumentInput.getLanguage()));
+ }
+ return multiLanguageInputs;
+ }
+
+ /**
+ * Convert the incoming input {@link com.azure.ai.textanalytics.models.TextAnalyticsError}
+ * to a {@link TextAnalyticsException}.
+ *
+ * @param error the {@link com.azure.ai.textanalytics.models.TextAnalyticsError}.
+ * @return the {@link TextAnalyticsException} to be thrown.
+ */
+ public static TextAnalyticsException toTextAnalyticsException(
+ com.azure.ai.textanalytics.models.TextAnalyticsError error) {
+ return new TextAnalyticsException(error.getMessage(), error.getErrorCode().toString(), error.getTarget());
+ }
+
+ /**
+ * Convert to a list of {@link LanguageInput} from {@link DetectLanguageInput}.
+ *
+ * @param documents The list of documents to detect languages for.
+ *
+ * @return a list of {@link LanguageInput}.
+ */
+ public static List toLanguageInput(Iterable documents) {
+ final List multiLanguageInputs = new ArrayList<>();
+ documents.forEach(textDocumentInput -> multiLanguageInputs.add(new LanguageInput()
+ .setId(textDocumentInput.getId())
+ .setText(textDocumentInput.getText())
+ .setCountryHint(textDocumentInput.getCountryHint())));
+ return multiLanguageInputs;
+ }
}