eeverman / eeverman/andhow

Annotation processor should error on conflicting export options

Open
#577 0 comments 0 reactions 0 assignees View on GitHub
enhancement Exports
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.