Мне нужен конвертер для моего класса.
class Scope {
private final String name;
private final SomeProp prop;
private final Item[] items;
//...
}
Я зарегистрировал свой конвертер для SomeProp. Но я хочу использовать конвертер по умолчанию для Item (и всех подклассов).
Как я могу это сделать?
Я пытался переопределить маршал / демаршал:
public void marshal(Object val, HierarchicalStreamWriter writer,
MarshallingContext context) {
//... saving name and prop
writer.startNode("items");
ArrayConverter conv = new ArrayConverter(mapper);
assert(conv.canConvert(items.members.getClass()));
conv.marshal(items.members, writer, context);
writer.endNode);
}
public Object unmarshal(HierarchicalStreamReader reader,
UnmarshallingContext context) {
//... reading name and prop
reader.moveDown();
assert("items".equals(reader.getNodeName()));
ArrayConverter conv = new ArrayConverter(mapper);
Item[] items = (Item[])conv.unmarshal(reader, context);
//...
}
но по какой-то причине не работает маршал.