You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2012/09/02 14:14:52 UTC
svn commit: r1379956 [1/4] - in /incubator/isis/trunk/framework:
applib/src/main/java/org/apache/isis/applib/annotation/
applib/src/main/java/org/apache/isis/applib/util/
applib/src/test/java/org/apache/isis/applib/util/
core/commons/src/main/java/org/...
Author: danhaywood
Date: Sun Sep 2 12:14:46 2012
New Revision: 1379956
URL: http://svn.apache.org/viewvc?rev=1379956&view=rev
Log:
ISIS-258 ,ISIS-259
* removed @Executed annotation (and metamodel stuff that equates to it)
* @Hidden and @Disabled now have a new where() attribute (and value() renamed to when())
* added @ActionSemantics, new ActionSemanticsFacet (and removed some duplication of code in restfulobjects viewer and in core)
* refactored @QueryOnly and @Idempotent to map onto the ActionSemanticsFacet; added missing unit tests
Added:
incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/ActionSemantics.java
incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/Where.java
incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/util/Enums.java
- copied, changed from r1379526, incubator/isis/trunk/framework/viewer/restfulobjects/restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/util/Enums.java
incubator/isis/trunk/framework/applib/src/test/java/org/apache/isis/applib/util/EnumsTest.java
- copied, changed from r1379526, incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disable/DisabledFacetNever.java
incubator/isis/trunk/framework/applib/src/test/java/org/apache/isis/applib/util/EnumsTest_converts.java
- copied, changed from r1379526, incubator/isis/trunk/framework/viewer/restfulobjects/restfulobjects-applib/src/test/java/org/apache/isis/viewer/restfulobjects/applib/util/EnumsTest.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/WhenAndWhereValueFacet.java
- copied, changed from r1379526, incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/Target.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/WhenAndWhereValueFacetAbstract.java
- copied, changed from r1379526, incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleWhenValueFacetAbstract.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/WhenValueFacet.java
- copied, changed from r1379526, incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleWhenValueFacet.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/WhenValueFacetAbstract.java
- copied, changed from r1379526, incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleWhenValueFacetAbstract.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/semantics/
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/semantics/ActionSemanticsFacet.java
- copied, changed from r1379526, incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/queryonly/QueryOnlyFacet.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/semantics/ActionSemanticsFacetAbstract.java
- copied, changed from r1379526, incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/queryonly/QueryOnlyFacetAbstract.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/semantics/
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/semantics/ActionSemanticsAnnotationFacetFactory.java
- copied, changed from r1379526, incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/idempotent/IdempotentAnnotationFacetFactory.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/semantics/ActionSemanticsFacetAnnotation.java
- copied, changed from r1379526, incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/queryonly/IdempotentFacetInferredFromQueryOnly.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/semantics/ActionSemanticsFacetFallbackToNonIdempotent.java
- copied, changed from r1379526, incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/queryonly/QueryOnlyFacetAnnotation.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/semantics/ActionSemanticsFallbackFacetFactory.java
- copied, changed from r1379526, incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/queryonly/QueryOnlyAnnotationFacetFactory.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/semantics/IdempotentAnnotationFacetFactory.java
- copied, changed from r1379526, incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/idempotent/IdempotentAnnotationFacetFactory.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/semantics/IdempotentFacetAnnotation.java
- copied, changed from r1379526, incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/idempotent/IdempotentFacetAnnotation.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/semantics/QueryOnlyAnnotationFacetFactory.java
- copied, changed from r1379526, incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/queryonly/QueryOnlyAnnotationFacetFactory.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/semantics/QueryOnlyFacetAnnotation.java
- copied, changed from r1379526, incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/queryonly/QueryOnlyFacetAnnotation.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disable/staticmethod/DisabledFacetAlwaysEverywhere.java
- copied, changed from r1379526, incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disable/staticmethod/DisabledFacetAlways.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hide/staticmethod/HiddenFacetAlwaysEverywhere.java
- copied, changed from r1379526, incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hide/staticmethod/HiddenFacetAlways.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/actions/semantics/
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/actions/semantics/ActionSemanticsAnnotationFacetFactoryTest.java
- copied, changed from r1379526, incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/actions/executed/ExecutedAnnotationFacetFactoryTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/actions/semantics/ActionSemanticsFallbackFacetFactoryTest.java
- copied, changed from r1379526, incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/actions/executed/ExecutedAnnotationFacetFactoryTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/actions/semantics/IdempotentAnnotationFacetFactoryTest.java
- copied, changed from r1379526, incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/actions/executed/ExecutedAnnotationFacetFactoryTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/actions/semantics/QueryOnlyAnnotationFacetFactoryTest.java
- copied, changed from r1379526, incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/actions/executed/ExecutedAnnotationFacetFactoryTest.java
incubator/isis/trunk/framework/viewer/restfulobjects/restfulobjects-viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/domainobjects/InvokeKeys.java
- copied, changed from r1379526, incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/idempotent/IdempotentFacetAbstract.java
Removed:
incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/Executed.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleWhenValueFacet.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleWhenValueFacetAbstract.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/When.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/executed/ExecutedFacet.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/executed/ExecutedFacetAbstract.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/idempotent/IdempotentFacet.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/idempotent/IdempotentFacetAbstract.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/queryonly/QueryOnlyFacet.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/queryonly/QueryOnlyFacetAbstract.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/notpersistable/InitiatedBy.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/Target.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ActionSemantics.java
incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/spec/ActionTargetTest.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/executed/annotation/ExecutedAnnotationFacetFactory.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/executed/annotation/ExecutedFacetAnnotation.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/executed/prefix/ExecutedViaNamingConventionFacetFactory.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/idempotent/IdempotentAnnotationFacetFactory.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/idempotent/IdempotentFacetAnnotation.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/invoke/ExecutedFacetViaNamingConvention.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/queryonly/IdempotentFacetInferredFromQueryOnly.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/queryonly/QueryOnlyAnnotationFacetFactory.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/queryonly/QueryOnlyFacetAnnotation.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/fallback/ExecutedFacetAtDefault.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disable/staticmethod/DisabledFacetAlways.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hide/staticmethod/HiddenFacetAlways.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/actions/executed/ExecutedAnnotationFacetFactoryTest.java
incubator/isis/trunk/framework/viewer/restfulobjects/restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/util/Enums.java
incubator/isis/trunk/framework/viewer/restfulobjects/restfulobjects-applib/src/test/java/org/apache/isis/viewer/restfulobjects/applib/util/EnumsTest.java
incubator/isis/trunk/framework/viewer/restfulobjects/restfulobjects-viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/domainobjects/ActionSemantics.java
Modified:
incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/Disabled.java
incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/Hidden.java
incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/Idempotent.java
incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/NotPersistable.java
incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/QueryOnly.java
incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/When.java
incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/StringUtils.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/mgr/AdapterManager.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshaller.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/RootOidDefault.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Enumeration.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/EnumerationAbstract.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/hide/HiddenFacet.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacet.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacetAbstract.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacetUtils.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/notpersistable/NotPersistableFacet.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/notpersistable/NotPersistableFacetAbstract.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectActionSet.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionImpl.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorComposite.java
incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/Dump.java
incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshallerTest_marshal.java
incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshallerTest_roundtripping.java
incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidVersionTest.java
incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/RootOidDefaultTest_compareAgainst.java
incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/RootOidDefaultTest_create.java
incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/version/VersionTest.java
incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/EnumerationAbstractTest.java
incubator/isis/trunk/framework/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/SpecificationCacheDefaultTest.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/invoke/ActionInvocationFacetFactory.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/disabled/fromimmutable/DisabledFacetForCollectionDerivedFromImmutable.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/fallback/FallbackFacetFactory.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disable/DisabledFacet.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disable/DisabledFacetAbstract.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disable/DisabledFacetImpl.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disable/DisabledFacetNever.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disable/annotation/DisabledAnnotationFacetFactory.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disable/annotation/DisabledFacetAnnotation.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disable/staticmethod/DisabledFacetViaProtectMethodFacetFactory.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hide/HiddenFacetAbstract.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hide/HiddenFacetImpl.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hide/HiddenFacetNever.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hide/annotation/HiddenAnnotationForMemberFacetFactory.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hide/annotation/HiddenFacetForMemberAnnotation.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hide/staticmethod/HiddenFacetViaAlwaysHideMethodFacetFactory.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/hidden/HiddenAnnotationForTypeFacetFactory.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/hidden/HiddenFacetForTypeAnnotation.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/immutable/annotation/ImmutableAnnotationFacetFactory.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/immutable/annotation/ImmutableFacetAnnotation.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/immutable/markerifc/ImmutableFacetMarkerInterface.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/immutable/markerifc/ImmutableMarkerInterfaceFacetFactory.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/notpersistable/NotPersistableAnnotationFacetFactory.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/notpersistable/NotPersistableFacetAnnotation.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/notpersistable/NotPersistableFacetImpl.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/notpersistable/NotPersistableFacetMarkerInterface.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/notpersistable/NotPersistableMarkerInterfacesFacetFactory.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/value/ImmutableFacetViaValueSemantics.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/disabled/fromimmutable/DisabledFacetForPropertyDerivedFromImmutable.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/modify/PropertySetAndClearFacetFactory.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/bytes/ByteValueSemanticsProviderAbstract.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/color/ColorValueSemanticsProvider.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/date/DateValueSemanticsProvider.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/datetime/DateTimeValueSemanticsProvider.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/floats/FloatValueSemanticsProviderAbstract.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/integer/IntValueSemanticsProviderAbstract.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/longs/DoubleValueSemanticsProviderAbstract.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/longs/LongValueSemanticsProviderAbstract.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/money/MoneyValueSemanticsProvider.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/password/PasswordValueSemanticsProvider.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/string/StringValueSemanticsProvider.java
incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/value/timestamp/TimeStampValueSemanticsProviderAbstract.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/actions/ActionMethodsFacetFactoryTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/collections/CollectionFieldMethodsFacetFactoryTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/disable/DisabledAnnotationFacetFactoryTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/hide/HiddenAnnotationFacetFactoryTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/object/immutable/ImmutableAnnotationFacetFactoryTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/object/immutable/ImmutableMarkerInterfaceFacetFactoryTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/object/notpersistable/NotPersistableAnnotationFacetFactoryTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/object/notpersistable/NotPersistableMarkerInterfaceFacetFactoryTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/properties/PropertyMethodsFacetFactoryTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/BigDecimalValueSemanticsProviderTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/BigIntValueSemanticsProviderTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/BooleanValueSemanticsProviderTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/ByteValueSemanticsProviderTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/CharacterValueSemanticsProviderTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/ColorValueSemanticsProviderTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/DateTimeValueSemanticsProviderTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/DateValueSemanticsProviderTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/DoubleValueSemanticsProviderTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/FloatValueSemanticsProviderTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/IntValueSemanticsProviderTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/JavaSqlDateValueSemanticsProviderTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/JavaSqlTimeStampValueSemanticsProviderTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/JavaSqlTimeValueSemanticsProviderTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/LongValueSemanticsProviderTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/MoneyValueSemanticsProviderTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/PasswordValueSemanticsProviderTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/PercentageValueSemanticsProviderTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/ShortValueSemanticsProviderTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/StringValueSemanticsProviderTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/TimeStampValueSemanticsProviderTest.java
incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/value/TimeValueSemanticsProviderTest.java
incubator/isis/trunk/framework/progmodels/dflt/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
incubator/isis/trunk/framework/progmodels/wrapper/wrapper-metamodel/src/test/java/org/apache/isis/progmodel/wrapper/WrappedFactoryDefaultTest_wrappedObject_transient.java
incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-metamodel/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/metamodel/facets/prop/primarykey/DisabledFacetDerivedFromJdoPrimaryKeyAnnotation.java
incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/system/ObjectMemberAbstractTest.java
incubator/isis/trunk/framework/tck/tck-dom/src/main/java/org/apache/isis/tck/dom/claimapp/employees/Employee.java
incubator/isis/trunk/framework/viewer/html/src/test/java/org/apache/isis/viewer/html/context/ObjectActionNoop.java
incubator/isis/trunk/framework/viewer/junit/src/test/java/org/apache/isis/viewer/junit/sample/domain/Customer.java
incubator/isis/trunk/framework/viewer/junit/src/test/java/org/apache/isis/viewer/junit/sample/domain/Product.java
incubator/isis/trunk/framework/viewer/restfulobjects/restfulobjects-applib/pom.xml
incubator/isis/trunk/framework/viewer/restfulobjects/restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/RepresentationType.java
incubator/isis/trunk/framework/viewer/restfulobjects/restfulobjects-viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/domainobjects/ActionResultReprRenderer.java
incubator/isis/trunk/framework/viewer/restfulobjects/restfulobjects-viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/domainobjects/DomainResourceHelper.java
incubator/isis/trunk/framework/viewer/restfulobjects/restfulobjects-viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/domainobjects/MemberType.java
incubator/isis/trunk/framework/viewer/restfulobjects/restfulobjects-viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/domainobjects/ObjectActionReprRenderer.java
incubator/isis/trunk/framework/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/debug/Debug.java
incubator/isis/trunk/framework/viewer/scimpi/scimpi-dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/simple/EditLink.java
incubator/isis/trunk/framework/viewer/wicket/wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ActionMemento.java
Added: incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/ActionSemantics.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/ActionSemantics.java?rev=1379956&view=auto
==============================================================================
--- incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/ActionSemantics.java (added)
+++ incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/ActionSemantics.java Sun Sep 2 12:14:46 2012
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.applib.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import org.apache.isis.applib.util.Enums;
+
+/**
+ * Indicates that an instance cannot be persisted by a user, but only
+ * programmatically.
+ */
+@Inherited
+@Target({ ElementType.METHOD })
+@Retention(RetentionPolicy.RUNTIME)
+public @interface ActionSemantics {
+
+ public enum Of {
+ /**
+ * Safe, with no side-effects.
+ *
+ * <p>
+ * In other words, a query-only action. By definition, is also idempotent.
+ */
+ SAFE,
+ /**
+ * Post-conditions are always the same, irrespective as to how many times called.
+ *
+ * <p>
+ * An example might be <tt>placeOrder()</tt>, that is a no-op if the order has already been placed.
+ */
+ IDEMPOTENT,
+ /**
+ * Neither safe nor idempotent; every invocation is likely to change the state of the object.
+ *
+ * <p>
+ * An example is increasing the quantity of a line item in an Order by 1.
+ */
+ NON_IDEMPOTENT;
+
+ public String getFriendlyName() {
+ return Enums.getFriendlyNameOf(this);
+ }
+
+ public String getCamelCaseName() {
+ return Enums.enumToCamelCase(this);
+ }
+
+ /**
+ * {@link #SAFE} is idempotent in nature, as well as, obviously, {@link #IDEMPOTENT}.
+ */
+ public boolean isIdempotentInNature() {
+ return this == SAFE || this == IDEMPOTENT;
+ }
+
+
+ }
+
+ Of value() default Of.NON_IDEMPOTENT;
+
+}
Modified: incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/Disabled.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/Disabled.java?rev=1379956&r1=1379955&r2=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/Disabled.java (original)
+++ incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/Disabled.java Sun Sep 2 12:14:46 2012
@@ -32,5 +32,6 @@ import java.lang.annotation.Target;
@Target({ ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
public @interface Disabled {
- When value() default When.ALWAYS;
+ When when() default When.ALWAYS;
+ Where where() default Where.EVERYWHERE;
}
Modified: incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/Hidden.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/Hidden.java?rev=1379956&r1=1379955&r2=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/Hidden.java (original)
+++ incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/Hidden.java Sun Sep 2 12:14:46 2012
@@ -37,5 +37,6 @@ import java.lang.annotation.Target;
@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
public @interface Hidden {
- When value() default When.ALWAYS;
+ When when() default When.ALWAYS;
+ Where where() default Where.EVERYWHERE;
}
Modified: incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/Idempotent.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/Idempotent.java?rev=1379956&r1=1379955&r2=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/Idempotent.java (original)
+++ incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/Idempotent.java Sun Sep 2 12:14:46 2012
@@ -33,7 +33,11 @@ import java.lang.annotation.Target;
* <p>
* More formally, the post-conditions of the action are guaranteed to be the
* same whether called once or more than once.
+ *
+ * <p>
+ * Deprecated - use <tt>@ActionSemantics(Of.IDEMPOTENT)</tt> instead.
*/
+@Deprecated
@Inherited
@Target({ ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
Modified: incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/NotPersistable.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/NotPersistable.java?rev=1379956&r1=1379955&r2=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/NotPersistable.java (original)
+++ incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/NotPersistable.java Sun Sep 2 12:14:46 2012
@@ -25,6 +25,10 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+import org.apache.isis.applib.marker.NonPersistable;
+import org.apache.isis.applib.marker.ProgramPersistable;
+import org.apache.isis.applib.util.Enums;
+
/**
* Indicates that an instance cannot be persisted by a user, but only
* programmatically.
@@ -35,7 +39,21 @@ import java.lang.annotation.Target;
public @interface NotPersistable {
public enum By {
- USER, USER_OR_PROGRAM
+ USER,
+ USER_OR_PROGRAM;
+
+ public static By lookupForMarkerInterface(final Class<?> cls) {
+ if (ProgramPersistable.class.isAssignableFrom(cls)) {
+ return USER;
+ } else if (NonPersistable.class.isAssignableFrom(cls)) {
+ return USER_OR_PROGRAM;
+ }
+ return null;
+ }
+
+ public String getFriendlyName() {
+ return Enums.getFriendlyNameOf(this);
+ }
}
By value() default By.USER_OR_PROGRAM;
Modified: incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/QueryOnly.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/QueryOnly.java?rev=1379956&r1=1379955&r2=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/QueryOnly.java (original)
+++ incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/QueryOnly.java Sun Sep 2 12:14:46 2012
@@ -28,7 +28,11 @@ import java.lang.annotation.Target;
/**
* Indicates that an action is query only; invoking it will not modify any
* domain object state.
+ *
+ * <p>
+ * Deprecated - use <tt>@ActionSemantics(Of.SAFE)</tt> instead.
*/
+@Deprecated
@Inherited
@Target({ ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
Modified: incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/When.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/When.java?rev=1379956&r1=1379955&r2=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/When.java (original)
+++ incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/When.java Sun Sep 2 12:14:46 2012
@@ -19,6 +19,77 @@
package org.apache.isis.applib.annotation;
+import org.apache.isis.applib.marker.AlwaysImmutable;
+import org.apache.isis.applib.marker.ImmutableOncePersisted;
+import org.apache.isis.applib.marker.ImmutableUntilPersisted;
+import org.apache.isis.applib.marker.NeverImmutable;
+import org.apache.isis.applib.util.Enums;
+
public enum When {
- ALWAYS, ONCE_PERSISTED, UNTIL_PERSISTED, NEVER
+ /**
+ * If annotated on a member, then that member should be disabled/hidden for persisted objects, but should be
+ * visible for transient objects.
+ *
+ * <p>
+ * If annotated on an class, then applies to all members of that class.
+ */
+ ONCE_PERSISTED,
+ /**
+ * If annotated on a member, then that member should be disabled/hidden for transient objects, but should be
+ * visible for persisted objects.
+ *
+ * <p>
+ * If annotated on an class, then applies to all members of that class.
+ */
+ UNTIL_PERSISTED,
+ /**
+ * If annotated on a member, then that member should be disabled/hidden both for objects that are persisted
+ * and for objects that are not persisted.
+ *
+ * <p>
+ * Combines {@link #ONCE_PERSISTED} and {@link #UNTIL_PERSISTED}.
+ *
+ * <p>
+ * If annotated on an class, then applies to all members of that class.
+ */
+ ALWAYS,
+ /**
+ * If annotated on a member, then that member should not be disabled/hidden.
+ *
+ * <p>
+ * If annotated on an class, then applies to all members of that class.
+ */
+ NEVER;
+
+ public String getFriendlyName() {
+ return Enums.getFriendlyNameOf(this);
+ }
+
+ /**
+ * As an alternative to annotating an object with {@link Disabled}, can instead have the
+ * class implement a marker interface.
+ */
+ public static When lookupForMarkerInterface(final Class<?> cls) {
+ if (AlwaysImmutable.class.isAssignableFrom(cls)) {
+ return ALWAYS;
+ } else if (ImmutableOncePersisted.class.isAssignableFrom(cls)) {
+ return ONCE_PERSISTED;
+ } else if (ImmutableUntilPersisted.class.isAssignableFrom(cls)) {
+ return UNTIL_PERSISTED;
+ } else if (NeverImmutable.class.isAssignableFrom(cls)) {
+ return NEVER;
+ }
+ return null;
+ }
+
+ public interface Persistable {
+ public boolean isTransient();
+ }
+
+ public boolean appliesTo(final Persistable persistable) {
+ final boolean isTransient = persistable.isTransient();
+ return this == When.ALWAYS ||
+ this == When.ONCE_PERSISTED && !isTransient ||
+ this == When.UNTIL_PERSISTED && isTransient;
+ }
}
Added: incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/Where.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/Where.java?rev=1379956&view=auto
==============================================================================
--- incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/Where.java (added)
+++ incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/annotation/Where.java Sun Sep 2 12:14:46 2012
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.applib.annotation;
+
+import org.apache.isis.applib.util.Enums;
+
+public enum Where {
+ /**
+ * The member should be disabled/hidden everywhere.
+ */
+ EVERYWHERE,
+ /**
+ * The member should be disabled/hidden when displayed within an object form.
+ *
+ * <p>
+ * For most viewers, this applies to property and collection members, not actions.
+ */
+ OBJECT_FORM,
+ /**
+ * The member should be disabled/hidden when displayed as a column of a table within
+ * an object's collection.
+ *
+ * <p>
+ * For most (all?) viewers, this will have meaning only if applied to a property member.
+ */
+ COLLECTION_TABLE,
+ /**
+ * The member should be disabled/hidden when displayed as a column of a table showing a standalone list
+ * of objects, for example as returned by a repository query.
+ *
+ * <p>
+ * For most (all?) viewers, this will have meaning only if applied to a property member.
+ */
+ STANDALONE_TABLE,
+ /**
+ * The member should be disabled/hidden when displayed as a column of a table, either an object's
+ * collection or a standalone list.
+ *
+ * <p>
+ * This combines {@link #COLLECTION_TABLE} and {@link #STANDALONE_TABLE}.
+ */
+ ALL_TABLES;
+
+ public String getFriendlyName() {
+ return Enums.getFriendlyNameOf(this);
+ }
+}
Copied: incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/util/Enums.java (from r1379526, incubator/isis/trunk/framework/viewer/restfulobjects/restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/util/Enums.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/util/Enums.java?p2=incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/util/Enums.java&p1=incubator/isis/trunk/framework/viewer/restfulobjects/restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/util/Enums.java&r1=1379526&r2=1379956&rev=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/restfulobjects/restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/util/Enums.java (original)
+++ incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/util/Enums.java Sun Sep 2 12:14:46 2012
@@ -16,13 +16,32 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.viewer.restfulobjects.applib.util;
+
+package org.apache.isis.applib.util;
+
+import com.google.common.base.Function;
+import com.google.common.base.Joiner;
+import com.google.common.base.Splitter;
+import com.google.common.collect.Iterables;
public final class Enums {
+
+ private Enums(){}
- private Enums() {
+ public static String getFriendlyNameOf(Enum<?> anEnum) {
+ return getFriendlyNameOf(anEnum.name());
+ }
+
+ public static String getFriendlyNameOf(String anEnumName) {
+ return Joiner.on(" ").join(Iterables.transform(Splitter.on("_").split(anEnumName), LOWER_CASE_THEN_CAPITALIZE));
}
+
+ public static String getEnumNameFromFriendly(String anEnumFriendlyName) {
+ return Joiner.on("_").join(Iterables.transform(Splitter.on(" ").split(anEnumFriendlyName), UPPER_CASE));
+ }
+
+
public static String enumToHttpHeader(final Enum<?> anEnum) {
return enumNameToHttpHeader(anEnum.name());
}
@@ -60,4 +79,29 @@ public final class Enums {
return builder.toString();
}
+
+ private static Function<String, String> LOWER_CASE_THEN_CAPITALIZE = new Function<String, String>() {
+ @Override
+ public String apply(String input) {
+ return capitalize(input.toLowerCase());
+ }
+ };
+
+ private static Function<String, String> UPPER_CASE = new Function<String, String>() {
+ @Override
+ public String apply(String input) {
+ return input.toUpperCase();
+ }
+ };
+
+ private static String capitalize(final String str) {
+ if (str == null || str.length() == 0) {
+ return str;
+ }
+ if (str.length() == 1) {
+ return str.toUpperCase();
+ }
+ return Character.toUpperCase(str.charAt(0)) + str.substring(1);
+ }
+
}
Copied: incubator/isis/trunk/framework/applib/src/test/java/org/apache/isis/applib/util/EnumsTest.java (from r1379526, incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disable/DisabledFacetNever.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/applib/src/test/java/org/apache/isis/applib/util/EnumsTest.java?p2=incubator/isis/trunk/framework/applib/src/test/java/org/apache/isis/applib/util/EnumsTest.java&p1=incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disable/DisabledFacetNever.java&r1=1379526&r2=1379956&rev=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disable/DisabledFacetNever.java (original)
+++ incubator/isis/trunk/framework/applib/src/test/java/org/apache/isis/applib/util/EnumsTest.java Sun Sep 2 12:14:46 2012
@@ -17,29 +17,28 @@
* under the License.
*/
-package org.apache.isis.core.progmodel.facets.members.disable;
+package org.apache.isis.applib.util;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.When;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
-public class DisabledFacetNever extends DisabledFacetAbstract {
+import org.junit.Test;
- public DisabledFacetNever(final FacetHolder holder) {
- super(When.NEVER, holder);
- }
+import org.apache.isis.applib.annotation.When;
+import org.apache.isis.applib.util.Enums;
+
+public class EnumsTest {
- /**
- * Always returns <tt>null</tt>.
- */
- @Override
- public String disabledReason(final ObjectAdapter target) {
- return null;
+ @Test
+ public void getFriendlyNameOf() {
+ assertThat(Enums.getFriendlyNameOf(When.ALWAYS), is("Always"));
+ assertThat(Enums.getFriendlyNameOf(When.ONCE_PERSISTED), is("Once Persisted"));
}
- @Override
- public boolean isNoop() {
- return true;
+ @Test
+ public void getEnumNameFromFriendly() {
+ assertThat(Enums.getEnumNameFromFriendly("Always"), is("ALWAYS"));
+ assertThat(Enums.getEnumNameFromFriendly("Once Persisted"), is("ONCE_PERSISTED"));
}
}
Copied: incubator/isis/trunk/framework/applib/src/test/java/org/apache/isis/applib/util/EnumsTest_converts.java (from r1379526, incubator/isis/trunk/framework/viewer/restfulobjects/restfulobjects-applib/src/test/java/org/apache/isis/viewer/restfulobjects/applib/util/EnumsTest.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/applib/src/test/java/org/apache/isis/applib/util/EnumsTest_converts.java?p2=incubator/isis/trunk/framework/applib/src/test/java/org/apache/isis/applib/util/EnumsTest_converts.java&p1=incubator/isis/trunk/framework/viewer/restfulobjects/restfulobjects-applib/src/test/java/org/apache/isis/viewer/restfulobjects/applib/util/EnumsTest.java&r1=1379526&r2=1379956&rev=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/viewer/restfulobjects/restfulobjects-applib/src/test/java/org/apache/isis/viewer/restfulobjects/applib/util/EnumsTest.java (original)
+++ incubator/isis/trunk/framework/applib/src/test/java/org/apache/isis/applib/util/EnumsTest_converts.java Sun Sep 2 12:14:46 2012
@@ -16,16 +16,14 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.viewer.restfulobjects.applib.util;
+package org.apache.isis.applib.util;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import org.junit.Test;
-import org.apache.isis.viewer.restfulobjects.applib.util.Enums;
-
-public class EnumsTest {
+public class EnumsTest_converts {
private static enum MyEnum {
CONTENT_TYPE, LAST_MODIFIED, WARNING, X_REPRESENTATION_TYPE, OBJECT_ACTION
Modified: incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/StringUtils.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/StringUtils.java?rev=1379956&r1=1379955&r2=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/StringUtils.java (original)
+++ incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/StringUtils.java Sun Sep 2 12:14:46 2012
@@ -25,32 +25,14 @@ import java.util.Collections;
import java.util.List;
import java.util.StringTokenizer;
-import javax.annotation.Nullable;
-
-import com.google.common.base.Function;
-import com.google.common.base.Joiner;
-import com.google.common.base.Splitter;
-import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
+import org.apache.isis.applib.util.Enums;
+
public final class StringUtils {
private StringUtils() {
}
- private static Function<String, String> LOWER_CASE_THEN_CAPITALIZE = new Function<String, String>() {
- @Override
- public String apply(String input) {
- return StringUtils.capitalize(input.toLowerCase());
- }
- };
-
- private static Function<String, String> UPPER_CASE = new Function<String, String>() {
- @Override
- public String apply(String input) {
- return input.toUpperCase();
- }
- };
-
// ////////////////////////////////////////////////////////////
// naturalName, naturalize, simpleName, camel, memberIdFor
// ////////////////////////////////////////////////////////////
@@ -377,12 +359,12 @@ public final class StringUtils {
return null;
}
- public static String enumTitle(String string) {
- return Joiner.on(" ").join(Iterables.transform(Splitter.on("_").split(string), LOWER_CASE_THEN_CAPITALIZE));
+ public static String enumTitle(String enumName) {
+ return Enums.getFriendlyNameOf(enumName);
}
- public static String enumDeTitle(String string) {
- return Joiner.on("_").join(Iterables.transform(Splitter.on(" ").split(string), UPPER_CASE));
+ public static String enumDeTitle(String enumFriendlyName) {
+ return Enums.getEnumNameFromFriendly(enumFriendlyName);
}
}
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java?rev=1379956&r1=1379955&r2=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java Sun Sep 2 12:14:46 2012
@@ -23,6 +23,7 @@ import org.apache.isis.core.metamodel.ad
import org.apache.isis.core.metamodel.adapter.oid.AggregatedOid;
import org.apache.isis.core.metamodel.adapter.oid.CollectionOid;
import org.apache.isis.core.metamodel.adapter.oid.Oid;
+import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
import org.apache.isis.core.metamodel.adapter.version.Version;
import org.apache.isis.core.metamodel.spec.ElementSpecificationProvider;
import org.apache.isis.core.metamodel.spec.Instance;
@@ -34,7 +35,7 @@ import org.apache.isis.core.metamodel.sp
* domain objects and those objects are represented within the NOF through these
* adapter, and not directly.
*/
-public interface ObjectAdapter extends Instance {
+public interface ObjectAdapter extends Instance, org.apache.isis.applib.annotation.When.Persistable {
/**
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/mgr/AdapterManager.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/mgr/AdapterManager.java?rev=1379956&r1=1379955&r2=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/mgr/AdapterManager.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/mgr/AdapterManager.java Sun Sep 2 12:14:46 2012
@@ -19,6 +19,7 @@
package org.apache.isis.core.metamodel.adapter.mgr;
+import org.apache.isis.applib.annotation.ActionSemantics;
import org.apache.isis.core.commons.components.Injectable;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.ResolveState;
@@ -70,7 +71,14 @@ public interface AdapterManager extends
public enum ConcurrencyChecking {
NO_CHECK,
- CHECK
+ CHECK;
+
+ public static ConcurrencyChecking concurrencyCheckingFor(ActionSemantics.Of actionSemantics) {
+ return actionSemantics == ActionSemantics.Of.SAFE
+ ? ConcurrencyChecking.NO_CHECK
+ : ConcurrencyChecking.CHECK;
+ }
+
}
/**
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshaller.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshaller.java?rev=1379956&r1=1379955&r2=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshaller.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshaller.java Sun Sep 2 12:14:46 2012
@@ -5,14 +5,14 @@ import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import org.apache.isis.core.metamodel.adapter.oid.Oid.State;
-import org.apache.isis.core.metamodel.adapter.version.Version;
-import org.apache.isis.core.metamodel.spec.ObjectSpecId;
-
import com.google.common.base.Splitter;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
+import org.apache.isis.core.metamodel.adapter.oid.Oid.State;
+import org.apache.isis.core.metamodel.adapter.version.Version;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
+
/**
* Factory for subtypes of {@link Oid}, based on their oid str.
*
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/RootOidDefault.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/RootOidDefault.java?rev=1379956&r1=1379955&r2=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/RootOidDefault.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/RootOidDefault.java Sun Sep 2 12:14:46 2012
@@ -26,6 +26,10 @@ import static org.hamcrest.CoreMatchers.
import java.io.IOException;
import java.io.Serializable;
+import com.google.common.base.Objects;
+
+import org.apache.log4j.Logger;
+
import org.apache.isis.core.commons.encoding.DataInputExtended;
import org.apache.isis.core.commons.encoding.DataOutputExtended;
import org.apache.isis.core.commons.ensure.Ensure;
@@ -34,9 +38,6 @@ import org.apache.isis.core.commons.url.
import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
import org.apache.isis.core.metamodel.adapter.version.Version;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
-import org.apache.log4j.Logger;
-
-import com.google.common.base.Objects;
public final class RootOidDefault implements Serializable, RootOid {
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Enumeration.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Enumeration.java?rev=1379956&r1=1379955&r2=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Enumeration.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Enumeration.java Sun Sep 2 12:14:46 2012
@@ -21,8 +21,6 @@ package org.apache.isis.core.metamodel.f
public interface Enumeration {
- public abstract int getNum();
-
public abstract String getNameInCode();
public abstract String getFriendlyName();
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/EnumerationAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/EnumerationAbstract.java?rev=1379956&r1=1379955&r2=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/EnumerationAbstract.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/EnumerationAbstract.java Sun Sep 2 12:14:46 2012
@@ -21,20 +21,14 @@ package org.apache.isis.core.metamodel.f
public abstract class EnumerationAbstract implements Enumeration {
- private final int num;
private final String nameInCode;
private final String friendlyName;
- protected EnumerationAbstract(final int num, final String nameInCode, final String friendlyName) {
- this.num = num;
+ protected EnumerationAbstract(final String nameInCode, final String friendlyName) {
this.nameInCode = nameInCode;
this.friendlyName = friendlyName;
}
- @Override
- public int getNum() {
- return num;
- }
@Override
public String getNameInCode() {
@@ -45,33 +39,33 @@ public abstract class EnumerationAbstrac
public String getFriendlyName() {
return friendlyName;
}
-
+
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
- result = prime * result + num;
+ result = prime * result + ((nameInCode == null) ? 0 : nameInCode.hashCode());
return result;
}
@Override
- public boolean equals(final Object obj) {
- if (this == obj) {
+ public boolean equals(Object obj) {
+ if (this == obj)
return true;
- }
- if (obj == null) {
+ if (obj == null)
return false;
- }
- if (getClass() != obj.getClass()) {
+ if (getClass() != obj.getClass())
return false;
- }
- final EnumerationAbstract other = (EnumerationAbstract) obj;
- if (num != other.num) {
+ EnumerationAbstract other = (EnumerationAbstract) obj;
+ if (nameInCode == null) {
+ if (other.nameInCode != null)
+ return false;
+ } else if (!nameInCode.equals(other.nameInCode))
return false;
- }
return true;
}
+
@Override
public String toString() {
return getNameInCode();
Copied: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/WhenAndWhereValueFacet.java (from r1379526, incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/Target.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/WhenAndWhereValueFacet.java?p2=incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/WhenAndWhereValueFacet.java&p1=incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/Target.java&r1=1379526&r2=1379956&rev=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/Target.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/WhenAndWhereValueFacet.java Sun Sep 2 12:14:46 2012
@@ -17,20 +17,12 @@
* under the License.
*/
-package org.apache.isis.core.metamodel.spec;
+package org.apache.isis.core.metamodel.facets;
-public enum Target {
+import org.apache.isis.applib.annotation.Where;
- DEFAULT("default"), LOCAL("local"), REMOTE("remote");
+public interface WhenAndWhereValueFacet extends WhenValueFacet {
- private String name;
-
- private Target(final String name) {
- this.name = name;
- }
-
- @Override
- public String toString() {
- return name;
- }
+ public Where where();
+
}
Copied: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/WhenAndWhereValueFacetAbstract.java (from r1379526, incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleWhenValueFacetAbstract.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/WhenAndWhereValueFacetAbstract.java?p2=incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/WhenAndWhereValueFacetAbstract.java&p1=incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleWhenValueFacetAbstract.java&r1=1379526&r2=1379956&rev=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleWhenValueFacetAbstract.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/WhenAndWhereValueFacetAbstract.java Sun Sep 2 12:14:46 2012
@@ -19,34 +19,26 @@
package org.apache.isis.core.metamodel.facets;
+import org.apache.isis.applib.annotation.When;
+import org.apache.isis.applib.annotation.Where;
import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-public abstract class SingleWhenValueFacetAbstract extends FacetAbstract implements SingleWhenValueFacet {
- private final When value;
+public abstract class WhenAndWhereValueFacetAbstract extends WhenValueFacetAbstract implements WhenAndWhereValueFacet {
+ private final Where where;
- public SingleWhenValueFacetAbstract(final Class<? extends Facet> facetType, final FacetHolder holder, final When value) {
- super(facetType, holder, Derivation.NOT_DERIVED);
- this.value = value;
+ public WhenAndWhereValueFacetAbstract(final Class<? extends Facet> facetType, final FacetHolder holder, final When when, final Where where) {
+ super(facetType, holder, when);
+ this.where = where;
}
@Override
- public When value() {
- return value;
- }
-
- /**
- * More descriptive, same as {@link #value()}.
- *
- * @return
- */
- protected When when() {
- return value();
+ public Where where() {
+ return where;
}
@Override
protected String toStringValues() {
- return "when=" + value.getFriendlyName();
+ return super.toString() + "; where =" + where.getFriendlyName();
}
}
Copied: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/WhenValueFacet.java (from r1379526, incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleWhenValueFacet.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/WhenValueFacet.java?p2=incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/WhenValueFacet.java&p1=incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleWhenValueFacet.java&r1=1379526&r2=1379956&rev=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleWhenValueFacet.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/WhenValueFacet.java Sun Sep 2 12:14:46 2012
@@ -19,9 +19,11 @@
package org.apache.isis.core.metamodel.facets;
+import org.apache.isis.applib.annotation.When;
import org.apache.isis.core.metamodel.facetapi.Facet;
-public interface SingleWhenValueFacet extends Facet {
+public interface WhenValueFacet extends Facet {
- public When value();
+ public When when();
+
}
Copied: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/WhenValueFacetAbstract.java (from r1379526, incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleWhenValueFacetAbstract.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/WhenValueFacetAbstract.java?p2=incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/WhenValueFacetAbstract.java&p1=incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleWhenValueFacetAbstract.java&r1=1379526&r2=1379956&rev=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/SingleWhenValueFacetAbstract.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/WhenValueFacetAbstract.java Sun Sep 2 12:14:46 2012
@@ -19,34 +19,26 @@
package org.apache.isis.core.metamodel.facets;
+import org.apache.isis.applib.annotation.When;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-public abstract class SingleWhenValueFacetAbstract extends FacetAbstract implements SingleWhenValueFacet {
- private final When value;
+public abstract class WhenValueFacetAbstract extends FacetAbstract implements WhenValueFacet {
+ private final When when;
- public SingleWhenValueFacetAbstract(final Class<? extends Facet> facetType, final FacetHolder holder, final When value) {
+ public WhenValueFacetAbstract(final Class<? extends Facet> facetType, final FacetHolder holder, final When when) {
super(facetType, holder, Derivation.NOT_DERIVED);
- this.value = value;
+ this.when = when;
}
@Override
- public When value() {
- return value;
- }
-
- /**
- * More descriptive, same as {@link #value()}.
- *
- * @return
- */
- protected When when() {
- return value();
+ public When when() {
+ return when;
}
@Override
protected String toStringValues() {
- return "when=" + value.getFriendlyName();
+ return "when=" + when.getFriendlyName();
}
}
Copied: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/semantics/ActionSemanticsFacet.java (from r1379526, incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/queryonly/QueryOnlyFacet.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/semantics/ActionSemanticsFacet.java?p2=incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/semantics/ActionSemanticsFacet.java&p1=incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/queryonly/QueryOnlyFacet.java&r1=1379526&r2=1379956&rev=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/queryonly/QueryOnlyFacet.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/semantics/ActionSemanticsFacet.java Sun Sep 2 12:14:46 2012
@@ -17,17 +17,17 @@
* under the License.
*/
-package org.apache.isis.core.metamodel.facets.actions.queryonly;
+package org.apache.isis.core.metamodel.facets.actions.semantics;
-import org.apache.isis.core.metamodel.facets.MarkerFacet;
+import org.apache.isis.applib.annotation.ActionSemantics;
+import org.apache.isis.core.metamodel.facets.SingleValueFacet;
/**
- * Obtain choices for each of the parameters of the action.
+ * Represents the semantics of an action.
*
* <p>
- * In the standard Apache Isis Programming Model, corresponds to invoking the
- * <tt>choicesXxx</tt> support method for an action.
+ * Specifically, whether it is safe, idempotent or non-idempotent.
*/
-public interface QueryOnlyFacet extends MarkerFacet {
+public interface ActionSemanticsFacet extends SingleValueFacet<ActionSemantics.Of> {
}
Copied: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/semantics/ActionSemanticsFacetAbstract.java (from r1379526, incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/queryonly/QueryOnlyFacetAbstract.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/semantics/ActionSemanticsFacetAbstract.java?p2=incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/semantics/ActionSemanticsFacetAbstract.java&p1=incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/queryonly/QueryOnlyFacetAbstract.java&r1=1379526&r2=1379956&rev=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/queryonly/QueryOnlyFacetAbstract.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/semantics/ActionSemanticsFacetAbstract.java Sun Sep 2 12:14:46 2012
@@ -17,20 +17,22 @@
* under the License.
*/
-package org.apache.isis.core.metamodel.facets.actions.queryonly;
+package org.apache.isis.core.metamodel.facets.actions.semantics;
+import org.apache.isis.applib.annotation.ActionSemantics;
+import org.apache.isis.applib.annotation.ActionSemantics.Of;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.MarkerFacetAbstract;
+import org.apache.isis.core.metamodel.facets.SingleValueFacetAbstract;
-public abstract class QueryOnlyFacetAbstract extends MarkerFacetAbstract implements QueryOnlyFacet {
+public abstract class ActionSemanticsFacetAbstract extends SingleValueFacetAbstract<ActionSemantics.Of> implements ActionSemanticsFacet {
public static Class<? extends Facet> type() {
- return QueryOnlyFacet.class;
+ return ActionSemanticsFacet.class;
}
- public QueryOnlyFacetAbstract(final FacetHolder holder) {
- super(type(), holder);
+ public ActionSemanticsFacetAbstract(final Of of, final FacetHolder holder) {
+ super(type(), of, holder);
}
}
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/hide/HiddenFacet.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/hide/HiddenFacet.java?rev=1379956&r1=1379955&r2=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/hide/HiddenFacet.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/hide/HiddenFacet.java Sun Sep 2 12:14:46 2012
@@ -20,7 +20,7 @@
package org.apache.isis.core.metamodel.facets.hide;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facets.SingleWhenValueFacet;
+import org.apache.isis.core.metamodel.facets.WhenAndWhereValueFacet;
import org.apache.isis.core.metamodel.interactions.HidingInteractionAdvisor;
/**
@@ -30,7 +30,7 @@ import org.apache.isis.core.metamodel.in
* In the standard Apache Isis Programming Model, corresponds to annotating the
* member with <tt>@Hidden</tt>.
*/
-public interface HiddenFacet extends SingleWhenValueFacet, HidingInteractionAdvisor {
+public interface HiddenFacet extends WhenAndWhereValueFacet, HidingInteractionAdvisor {
/**
* The reason why the (feature of the) target object is currently hidden, or
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacet.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacet.java?rev=1379956&r1=1379955&r2=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacet.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacet.java Sun Sep 2 12:14:46 2012
@@ -20,7 +20,7 @@
package org.apache.isis.core.metamodel.facets.object.immutable;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.SingleWhenValueFacet;
+import org.apache.isis.core.metamodel.facets.WhenValueFacet;
import org.apache.isis.core.metamodel.facets.ebc.EqualByContentFacet;
import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
import org.apache.isis.core.metamodel.interactions.DisablingInteractionAdvisor;
@@ -38,7 +38,7 @@ import org.apache.isis.core.metamodel.sp
* @see EqualByContentFacet
* @see ValueFacet
*/
-public interface ImmutableFacet extends SingleWhenValueFacet, DisablingInteractionAdvisor {
+public interface ImmutableFacet extends WhenValueFacet, DisablingInteractionAdvisor {
/**
* Clone this facet onto another {@link FacetHolder}.
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacetAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacetAbstract.java?rev=1379956&r1=1379955&r2=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacetAbstract.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacetAbstract.java Sun Sep 2 12:14:46 2012
@@ -19,15 +19,15 @@
package org.apache.isis.core.metamodel.facets.object.immutable;
+import org.apache.isis.applib.annotation.When;
import org.apache.isis.applib.events.UsabilityEvent;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.SingleWhenValueFacetAbstract;
-import org.apache.isis.core.metamodel.facets.When;
+import org.apache.isis.core.metamodel.facets.WhenValueFacetAbstract;
import org.apache.isis.core.metamodel.interactions.UsabilityContext;
-public abstract class ImmutableFacetAbstract extends SingleWhenValueFacetAbstract implements ImmutableFacet {
+public abstract class ImmutableFacetAbstract extends WhenValueFacetAbstract implements ImmutableFacet {
public static Class<? extends Facet> type() {
return ImmutableFacet.class;
@@ -44,18 +44,19 @@ public abstract class ImmutableFacetAbst
public String disables(final UsabilityContext<? extends UsabilityEvent> ic) {
final ObjectAdapter target = ic.getTarget();
switch (ic.getInteractionType()) {
- case PROPERTY_MODIFY:
- case COLLECTION_ADD_TO:
- case COLLECTION_REMOVE_FROM:
- return disabledReason(target);
+ case PROPERTY_MODIFY:
+ case COLLECTION_ADD_TO:
+ case COLLECTION_REMOVE_FROM:
+ return disabledReason(target);
+ default:
+ return null;
}
- return null;
}
public String disabledReason(final ObjectAdapter targetAdapter) {
- if (value() == When.ALWAYS) {
+ if (when() == When.ALWAYS) {
return "Always immmutable";
- } else if (value() == When.NEVER) {
+ } else if (when() == When.NEVER) {
return null;
}
@@ -64,9 +65,9 @@ public abstract class ImmutableFacetAbst
return null;
}
- if (value() == When.UNTIL_PERSISTED) {
+ if (when() == When.UNTIL_PERSISTED) {
return targetAdapter.isTransient() ? "Immutable until persisted" : null;
- } else if (value() == When.ONCE_PERSISTED) {
+ } else if (when() == When.ONCE_PERSISTED) {
return targetAdapter.representsPersistent() ? "Immutable once persisted" : null;
}
return null;
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacetUtils.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacetUtils.java?rev=1379956&r1=1379955&r2=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacetUtils.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacetUtils.java Sun Sep 2 12:14:46 2012
@@ -19,7 +19,7 @@
package org.apache.isis.core.metamodel.facets.object.immutable;
-import org.apache.isis.core.metamodel.facets.When;
+import org.apache.isis.applib.annotation.When;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
public class ImmutableFacetUtils {
@@ -34,7 +34,7 @@ public class ImmutableFacetUtils {
if (immutableFacet == null) {
return false;
}
- return immutableFacet.value() == When.ALWAYS;
+ return immutableFacet.when() == When.ALWAYS;
}
public static boolean isImmutableOncePersisted(final ObjectSpecification specification) {
@@ -47,7 +47,7 @@ public class ImmutableFacetUtils {
if (immutableFacet == null) {
return false;
}
- return immutableFacet.value() == When.ONCE_PERSISTED;
+ return immutableFacet.when() == When.ONCE_PERSISTED;
}
private ImmutableFacetUtils() {
Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/notpersistable/NotPersistableFacet.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/notpersistable/NotPersistableFacet.java?rev=1379956&r1=1379955&r2=1379956&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/notpersistable/NotPersistableFacet.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/notpersistable/NotPersistableFacet.java Sun Sep 2 12:14:46 2012
@@ -19,6 +19,7 @@
package org.apache.isis.core.metamodel.facets.object.notpersistable;
+import org.apache.isis.applib.annotation.NotPersistable;
import org.apache.isis.core.metamodel.facets.SingleValueFacet;
import org.apache.isis.core.metamodel.interactions.DisablingInteractionAdvisor;
@@ -30,6 +31,6 @@ import org.apache.isis.core.metamodel.in
* In the standard Apache Isis Programming Model, typically corresponds to
* applying the <tt>@NotPersistable</tt> annotation at the class level.
*/
-public interface NotPersistableFacet extends SingleValueFacet<InitiatedBy>, DisablingInteractionAdvisor {
+public interface NotPersistableFacet extends SingleValueFacet<NotPersistable.By>, DisablingInteractionAdvisor {
}