
io.katharsis.legacy.queryParams.DefaultQueryParamsSerializer Maven / Gradle / Ivy
The newest version!
package io.katharsis.legacy.queryParams;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import io.katharsis.legacy.queryParams.include.Inclusion;
import io.katharsis.legacy.queryParams.params.FilterParams;
import io.katharsis.legacy.queryParams.params.IncludedFieldsParams;
import io.katharsis.legacy.queryParams.params.IncludedRelationsParams;
import io.katharsis.legacy.queryParams.params.SortingParams;
import io.katharsis.legacy.queryParams.params.TypedParams;
import io.katharsis.resource.RestrictedQueryParamsMembers;
/**
* @deprecated make use of QuerySpec
*/
@Deprecated
public class DefaultQueryParamsSerializer implements QueryParamsSerializer {
@Override
public Map> serializeFilters(QueryParams queryParams) {
Map> map = new HashMap<>();
TypedParams filters = queryParams.getFilters();
if (filters != null) {
Map filterParamsMap = filters.getParams();
for (Map.Entry entry : filterParamsMap.entrySet()) {
String type = entry.getKey();
Map> params = entry.getValue().getParams();
for (Map.Entry> param : params.entrySet()) {
String paramName = RestrictedQueryParamsMembers.filter.name() + "[" + type + "]" + serializeKey(param.getKey());
map.put(paramName, param.getValue());
}
}
}
return map;
}
private String serializeKey(String key) {
return "[" + key.replace(".", "][") + "]";
}
@Override
public Map serializeSorting(QueryParams queryParams) {
Map map = new HashMap<>();
TypedParams sorting = queryParams.getSorting();
if (sorting != null) {
Map sortingParamsMap = sorting.getParams();
for (Map.Entry entry : sortingParamsMap.entrySet()) {
String type = entry.getKey();
Map params = entry.getValue().getParams();
for (Entry param : params.entrySet()) {
String paramName = RestrictedQueryParamsMembers.sort.name() + "[" + type + "][" + param.getKey() + "]";
map.put(paramName, param.getValue().toString());
}
}
}
return map;
}
@Override
public Map> serializeIncludedFields(QueryParams queryParams) {
Map> map = new HashMap<>();
TypedParams includedFields = queryParams.getIncludedFields();
if (includedFields != null) {
Map includedFieldsParamsMap = includedFields.getParams();
for (Entry entry : includedFieldsParamsMap.entrySet()) {
String type = entry.getKey();
Set values = entry.getValue().getParams();
String paramName = RestrictedQueryParamsMembers.fields.name() + "[" + type + "]";
map.put(paramName, values);
}
}
return map;
}
@Override
public Map> serializeIncludedRelations(QueryParams queryParams) {
Map> map = new HashMap<>();
TypedParams includedRelations = queryParams.getIncludedRelations();
if (includedRelations != null) {
Map includedRelationsParamsMap = includedRelations.getParams();
for (Entry entry : includedRelationsParamsMap.entrySet()) {
String type = entry.getKey();
Set inclusions = entry.getValue().getParams();
Set strInclusions = new HashSet<>();
for (Inclusion inclusion : inclusions) {
strInclusions.add(inclusion.getPath());
}
String paramName = RestrictedQueryParamsMembers.include.name() + "[" + type + "]";
map.put(paramName, strInclusions);
}
}
return map;
}
@Override
public Map serializePagination(QueryParams queryParams) {
Map map = new HashMap<>();
Map pagination = queryParams.getPagination();
if (pagination != null) {
for (Entry entry : pagination.entrySet()) {
String paramName = RestrictedQueryParamsMembers.page.name() + "[" + entry.getKey().name() + "]";
map.put(paramName, entry.getValue().toString());
}
}
return map;
}
@Override
public Map> serializeGrouping(QueryParams queryParams) {
// not supported so far
return new HashMap<>();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy