Currently the class ConstraintAnnotationVisitor contains all the logic related to constraint checking. For all the different checks (appropriate type, getters not setters annotated etc.) there are check methods, causing the class to become larger and larger as new checks are added.
To improve maintainability all the checks shall be extracted to dedicated check classes. A factory should know which checks have to be executed for given elements and annotations. The visitor should just call this factory, invoke all returned checks and report all errors possibly occurred.
This issue is a pure refactoring, no functionality will be added.