[ https://issues.apache.org/jira/browse/ISIS-970?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dan Haywood updated ISIS-970: ----------------------------- Description: 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 (see ISIS-968) - @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 was: 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 (see ISIS-968) - @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 > 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 (see ISIS-968) > - @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)