Подтвердить что ты не робот

Как использовать java.util.Optional набора с jaxb

У меня возникают проблемы с адаптацией Optional которая содержит Set.

Первоначально у нас был Set внутри класса, который должен был быть привязан к XML как таковой:

@XmlElementWrapper(name = "items")
@XmlElement(name = "item")
public Set<Item> getItems()
{
    return items;
}

Мы создаем схему из наших классов во время сборки maven. Однако это требование изменилось, и теперь Set теперь должен быть завернут в Optional но нам все равно нужна схема вывода, чтобы оставаться прежней.

@XmlElementWrapper(name = "items")
@XmlElement(name = "item")
@XmlJavaTypeAdapter(value = OptionalAdapter.class)
public Optional<Set<Item>> getItem()
{
    return items;
}

После упаковки набора как такового я создал xml-адаптер:

public class OptionalAdapter extends XmlAdapter<Set<Item>,Optional<Set<Item>>>
{
    @Override
     public Optional<Set<Item>> unmarshal(final Set<Item> v) throws Exception
     {
        return Optional.ofNullable(v);
     }

     @Override
     public Set<Item> marshal(final Optional<Set<Item>> v) throws Exception
     {
         return v.orElse(null);
     }

 }

После изменения классов schemagen не работает (выход maven равен " null ", насколько я знаю, это известная проблема с помощью schemagen).

Я попытался изменить адаптер для использования коллекции и удалить аннотацию XmlElementWrapper из опционального, но не повезло. Мне было интересно, есть ли что-то еще, что нужно позаботиться, чтобы это правильно сгенерировало схему (и маршал/немаршал)?

Большое спасибо

4b9b3361