[ https://issues.apache.org/jira/browse/ISIS-970?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14241869#comment-14241869 ]
Jeroen van der Wal commented on ISIS-970: ----------------------------------------- Good stuff, this will make it much easier for newcomers. Personally the remaining annotations could be removed for now and reinstated if they fit a purpose in Isis again. One little thing: the "objectType" on @DomainObject actually is the objectName. > 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)