You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@isis.apache.org by "Dan Haywood (JIRA)" <ji...@apache.org> on 2015/02/01 11:09:34 UTC
[jira] [Created] (ISIS-1024) Support imperative validation of a
single action parameter argument (as well as of entire parameter args).
Dan Haywood created ISIS-1024:
---------------------------------
Summary: 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)