- 
                Notifications
    
You must be signed in to change notification settings  - Fork 103
 
JAXB2 ToString Plugin
        Laurent Schoelens edited this page Nov 13, 2023 
        ·
        2 revisions
      
    Adds reflection-free strategy-based toString(...) methods to the schema-derived classes.
Generated classes will implement the org.jvnet.jaxb2_commons.lang.ToString2 (for JAXB2) or org.jvnet.jaxb.lang.ToString (for JAXB3+) interface which, in addition to toString declares append and appendFields methods. Below is an example:
public class SequenceType implements ToString2 {
    // ...
    public String toString() {
        final ToStringStrategy2 strategy = JAXBToStringStrategy.INSTANCE;
        final StringBuilder buffer = new StringBuilder();
        append(null, buffer, strategy);
        return buffer.toString();
    }
    public StringBuilder append(ObjectLocator locator, StringBuilder buffer, ToStringStrategy2 strategy) {
        strategy.appendStart(locator, this, buffer);
        appendFields(locator, buffer, strategy);
        strategy.appendEnd(locator, this, buffer);
        return buffer;
    }
    public StringBuilder appendFields(ObjectLocator locator, StringBuilder buffer, ToStringStrategy2 strategy) {
        {
            String theA;
            theA = this.getA();
            strategy.appendField(locator, this, "a", buffer, theA, this.isSetA());
        }
        {
            Long theB;
            theB = this.getB();
            strategy.appendField(locator, this, "b", buffer, theB, this.isSetB());
        }
        return buffer;
    }
}- Activate the plugin using the 
-XtoStringswitch. - 
Optionally provide custom strategy class using 
-XtoString-toStringStrategyClass=com.acme.foo.MyToStringStrategy(org.jvnet.jaxb2_commons.lang.JAXBToStringStrategyis used by default for JAXB2,org.jvnet.jaxb.lang.JAXBToStringStrategyis used by default for JAXB3+). 
- Home
 - Migration guide
 - 
JAXB Maven Plugin
- Quick Start
 - 
User Guide
- Basic Usage
 - Specifying What To Compile
 - Referencing Resources in Maven Artifacts
 - Using Catalogs
 - Using Episodes
 - Modular Schema Compilation
 - Controlling the Output
 - Using JAXB Plugins
 - Using a Specific JAXB Version
 - Configuring Extension, Validation and XML Security
 - IDE Integration
 - Miscellaneous
 - Configuring Proxies
 
 - Maven Documentation
 - Configuration Cheat Sheet
 - Common Pitfalls and Problems
 
 - 
JAXB2 Basics Plugins
- Using JAXB2 Basics Plugins
 - JSR-305 Support
 - 
JAXB2 Basics Plugins List
- SimpleEquals Plugin
 - SimpleHashCode Plugin
 - Equals Plugin
 - HashCode Plugin
 - ToString Plugin
 - Copyable Plugin
 - Mergeable Plugin
 - Inheritance Plugin
 - AutoInheritance Plugin
 - Wildcard Plugin
 - Setters Plugin
 - Simplify Plugin
 - EnumValue Plugin
 - JAXBIndex Plugin
 - FixJAXB1058 Plugin
 - Commons Lang Plugin
 - Default Value Plugin
 - Fluent API Plugin
 - Namespace Prefix Plugin
 - Value Constructor Plugin
 - Boolean Getter Plugin
 - CamelCase Plugin
 - XML ElementWrapper Plugin
 - Parent Pointer Plugin
 - Property Listener Injector Plugin
 
 
 - Annox
 - JAXB Annotate Plugin
 - 
HyperJAXB3
- Build System Support
 - Customization Guide
 - Databases
 - Development guide
 - Extension guide
 - FAQ
 - IDE Support
 - Java Persistence
 - JAXB
 - JDK Support
 - Project Templates
 - 
Reference
- Adding vendor-specific annotations
 - Features
 - Integrating Hyperjaxb3 in builds
 - Introduction
 - Making schema-derived classes ready for JPA
 - Adding required properties
 - Applying workarounds for JAXB vs. JPA conflicts
 - Enforcing top-level classes
 - Generating equals and hashCode methods
 - Generating ORM metadata
 - Generating persistence unit descriptor
 - JPA 2 Support
 - Making classes serializable
 - Testing generated mappings
 
 - Reference - single page
 - Related Projects
 - Sample projects
 - Solutions
 - Target Scenarios
 - Test Projects
 - Tutorials
 
 - Best Practices
 - FAQ
 - Sample Projects
 - Support
 - License
 - Distribution