[
https://issues.apache.org/jira/browse/ISIS-970?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14255920#comment-14255920
]
ASF subversion and git services commented on ISIS-970:
------------------------------------------------------
Commit 58f5540a73bb391f44cd03556ffbfa14c639b4f0 in isis's branch
refs/heads/ISIS-970 from [~danhaywood]
[ https://git-wip-us.apache.org/repos/asf?p=isis.git;h=58f5540 ]
ISIS-970: further fixes around Bulk.InteractionContext.
> Introduce new annotations to collect together all non-UI (layout) hints, and
> deprecate old annotations
> ------------------------------------------------------------------------------------------------------
>
> Key: ISIS-970
> URL: https://issues.apache.org/jira/browse/ISIS-970
> Project: Isis
> Issue Type: Improvement
> Components: Core
> Affects Versions: core-1.7.0
> Reporter: Dan Haywood
> Assignee: Dan Haywood
> Fix For: core-1.8.0
>
>
> specifically:
> {code}
> @DomainObject(
> audited = true|false
> auditedDisabled = true|false // representing
> @Audited(disabled=true)
> published = SomePayloadFactory.class // probably factor out
> PayloadFactory.Default so similar to interaction
> autoComplete = SomeRepository.class
> bookmarkable = BookmarkPolicy.ROOT // or CHILD
> bounded = true|false // do not combine with
> autoComplete
> immutable = When.ALWAYS // or perhaps true|false;
> defaults to ? perhaps true ?
> objectType = "CUS"
> viewModel = true|false // defaults to false
> )
> {code}
> and
> {code}
> @Property(
> interaction = ToDoItem.DueBy.class // or
> PropertyInteractionEvent.Default.class for default
> disabled = Where.OBJECT_FORMS etc. // (ignore the When enum)
> disabledReason = "..." // optional, representing
> @Disabled(reason=...)
> maxLength = 20
> mustSatisfy = {SomeSpecification.class}
> notPersisted = true|false // defaults to false
> optional = true|false // defaults to false (ie
> mandatory)
> regex = "abc.*def" // ignore the validation and
> caseSensitive attributes
> )
> {code}
> and
> {code}
> @Collection(
> interaction=
> disabled = Where.OBJECT_FORMS etc. // (ignore the When enum)
> disabledReason = "..." // optional, representing
> @Disabled(reason=...)
> typeOf= = OrderLine.class
> )
> {code}
> and
> {code}
> @Action(
> interaction = ToDoItem.Completed.class // or
> ActionInteractionEvent.Default.class for default
> disabled = Where.OBJECT_FORMS etc. // (ignore the When enum)
> disabledReason = "..." // optional, representing
> @Disabled(reason=...)
> semantics = Of.SAFE // or IDEMPOTENT,
> NON_IDEMPOTENT
> bulk = AppliesTo.BULK_ONLY // or BULK_AND_REGULAR
> command = true|false
> commandPersistence = Persistence.PERSISTED // representing
> @Command(persistence=...)
> commandExecuteIn = ExecuteIn.FOREGROUND // representing
> @Command(executeIn=...)
> commandDisabled = true|false // representing
> @Command(disabled=true)
> published = SomePayloadFactory.class // probably factor out
> PayloadFactory.Default so similar to interaction
> )
> {code}
> and
> {code}
> @Parameter(
> minLength = 3
> mustSatisfy = {SomeSpecification.class}
> optional = true|false // defaults to false (ie
> mandatory)
> regex = "abc.*def" // ignore the validation and
> caseSensitive attributes
> )
> {code}
> This would result in the full complement of Isis annotations being:
> - @DomainService and @DomainServiceLayout
> - @DomainObject and @DomainObjectLayout
> - @Property and @PropertyLayout
> - @Collection and @CollectionLayout
> - @Action and @ActionLayout
> - @Parameter and @ParameterLayout
> Also two further additional UI hints:
> - @Title
> - @MemberGroupLayout
> All the above @XxxLayout annotations can instead be specified using a
> .layout.json file.
> The following 3rd-party annotations also supported:
> - @javax.validation.constraints.Digits
> - @javax.enterprise.context.RequestScoped
> - @javax.jdo.annotations.*
> ~~~
> Need to decide what to do with remaining annotations (mostly pertaining to
> value types and other DDD ideas); remove or keep? They are:
> - @Value
> - @Defaulted
> - @Encodeable
> - @EqualByContent
> - @Parseable
> - @Aggregated
> - @NotPersistable
> - @Facets
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)