Anwendungsdefiniertes Binding

Man kann in der Anwendung eigenes Binding definieren und mithilfe an der strukturwertigen Property annotieren:

@Binding(MyDataBinding.class)
MyData getMyData();

public class MyDataBinding extends AbstractConfigurationValueBinding<MyData> {

  public static final MyDataBinding INSTANCE = new MyDataBinding();

  private MyDataBinding() {
    // Singleton constructor.
  }

  @Override
  public MyData loadConfigItem(XMLStreamReader in, MyData baseValue) throws XMLStreamException, ConfigurationException {
    MyData data = ...;
    data.read(in);
    return data;
  }

  @Override
  public void saveConfigItem(XMLStreamWriter out, MyData data) throws XMLStreamException {
    data.write(out);
  }
}

Beim Implementieren der Methoden zum Parsen/Serialisieren des anwendungsdefinierten Typs (MyData im Beispiel) sind die statischen Methoden der XMLStreamUtil sehr hilfreich.