Annotation processor should error on conflicting export options
- Dominant language
- Java
- Stars
- 25
- Forks
- 34
- PR merge metrics
- No merged PRs in 30d
Description
As the export options become richer, it becomes possible to create contradictory export directives via annotation. For instance, what is the proper interpretation of:
```
@ManualExportAllowed
@ManualExportNotAllowed
class MyClass { .... }
```
Since this is a manual export, that contradiction won't be discovered until the manual export is actually done, not at startup, which is the AndHow contract.
Depending on how the final export features look, there will likely be other contradictions possible. The annotation processor should catch this and log a message via the Messenger API. That should be available after #649 is complete.
The part of the annotation processor that deals with classes is [here](https://github.com/eeverman/andhow/blob/de7de6574c5e75ab76fa468e1249686a1098746a/andhow-annotation-processor/src/main/java/org/yarnandtail/andhow/compile/AndHowElementScanner7.java#L106).
This also affects the PropertyExportImpl.findEffectiveAllowAnnotation() method, which currently needs to throw an exception for this. Although, its possible to run with code compiled w/ an older AP, so that check should remain.
Contributor guide
Assessment
This issue has not been assessed yet.