SearchIndexConverter.java
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
package com.azure.search.documents.implementation.converters;
import com.azure.search.documents.indexes.models.CharFilter;
import com.azure.search.documents.indexes.models.LexicalAnalyzer;
import com.azure.search.documents.indexes.models.LexicalTokenizer;
import com.azure.search.documents.indexes.models.ScoringProfile;
import com.azure.search.documents.indexes.models.SearchField;
import com.azure.search.documents.indexes.models.SearchIndex;
import com.azure.search.documents.indexes.models.SearchResourceEncryptionKey;
import com.azure.search.documents.indexes.models.SearchSuggester;
import com.azure.search.documents.indexes.models.SimilarityAlgorithm;
import com.azure.search.documents.indexes.models.TokenFilter;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* A converter between {@link com.azure.search.documents.indexes.implementation.models.SearchIndex} and {@link SearchIndex}.
*/
public final class SearchIndexConverter {
/**
* Maps from {@link com.azure.search.documents.indexes.implementation.models.SearchIndex} to {@link SearchIndex}.
*/
public static SearchIndex map(com.azure.search.documents.indexes.implementation.models.SearchIndex obj) {
if (obj == null) {
return null;
}
List<SearchField> fields = obj.getFields() == null ? null
: obj.getFields().stream().map(SearchFieldConverter::map).collect(Collectors.toList());
SearchIndex searchIndex = new SearchIndex(obj.getName(), fields);
if (obj.getTokenizers() != null) {
List<LexicalTokenizer> tokenizers =
obj.getTokenizers().stream().map(LexicalTokenizerConverter::map).collect(Collectors.toList());
searchIndex.setTokenizers(tokenizers);
}
if (obj.getSuggesters() != null) {
List<SearchSuggester> searchSuggesters =
obj.getSuggesters().stream().map(SuggesterConverter::map).collect(Collectors.toList());
searchIndex.setSuggesters(searchSuggesters);
}
if (obj.getCharFilters() != null) {
List<CharFilter> charFilters =
obj.getCharFilters().stream().map(CharFilterConverter::map).collect(Collectors.toList());
searchIndex.setCharFilters(charFilters);
}
if (obj.getTokenFilters() != null) {
List<TokenFilter> tokenFilters =
obj.getTokenFilters().stream().map(TokenFilterConverter::map).collect(Collectors.toList());
searchIndex.setTokenFilters(tokenFilters);
}
if (obj.getEncryptionKey() != null) {
SearchResourceEncryptionKey encryptionKey =
SearchResourceEncryptionKeyConverter.map(obj.getEncryptionKey());
searchIndex.setEncryptionKey(encryptionKey);
}
String defaultScoringProfile = obj.getDefaultScoringProfile();
searchIndex.setDefaultScoringProfile(defaultScoringProfile);
if (obj.getAnalyzers() != null) {
List<LexicalAnalyzer> analyzers =
obj.getAnalyzers().stream().map(LexicalAnalyzerConverter::map).collect(Collectors.toList());
searchIndex.setAnalyzers(analyzers);
}
if (obj.getSimilarity() != null) {
SimilarityAlgorithm similarityAlgorithm = SimilarityConverter.map(obj.getSimilarity());
searchIndex.setSimilarity(similarityAlgorithm);
}
if (obj.getCorsOptions() != null) {
searchIndex.setCorsOptions(obj.getCorsOptions());
}
String eTag = obj.getETag();
searchIndex.setETag(eTag);
if (obj.getScoringProfiles() != null) {
List<ScoringProfile> scoringProfiles =
obj.getScoringProfiles().stream().map(ScoringProfileConverter::map).collect(Collectors.toList());
searchIndex.setScoringProfiles(scoringProfiles);
}
return searchIndex;
}
/**
* Maps from {@link SearchIndex} to {@link com.azure.search.documents.indexes.implementation.models.SearchIndex}.
*/
public static com.azure.search.documents.indexes.implementation.models.SearchIndex map(SearchIndex obj) {
if (obj == null) {
return null;
}
Objects.requireNonNull(obj.getName(), "The SearchIndex name cannot be null");
List<com.azure.search.documents.indexes.implementation.models.SearchField> fields = obj.getFields() == null ?
null : obj.getFields().stream().map(SearchFieldConverter::map).collect(Collectors.toList());
com.azure.search.documents.indexes.implementation.models.SearchIndex searchIndex =
new com.azure.search.documents.indexes.implementation.models.SearchIndex()
.setName(obj.getName())
.setFields(fields);
if (obj.getTokenizers() != null) {
List<com.azure.search.documents.indexes.implementation.models.LexicalTokenizer> tokenizers =
obj.getTokenizers().stream().map(LexicalTokenizerConverter::map).collect(Collectors.toList());
searchIndex.setTokenizers(tokenizers);
}
if (obj.getSuggesters() != null) {
List<com.azure.search.documents.indexes.implementation.models.Suggester> suggesters =
obj.getSuggesters().stream().map(SuggesterConverter::map).collect(Collectors.toList());
searchIndex.setSuggesters(suggesters);
}
if (obj.getCharFilters() != null) {
List<com.azure.search.documents.indexes.implementation.models.CharFilter> charFilters =
obj.getCharFilters().stream().map(CharFilterConverter::map).collect(Collectors.toList());
searchIndex.setCharFilters(charFilters);
}
if (obj.getTokenFilters() != null) {
List<com.azure.search.documents.indexes.implementation.models.TokenFilter> tokenFilters =
obj.getTokenFilters().stream().map(TokenFilterConverter::map).collect(Collectors.toList());
searchIndex.setTokenFilters(tokenFilters);
}
if (obj.getEncryptionKey() != null) {
com.azure.search.documents.indexes.implementation.models.SearchResourceEncryptionKey encryptionKey =
SearchResourceEncryptionKeyConverter.map(obj.getEncryptionKey());
searchIndex.setEncryptionKey(encryptionKey);
}
String defaultScoringProfile = obj.getDefaultScoringProfile();
searchIndex.setDefaultScoringProfile(defaultScoringProfile);
if (obj.getAnalyzers() != null) {
List<com.azure.search.documents.indexes.implementation.models.LexicalAnalyzer> analyzers =
obj.getAnalyzers().stream().map(LexicalAnalyzerConverter::map).collect(Collectors.toList());
searchIndex.setAnalyzers(analyzers);
}
if (obj.getSimilarity() != null) {
com.azure.search.documents.indexes.implementation.models.Similarity similarity =
SimilarityConverter.map(obj.getSimilarity());
searchIndex.setSimilarity(similarity);
}
if (obj.getCorsOptions() != null) {
searchIndex.setCorsOptions(obj.getCorsOptions());
}
String eTag = obj.getETag();
searchIndex.setETag(eTag);
if (obj.getScoringProfiles() != null) {
List<com.azure.search.documents.indexes.implementation.models.ScoringProfile> scoringProfiles =
obj.getScoringProfiles().stream().map(ScoringProfileConverter::map).collect(Collectors.toList());
searchIndex.setScoringProfiles(scoringProfiles);
}
return searchIndex;
}
private SearchIndexConverter() {
}
}