package io.github.ibuildthecloud.gdapi.json;
import io.github.ibuildthecloud.gdapi.model.Resource;
import io.github.ibuildthecloud.gdapi.model.SchemaCollection;
import io.github.ibuildthecloud.gdapi.model.impl.SchemaImpl;
import java.net.URL;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
public class ActionLinksMapper extends JacksonMapper {
ObjectMapper mapper;
boolean escapeForwardSlashes;
public ActionLinksMapper() {
init();
}
@Override
protected SimpleModule getModule() {
SimpleModule module = new SimpleModule();
module.setMixInAnnotation(Resource.class, ResourceMix.class);
module.setMixInAnnotation(SchemaCollection.class, SchemaCollectionMixin.class);
module.setMixInAnnotation(SchemaImpl.class, SchemaImplMixin.class);
return module;
}
public static interface ResourceMix {
@JsonAnyGetter
Map<String, Object> getFields();
@JsonProperty("actionLinks")
Map<String, URL> getActions();
}
}