[
https://issues.apache.org/jira/browse/ISIS-1024?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dan Haywood resolved ISIS-1024.
-------------------------------
Resolution: Fixed
> Support imperative validation of a single action parameter argument (as well
> as of entire parameter args).
> ----------------------------------------------------------------------------------------------------------
>
> Key: ISIS-1024
> URL: https://issues.apache.org/jira/browse/ISIS-1024
> Project: Isis
> Issue Type: New Feature
> Components: Core
> Affects Versions: core-1.7.0
> Reporter: Dan Haywood
> Assignee: Dan Haywood
> Priority: Minor
> Fix For: core-1.8.0
>
>
> (Did this feature get removed accidentally somehow, or was I imagining it?)
> Require imperative validation on action parameters
> (ActionParameterValidationFacet implementing ValidatingInteractionAdvisor).
> To explain; I have an action:
> {code}
> public LeaseItem newItem(
> final LeaseItemType type,
> final Charge charge,
> final InvoicingFrequency invoicingFrequency,
> final PaymentMethod paymentMethod,
> final @Named("Start date") LocalDate startDate,
> final ApplicationTenancy applicationTenancy) {
> }
> {code}
> I can write supporting methods for choices and defaults for a single
> parameter:
> {code}
> public List<ApplicationTenancy> choices5NewItem() { ... }
> public ApplicationTenancy default5NewItem() { ... }
> {code}
> However it's not possible to validate an individual parameter arg, instead I
> have to validate all:
> {code}
> public String validateNewItem(final LeaseItemType type,
> final Charge charge,
> final InvoicingFrequency
> invoicingFrequency,
> final PaymentMethod paymentMethod,
> final @Named("Start date") LocalDate
> startDate,
> final ApplicationTenancy
> applicationTenancy) {
> return
> !getApplicationTenancy().getChildren().contains(applicationTenancy)
> ? String.format(
> "Application tenancy '%s' is not valid for this lease
> (having application tenancy path '%s')",
> applicationTenancy.getPath(),
> getApplicationTenancyPath())
> : null;
> }
> {code}
> I would prefer to be able to write:
> {code}
> public String validate5NewItem(final ApplicationTenancy
> applicationTenancy) {
> return
> !getApplicationTenancy().getChildren().contains(applicationTenancy)
> ? String.format(
> "Application tenancy '%s' is not valid for this lease
> (having application tenancy path '%s')",
> applicationTenancy.getPath(),
> getApplicationTenancyPath())
> : null;
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)