All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.oliviercailloux.grade.format.json.JsonMapAdapter Maven / Gradle / Ivy

The newest version!
package io.github.oliviercailloux.grade.format.json;

import com.google.common.collect.ImmutableMap;
import io.github.oliviercailloux.grade.Criterion;
import jakarta.json.bind.JsonbException;
import jakarta.json.bind.adapter.JsonbAdapter;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class JsonMapAdapter implements JsonbAdapter, Map> {
  @SuppressWarnings("unused")
  private static final Logger LOGGER = LoggerFactory.getLogger(JsonMapAdapter.class);

  public static  Map toStringKeys(Map criterion) {
    return criterion.keySet().stream()
        .collect(ImmutableMap.toImmutableMap(Criterion::getName, criterion::get));
  }

  public static  Map toCriterionKeys(Map str) {
    return str.keySet().stream().collect(ImmutableMap.toImmutableMap(Criterion::given, str::get));
  }

  @Override
  public Map adaptToJson(Map criterion) {
    return toStringKeys(criterion);
  }

  @Override
  public Map adaptFromJson(Map str) throws JsonbException {
    return toCriterionKeys(str);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy