Incendo / cloud

Command framework & dispatcher for the JVM
https://cloud.incendo.org
MIT License
433 stars 54 forks source link

Annotation (processing) improvements #758

Open Citymonstret opened 2 months ago

Citymonstret commented 2 months ago

During the command method validation we should attempt to validate nullability, with some support for common nullability annotations.

If a parameter is required we should output a warning if it's marked as nullable. If it's optional without a default value, then we should probably error if it's marked as non-nullable.

We ought to validate whether primitive values are optional without defaults, as this will fail at runtime.

It'd also be good if we added some support for third-party annotations at runtime. Such as existing range annotations, and possibly even existing pattern annotations (for regex), etc.

We should properly mark our annotations as inherited and documented, and improve our support for meta-annotations and annotation composition.

None of this would break API and can be done after the 2.0 release.