Commit Graph

90 Commits

Author SHA1 Message Date
Jordan Zimmerman
091e9493b6 Support Java Validation API
Option to pass created records through the Java Validation API if it's
available in the classpath. IMPORTANT: when enabled, the record-builder-validator
module must also be included. record-builder-validator is written totally
via reflection so if no validation framework is included it's a NOP.
2021-10-07 08:35:17 +01:00
Jordan Zimmerman
a0c03e88cc Add support for NotNull-style annotations
When enabled, annotations matching the configured regex for NotNull
annotations cause `Object.requireNonNull()` to be added for annotated
components.
2021-10-07 08:35:17 +01:00
Jordan Zimmerman
d9d98e765e Set optional fields to empty by default (#38)
Sets `Optional` fields to `empty()` by default. Adds an option
to control this.

Closes #34
2021-10-07 08:35:17 +01:00
Jordan Zimmerman
5320c8dfa4 Support copying component annotations to builder (#33)
- Enabled via new option `inheritComponentAnnotations` (true by default)
- Canonical constructor parameter annotations are copied to RecordBuilder setters and the static builder
- Record component accessor annotations are copied to RecordBuilder getters
2021-10-07 08:35:17 +01:00
Jordan Zimmerman
5d7bea565f Rework how options are specified (#37)
- Remove `RecordBuilderMetaData`
- Unify how the javac options are handled
- Create `RecordBuilder.Options` to specify options
- Allow creation of custom annotations that bundle options
2021-10-07 08:35:17 +01:00
Jordan Zimmerman
feecc29eea [maven-release-plugin] prepare for next development iteration 2021-10-07 08:35:17 +01:00
Jordan Zimmerman
428d3c0378 [maven-release-plugin] prepare release record-builder-1.19 2021-10-07 08:35:17 +01:00
Jordan Zimmerman
2beafc4803 [maven-release-plugin] rollback the release of record-builder-1.19 2021-03-16 09:49:45 -05:00
Jordan Zimmerman
82b3925618 [maven-release-plugin] prepare release record-builder-1.19 2021-03-16 09:49:32 -05:00
Jordan Zimmerman
ba90e6cdca [maven-release-plugin] prepare for next development iteration 2021-02-04 06:35:37 -05:00
Jordan Zimmerman
07e52035ee [maven-release-plugin] prepare release record-builder-1.18 2021-02-04 06:35:29 -05:00
Jordan Zimmerman
677813e875 [maven-release-plugin] prepare for next development iteration 2021-02-04 06:31:51 -05:00
Jordan Zimmerman
7d877963fb [maven-release-plugin] prepare release record-builder-1.18-java15 2021-02-04 06:31:51 -05:00
Jordan Zimmerman
04e9135591 [maven-release-plugin] prepare for next development iteration 2021-02-01 13:06:44 -05:00
Jordan Zimmerman
b512a6e968 [maven-release-plugin] prepare release record-builder-1.17 2021-02-01 13:06:44 -05:00
Jordan Zimmerman
5a1cd35320 [maven-release-plugin] rollback the release of record-builder-1.17 2021-02-01 13:06:44 -05:00
Jordan Zimmerman
a615e3abb6 [maven-release-plugin] prepare release record-builder-1.17 2021-02-01 13:06:44 -05:00
Jordan Zimmerman
3f8bb47cbf Support alternate artifacts built with Java 15 2021-02-01 13:00:42 -05:00
Jordan Zimmerman
5a8e72f0e9 [maven-release-plugin] prepare for next development iteration 2021-02-01 12:26:07 -05:00
Jordan Zimmerman
44ad4531b6 [maven-release-plugin] prepare release record-builder-1.16 2021-02-01 12:26:07 -05:00
Jordan Zimmerman
7e78d32780 Added support for putting @RecordInterface on Java beans 2021-02-01 12:26:07 -05:00
Jordan Zimmerman
0dc4aa7657 Prep for Java 16 2021-02-01 12:26:07 -05:00
Jordan Zimmerman
b21368f32f Have the consumer version of with() use the other with() to get the builder. This will ensure better testing and is more logical 2021-02-01 12:26:07 -05:00
Jordan Zimmerman
a1206fa57f [maven-release-plugin] prepare for next development iteration 2021-02-01 12:26:07 -05:00
Jordan Zimmerman
b89722ebfe [maven-release-plugin] prepare release record-builder-1.14.ea 2021-02-01 12:26:07 -05:00
Mikaël Barbero
9c8e3626ba Stop relying on toString() to detect package name.
Fix for #15
2020-12-11 18:18:32 +00:00
Jordan Zimmerman
24b85e7ad5 [maven-release-plugin] prepare for next development iteration 2020-11-29 08:27:34 -05:00
Jordan Zimmerman
861e2e745a [maven-release-plugin] prepare release record-builder-1.13.ea 2020-11-29 08:27:25 -05:00
Jordan Zimmerman
1fc7c9a4b3 Make sure the downcast variable name doesn't collide with a record component name 2020-11-28 22:39:00 -05:00
Jordan Zimmerman
570514e077 buildPackageName() can't assume that the immediate enclosing element is the package. It may be a nested class, etc. 2020-11-28 22:38:48 -05:00
Jordan Zimmerman
9d8b9e65bc [maven-release-plugin] prepare for next development iteration 2020-11-28 08:44:33 -05:00
Jordan Zimmerman
93d6204b76 [maven-release-plugin] prepare release record-builder-1.12.ea 2020-11-28 08:44:25 -05:00
Jordan Zimmerman
15e5bfccc6 [maven-release-plugin] rollback the release of record-builder-1.12.ea 2020-11-28 08:42:15 -05:00
Jordan Zimmerman
67c54244c5 [maven-release-plugin] prepare release record-builder-1.12.ea 2020-11-28 08:41:59 -05:00
Jordan Zimmerman
870ac4a9d9 [maven-release-plugin] rollback the release of record-builder-1.12.ea 2020-11-28 08:29:46 -05:00
Jordan Zimmerman
9ee8b5912a [maven-release-plugin] prepare for next development iteration 2020-11-28 08:28:09 -05:00
Jordan Zimmerman
6d9bcf27da [maven-release-plugin] prepare release record-builder-1.12.ea 2020-11-28 08:27:49 -05:00
Jordan Zimmerman
44db5fdf17 Change to 1.12.ea-SNAPSHOT - last release must have missed this 2020-11-28 08:25:10 -05:00
Jordan Zimmerman
90a65235a9 Add support for static constructor
Add a static constructor/builder so it can statically imported. Instead of
calling "new Record(...)" you can call just "Record(...)".
2020-11-28 07:35:34 -05:00
Ted Cassirer
7e8ddbd700 Remove unused variable in RecordBuilder 2020-11-25 09:33:08 -05:00
Ted Cassirer
3a534fbea9 Don't add the allArgsConstructor to the RecordBuilder if record has no fields 2020-11-25 08:53:06 -05:00
Jordan Zimmerman
e0243c8b1c Fixed some typos in previous PR 2020-11-04 10:44:43 -05:00
Jordan Zimmerman
437e314799 Better exception when Wither is set as implementor on non-builder class 2020-11-04 10:36:35 -05:00
Jordan Zimmerman
5b879743ef Added simple module-info. I've never done this before, I hope it's right 2020-11-02 23:37:57 -05:00
Jordan Zimmerman
c7bdafb0b9 Add method to do downcasting 2020-11-02 23:37:57 -05:00
Jordan Zimmerman
54662d69c7 Support Include versions of the annotation 2020-10-05 14:45:34 -05:00
Jordan Zimmerman
610081b27e [maven-release-plugin] prepare for next development iteration 2020-10-05 11:22:40 -05:00
Jordan Zimmerman
1eb91d612e [maven-release-plugin] prepare release record-builder-1.10.ea 2020-10-05 11:22:31 -05:00
Jordan Zimmerman
7c84f26972 Generated record from interface should implement the wither 2020-10-05 11:20:43 -05:00
Jordan Zimmerman
c92bf78ec5 [maven-release-plugin] prepare for next development iteration 2020-10-04 14:48:03 -05:00