SearchFieldConverter.java
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
package com.azure.search.documents.implementation.converters;
import com.azure.core.util.logging.ClientLogger;
import com.azure.search.documents.indexes.models.SearchField;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* A converter between {@link com.azure.search.documents.indexes.implementation.models.SearchField} and {@link SearchField}.
*/
public final class SearchFieldConverter {
private static final ClientLogger LOGGER =
new ClientLogger(com.azure.search.documents.implementation.converters.SearchFieldConverter.class);
/**
* Maps from {@link com.azure.search.documents.indexes.implementation.models.SearchField} to {@link SearchField}.
*/
public static SearchField map(com.azure.search.documents.indexes.implementation.models.SearchField obj) {
if (obj == null) {
return null;
}
SearchField searchField = new SearchField(obj.getName(), obj.getType());
Boolean filterable = obj.isFilterable();
searchField.setFilterable(filterable);
Boolean hidden = obj.isRetrievable() == null ? null : !obj.isRetrievable();
searchField.setHidden(hidden);
Boolean sortable = obj.isSortable();
searchField.setSortable(sortable);
Boolean searchable = obj.isSearchable();
searchField.setSearchable(searchable);
if (obj.getAnalyzer() != null) {
searchField.setAnalyzerName(obj.getAnalyzer());
}
if (obj.getSearchAnalyzer() != null) {
searchField.setSearchAnalyzerName(obj.getSearchAnalyzer());
}
if (obj.getIndexAnalyzer() != null) {
searchField.setIndexAnalyzerName(obj.getIndexAnalyzer());
}
Boolean facetable = obj.isFacetable();
searchField.setFacetable(facetable);
if (obj.getSynonymMaps() != null) {
List<String> synonymMaps = new ArrayList<>(obj.getSynonymMaps());
searchField.setSynonymMapNames(synonymMaps);
}
if (obj.getFields() != null) {
List<SearchField> fields =
obj.getFields().stream().map(com.azure.search.documents.implementation.converters.SearchFieldConverter::map).collect(Collectors.toList());
searchField.setFields(fields);
}
Boolean key = obj.isKey();
searchField.setKey(key);
return searchField;
}
/**
* Maps from {@link SearchField} to {@link com.azure.search.documents.indexes.implementation.models.SearchField}.
*/
public static com.azure.search.documents.indexes.implementation.models.SearchField map(SearchField obj) {
if (obj == null) {
return null;
}
com.azure.search.documents.indexes.implementation.models.SearchField searchField =
new com.azure.search.documents.indexes.implementation.models.SearchField(obj.getName(), obj.getType());
Boolean filterable = obj.isFilterable();
searchField.setFilterable(filterable);
Boolean hidden = obj.isHidden() == null ? null : !obj.isHidden();
searchField.setRetrievable(hidden);
Boolean sortable = obj.isSortable();
searchField.setSortable(sortable);
Boolean searchable = obj.isSearchable();
searchField.setSearchable(searchable);
if (obj.getAnalyzerName() != null) {
searchField.setAnalyzer(obj.getAnalyzerName());
}
if (obj.getSearchAnalyzerName() != null) {
searchField.setSearchAnalyzer(obj.getSearchAnalyzerName());
}
if (obj.getIndexAnalyzerName() != null) {
searchField.setIndexAnalyzer(obj.getIndexAnalyzerName());
}
Boolean facetable = obj.isFacetable();
searchField.setFacetable(facetable);
if (obj.getSynonymMapNames() != null) {
List<String> synonymMaps = new ArrayList<>(obj.getSynonymMapNames());
searchField.setSynonymMaps(synonymMaps);
}
if (obj.getFields() != null) {
List<com.azure.search.documents.indexes.implementation.models.SearchField> fields =
obj.getFields().stream().map(com.azure.search.documents.implementation.converters.SearchFieldConverter::map).collect(Collectors.toList());
searchField.setFields(fields);
}
Boolean key = obj.isKey();
searchField.setKey(key);
return searchField;
}
private SearchFieldConverter() {
}
}