
com.mnubo.java.sdk.client.services.SearchSDKServices Maven / Gradle / Ivy
package com.mnubo.java.sdk.client.services;
import static com.mnubo.java.sdk.client.utils.Convert.toResultValueList;
import static com.mnubo.java.sdk.client.utils.ValidationUtils.validNotNull;
import java.util.ArrayList;
import java.util.List;
import com.mnubo.java.sdk.client.models.DataSet;
import com.mnubo.java.sdk.client.models.result.ResultSet;
import com.mnubo.java.sdk.client.models.result.Row;
import com.mnubo.java.sdk.client.models.result.SearchResult;
import com.mnubo.java.sdk.client.models.result.SearchResult.Column;
import com.mnubo.java.sdk.client.models.result.SearchResultSet;
import com.mnubo.java.sdk.client.models.result.SearchRow;
import com.mnubo.java.sdk.client.spi.SearchSDK;
class SearchSDKServices implements SearchSDK {
public static final String BASIC_SEARCH_PATH = "/search/basic";
public static final String DATASETS_SEARCH_PATH = "/search/datasets";
private final SDKService sdkCommonServices;
SearchSDKServices(SDKService sdkCommonServices) {
this.sdkCommonServices = sdkCommonServices;
}
public SDKService getSdkCommonServices() {
return sdkCommonServices;
}
@Override
public ResultSet search(String query) {
// url
final String url = sdkCommonServices.getRestitutionBaseUri().path(BASIC_SEARCH_PATH).build().toString();
validNotNull(query, "Query body");
// posting
SearchResult searchResult = sdkCommonServices.postRequest(url, SearchResult.class, query);
if(searchResult == null) {
return null;
}
return new SearchResultSet(extractDefinitions(searchResult), extractRows(searchResult));
}
@Override
public List getDatasets() {
// url
final String url = sdkCommonServices.getRestitutionBaseUri().path(DATASETS_SEARCH_PATH).build().toString();
// posting
return sdkCommonServices.getRequest(url, List.class);
}
private static List extractDefinitions(SearchResult result){
List columnDefinitions = new ArrayList<>();
for( Column column: result.getColumns()) {
columnDefinitions.add(new ResultSet.ColumnDefinition(column.getLabel(), column.getType()));
}
return columnDefinitions;
}
private static List extractRows(SearchResult result){
List rows = new ArrayList<>();
List columnDefinitions = new ArrayList<>();
for (Column column : result.getColumns()) {
columnDefinitions.add(new ResultSet.ColumnDefinition(column.getLabel(), column.getType()));
}
for (List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy