Commit Graph

114 Commits

Author SHA1 Message Date
Jordan Zimmerman
0d2fe2ffe7 Optionally include all records from a list of packages
Closes #67
2021-10-07 08:35:17 +01:00
Jordan Zimmerman
3c8e305002 Use Map.entry() instead of AbstractMap.SimpleEntry
Closes #68
2021-10-07 08:35:17 +01:00
Jordan Zimmerman
76f93039b0 Support options for RecordInterface
- Copy any @RecordBuilder.Options to the generated Record
- Support RecordInterface templates as well

Closes #64
2021-10-07 08:35:17 +01:00
Jordan Zimmerman
5f82af97ae The null check after instanceof Set was unnecessary in the __collection shim 2021-10-07 08:35:17 +01:00
Jordan Zimmerman
26a6141bef [maven-release-plugin] prepare for next development iteration 2021-10-07 08:35:17 +01:00
Jordan Zimmerman
cdd9009fa8 [maven-release-plugin] prepare release record-builder-26 2021-10-07 08:35:17 +01:00
Jordan Zimmerman
0624a6caca [maven-release-plugin] prepare for next development iteration 2021-10-07 08:35:17 +01:00
Jordan Zimmerman
238ef872bf [maven-release-plugin] prepare release record-builder-25-java15 2021-10-07 08:35:17 +01:00
Jordan Zimmerman
ef2a3692d1 Match record visibility
If the builder is in the same package as the record and the record
is package-private, make the builder package-private too.

Closes #52
2021-10-07 08:35:17 +01:00
Jordan Zimmerman
cb9ceb0529 @Override should not be inherited. Also, the inheritComponentAnnotations
option was being ignored.

Closes #57
2021-10-07 08:35:17 +01:00
Jordan Zimmerman
bd8fbeb045 Adds special handling for record components of type java.util.List, java.util.Set, java.util.Map and java.util.Collection. When the record is built, any components of these types are passed through an added shim method that uses the corresponding immutable collection (e.g. List.copyOf(o)) or an empty immutable collection if the component is null.
Closes #56
Closes #58
2021-10-07 08:35:17 +01:00
Jordan Zimmerman
5b10284d4e [maven-release-plugin] prepare for next development iteration 2021-10-07 08:35:17 +01:00
Jordan Zimmerman
49a19ca8f8 [maven-release-plugin] prepare release record-builder-24 2021-10-07 08:35:17 +01:00
Jordan Zimmerman
f9fcd1e540 [maven-release-plugin] prepare for next development iteration 2021-10-07 08:35:17 +01:00
Jordan Zimmerman
eebb2b2bfd [maven-release-plugin] prepare release record-builder-23-java15 2021-10-07 08:35:17 +01:00
Jordan Zimmerman
67f219bd67 Remove downcast in favor of methods
Great suggestion from @Twisol. There's no need for the downcasting
if record component methods are added to the Wither interface.

Closes #27
2021-10-07 08:35:17 +01:00
Jordan Zimmerman
d9f27bc5a6 Validation and null checks are missing for withers. This PR adds them.
Closes #47
2021-10-07 08:35:17 +01:00
Jordan Zimmerman
f7b6f47bbf [maven-release-plugin] prepare for next development iteration 2021-10-07 08:35:17 +01:00
Jordan Zimmerman
7e90e64988 [maven-release-plugin] prepare release record-builder-22 2021-10-07 08:35:17 +01:00
Jordan Zimmerman
cbe3b7cef4 [maven-release-plugin] prepare for next development iteration 2021-10-07 08:35:17 +01:00
Jordan Zimmerman
6c15bdd825 [maven-release-plugin] prepare release record-builder-21 2021-10-07 08:35:17 +01:00
Jordan Zimmerman
53aaf6b7e9 [maven-release-plugin] prepare for next development iteration 2021-10-07 08:35:17 +01:00
Jordan Zimmerman
09ed5905e3 [maven-release-plugin] prepare release record-builder-21-java15 2021-10-07 08:35:17 +01:00
Jordan Zimmerman
d0c56e6fdf Fix up some minor version/path issues in the POMs 2021-10-07 08:35:17 +01:00
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