Immutable generator for data transfer objects. These are objects that are, or belong on rule
args. These types can be coerced by the parser from python/starlark into java objects.
This style:
- Does not add the Immutable prefix on generated classes
- Strips off the Abstract name prefix when processing the parent interface or abstract class
- Supports isFoo() / getFoo() getters in the parent interface or abstract class
- Supports setFoo() setters in the parent interface or abstract class
- Ensures the generated class is public (even if the parent interface or abstract class is
package private)
- Disable generating with* methods by default, as they cause excessive codegen.