Module gg.xp.xivapi

Interface FieldMapper<X>

Type Parameters:
X -
All Known Implementing Classes:
ArrayFieldMapper, AutoValueMapper, BasicValueMapper, FlatFieldMapper, LangValueFieldMapper, ListFieldMapper, MapFieldMapper, MetaFieldMapper, NormalFieldMapper, ObjectFieldMapper, StructFieldMapper, ThisFieldMapper, TransientFieldMapper

public interface FieldMapper<X>
Interface for a Xivapi JSON to POJO converter.

These are meant to be chained together to achieve a complex mapping.

Generally, the top-level JSON and top-level return type are fed into ObjectFieldMapper. This looks at the provided interface and picks out fields from that.

Each of these fields is then sent to something in the gg.xp.xivapi.mappers.getters package. These are responsible solely for pulling out the actual field. For example, NormalFieldMapper is for normal fields, while MetaFieldMapper is for the 'value' and 'row_id' types of fields.

Then, it is delegated to AutoValueMapper, which determines how to map that specific field. If it is a primitive value, it uses BasicValueMapper. Otherwise, it calls another mapper. For example, if it is a nested sheet object, then it will use another ObjectFieldMapper, and the process recurses until it is complete.

  • Method Details

    • getValue

      X getValue(com.fasterxml.jackson.databind.JsonNode current, XivApiContext context)
    • buildQueryFields

      void buildQueryFields(QueryFieldsBuilder parent)