[
https://issues.apache.org/jira/browse/BVAL-73?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Carlos Vara updated BVAL-73:
----------------------------
Attachment: ValidationHelper.diff
> Alternative way of addressing code reuse issue between the validators
> ---------------------------------------------------------------------
>
> Key: BVAL-73
> URL: https://issues.apache.org/jira/browse/BVAL-73
> Project: BeanValidation
> Issue Type: Improvement
> Affects Versions: 0.2-incubating
> Reporter: Carlos Vara
> Priority: Minor
> Attachments: ValidationHelper.diff
>
>
> Currently, the code reuse issue exposed in BVAL-47 has been solved using a
> common abstract validator which is subclassed by the jsr303 and core
> validators.
> I have been thinking about how to solve the type safety problems I exposed in
> my mail. I propose a different solution (no inheritance, and a strategy
> pattern is used to return the validation flow to the correct method in each
> validator in a type safe way). The reasons why I propose removing the current
> inheritance scheme are:
> - Inheritance is just used for code reuse. The 2 validatos have different
> interfaces to which they respond to, and there is no code in which a
> reference to an "abstract" validator is or should be held.
> - I haven't found a way of removing class casting issues with the inheritance
> strategy. I know that at the moment it is somewhat "easy" to see that most of
> the casts can't fail, but I find it cleaner and safer to code it in a way in
> which type safety is enforced by the compiler.
> Please take into account that the proposed diff is a preliminar work that
> simply shows a way in which this could be done. If you prefer this to the
> current solution with inheritance, further work would be done to better
> ensure type safety, access to the property treatsMapsLikeBeans would be
> centralized, etc.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.