Skip to content

JAXB2 Setters Plugin

Laurent Schoelens edited this page Aug 25, 2023 · 1 revision

By default, XJC does not generate setters for collection. JAXB2 Setters Plugin generates missing setters.

Usage

  • Add JAXB2 Basics to your build.
  • The plugin is activated by the -Xsetters command line option.

You can also use the -Xsetters-mode=accessor or -Xsetters-mode=direct options to configure the generation modes.

Setter generation modes

The plugin supports two setter generation modes: accessor and direct.

The accessor mode relies on JAXB XJC style of setter generation, the direct mode assigns the provided value directly to the field. The following code snippets demonstrate the difference between these modes:

// accessor mode  
public void setStrings(List<String> value) {
    this.strings = null;
    List<String> draftStrings = this.getStrings();
    draftStrings.addAll(value);
}
// direct mode
public void setStrings(List<String> value) {
    this.strings = value;
}

The accessor mode will be kept default for backwards compatibility reasons. So you'll have to add the following options if you want to generate setters in the direct style:

-Xsetters
-Xsetters-mode=direct

The defaulting may be changed in one of the next major version.

Clone this wiki locally