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 2011/01/17 10:27:01 UTC

svn commit: r1059826 [2/8] - in /incubator/isis/trunk: alternatives/objectstore/sql/persistor/src/main/java/org/apache/isis/alternatives/objectstore/sql/auto/ alternatives/progmodel/groovy/metamodel/src/main/java/org/apache/isis/progmodel/groovy/metamo...

Copied: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethod.java (from r1056813, incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetedmethod/FacetedMethod.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethod.java?p2=incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethod.java&p1=incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetedmethod/FacetedMethod.java&r1=1056813&r2=1059826&rev=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetedmethod/FacetedMethod.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethod.java Mon Jan 17 09:26:54 2011
@@ -18,7 +18,7 @@
  */
 
 
-package org.apache.isis.core.metamodel.facetedmethod;
+package org.apache.isis.core.metamodel.facets;
 
 import java.lang.reflect.Method;
 import java.util.Collections;
@@ -32,7 +32,6 @@ import org.apache.isis.core.commons.debu
 import org.apache.isis.core.commons.lang.StringUtils;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
-import org.apache.isis.core.metamodel.facets.TypedHolderDefault;
 
 
 /**
@@ -66,7 +65,7 @@ public class FacetedMethod extends Typed
         return new FacetedMethod(FeatureType.COLLECTION, declaringType, method, null, emptyParameterList());
     }
 
-    public static FacetedMethod createActionPeer(Class<?> declaringType, Method method) {
+    public static FacetedMethod createActionFacetedMethod(Class<?> declaringType, Method method) {
         return new FacetedMethod(FeatureType.ACTION, declaringType, method, method.getReturnType(), getParameters(method));
     }
 

Copied: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethodParameter.java (from r1056813, incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetedmethod/FacetedMethodParameter.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethodParameter.java?p2=incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethodParameter.java&p1=incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetedmethod/FacetedMethodParameter.java&r1=1056813&r2=1059826&rev=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetedmethod/FacetedMethodParameter.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetedMethodParameter.java Mon Jan 17 09:26:54 2011
@@ -14,12 +14,11 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.isis.core.metamodel.facetedmethod;
+package org.apache.isis.core.metamodel.facets;
 
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.TypedHolderDefault;
 
-public final class FacetedMethodParameter extends TypedHolderDefault {
+public class FacetedMethodParameter extends TypedHolderDefault {
 
     public FacetedMethodParameter(Class<?> type) {
         super(FeatureType.ACTION_PARAMETER, type);

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodFilteringFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodFilteringFacetFactory.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodFilteringFacetFactory.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodFilteringFacetFactory.java Mon Jan 17 09:26:54 2011
@@ -22,7 +22,6 @@ package org.apache.isis.core.metamodel.f
 
 import java.lang.reflect.Method;
 
-import org.apache.isis.core.metamodel.facetapi.FacetFactory;
 
 
 /**

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodPrefixBasedFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodPrefixBasedFacetFactory.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodPrefixBasedFacetFactory.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodPrefixBasedFacetFactory.java Mon Jan 17 09:26:54 2011
@@ -22,7 +22,6 @@ package org.apache.isis.core.metamodel.f
 
 import java.util.List;
 
-import org.apache.isis.core.metamodel.facetapi.FacetFactory;
 import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
 
 

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodRemoverConstants.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodRemoverConstants.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodRemoverConstants.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MethodRemoverConstants.java Mon Jan 17 09:26:54 2011
@@ -25,7 +25,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.isis.core.metamodel.facetapi.MethodRemover;
-import org.apache.isis.core.metamodel.facetapi.MethodScope;
+import org.apache.isis.core.metamodel.methodutils.MethodScope;
 
 
 public class MethodRemoverConstants {

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/PropertyOrCollectionIdentifyingFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/PropertyOrCollectionIdentifyingFacetFactory.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/PropertyOrCollectionIdentifyingFacetFactory.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/PropertyOrCollectionIdentifyingFacetFactory.java Mon Jan 17 09:26:54 2011
@@ -24,7 +24,6 @@ package org.apache.isis.core.metamodel.f
 import java.lang.reflect.Method;
 import java.util.List;
 
-import org.apache.isis.core.metamodel.facetapi.FacetFactory;
 import org.apache.isis.core.metamodel.facetapi.MethodRemover;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/When.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/When.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/When.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/When.java Mon Jan 17 09:26:54 2011
@@ -20,6 +20,10 @@
 
 package org.apache.isis.core.metamodel.facets;
 
+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.core.metamodel.adapter.ObjectAdapter;
 
 
@@ -44,6 +48,19 @@ public final class When extends Enumerat
                this == When.UNTIL_PERSISTED && isTransient;
     }
 
+    public static When forCorrespondingMarkerSubType(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 static org.apache.isis.core.metamodel.facets.When decode(org.apache.isis.applib.annotation.When when) {
         if (when == org.apache.isis.applib.annotation.When.ALWAYS) {
             return org.apache.isis.core.metamodel.facets.When.ALWAYS;

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/executed/ExecutedFacet.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/executed/ExecutedFacet.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/executed/ExecutedFacet.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/executed/ExecutedFacet.java Mon Jan 17 09:26:54 2011
@@ -19,6 +19,9 @@
 
 package org.apache.isis.core.metamodel.facets.actions.executed;
 
+import java.lang.reflect.Method;
+
+import org.apache.isis.core.commons.lang.NameUtils;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facets.EnumerationAbstract;
 import org.apache.isis.core.metamodel.spec.Target;
@@ -38,10 +41,23 @@ public interface ExecutedFacet extends F
         public static Where LOCALLY = new Where(1, "LOCAL", "Locally");
         public static Where REMOTELY = new Where(2, "REMOTE", "Remotely");
 
+        public static final String REMOTE_PREFIX = "Remote";
+        public static final String LOCAL_PREFIX = "Local";
+
         private Where(final int num, final String nameInCode, final String friendlyName) {
             super(num, nameInCode, friendlyName);
         }
 
+        public static Where lookup(final Method actionMethod) {
+            final String capitalizedName = NameUtils.capitalizeName(actionMethod.getName());
+            if (capitalizedName.startsWith(LOCAL_PREFIX)) {
+                return LOCALLY;
+            } else if (capitalizedName.startsWith(REMOTE_PREFIX)) {
+                return REMOTELY;
+            }
+            return null;
+        }
+
     }
 
     public Where value();

Copied: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/invoke/ActionInvocationFacetAbstract.java (from r1056813, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/invoke/ActionInvocationFacetAbstract.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/invoke/ActionInvocationFacetAbstract.java?p2=incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/invoke/ActionInvocationFacetAbstract.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/invoke/ActionInvocationFacetAbstract.java&r1=1056813&r2=1059826&rev=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/invoke/ActionInvocationFacetAbstract.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/invoke/ActionInvocationFacetAbstract.java Mon Jan 17 09:26:54 2011
@@ -18,12 +18,11 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.actions.invoke;
+package org.apache.isis.core.metamodel.facets.actions.invoke;
 
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.actions.invoke.ActionInvocationFacet;
 
 
 /**

Copied: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionAddToFacetAbstract.java (from r1056813, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/modify/CollectionAddToFacetAbstract.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionAddToFacetAbstract.java?p2=incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionAddToFacetAbstract.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/modify/CollectionAddToFacetAbstract.java&r1=1056813&r2=1059826&rev=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/modify/CollectionAddToFacetAbstract.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionAddToFacetAbstract.java Mon Jan 17 09:26:54 2011
@@ -18,12 +18,11 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.collections.modify;
+package org.apache.isis.core.metamodel.facets.collections.modify;
 
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToFacet;
 
 
 public abstract class CollectionAddToFacetAbstract extends FacetAbstract implements CollectionAddToFacet {

Copied: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionClearFacetAbstract.java (from r1056813, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/modify/CollectionClearFacetAbstract.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionClearFacetAbstract.java?p2=incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionClearFacetAbstract.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/modify/CollectionClearFacetAbstract.java&r1=1056813&r2=1059826&rev=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/modify/CollectionClearFacetAbstract.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionClearFacetAbstract.java Mon Jan 17 09:26:54 2011
@@ -18,12 +18,11 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.collections.modify;
+package org.apache.isis.core.metamodel.facets.collections.modify;
 
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.collections.modify.CollectionClearFacet;
 
 
 public abstract class CollectionClearFacetAbstract extends FacetAbstract implements CollectionClearFacet {

Copied: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionRemoveFromFacetAbstract.java (from r1056813, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/modify/CollectionRemoveFromFacetAbstract.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionRemoveFromFacetAbstract.java?p2=incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionRemoveFromFacetAbstract.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/modify/CollectionRemoveFromFacetAbstract.java&r1=1056813&r2=1059826&rev=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/modify/CollectionRemoveFromFacetAbstract.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/modify/CollectionRemoveFromFacetAbstract.java Mon Jan 17 09:26:54 2011
@@ -18,12 +18,11 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.collections.modify;
+package org.apache.isis.core.metamodel.facets.collections.modify;
 
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemoveFromFacet;
 
 
 public abstract class CollectionRemoveFromFacetAbstract extends FacetAbstract implements CollectionRemoveFromFacet {

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/facets/FacetsFacet.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/facets/FacetsFacet.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/facets/FacetsFacet.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/facets/FacetsFacet.java Mon Jan 17 09:26:54 2011
@@ -21,7 +21,7 @@
 package org.apache.isis.core.metamodel.facets.facets;
 
 import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetFactory;
+import org.apache.isis.core.metamodel.facets.FacetFactory;
 import org.apache.isis.core.metamodel.facets.MultipleValueFacet;
 
 

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/isis/RemoveSetDomainObjectContainerMethodFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/isis/RemoveSetDomainObjectContainerMethodFacetFactory.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/isis/RemoveSetDomainObjectContainerMethodFacetFactory.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/isis/RemoveSetDomainObjectContainerMethodFacetFactory.java Mon Jan 17 09:26:54 2011
@@ -21,11 +21,9 @@
 package org.apache.isis.core.metamodel.facets.object.isis;
 
 import org.apache.isis.applib.DomainObjectContainer;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetapi.MethodRemover;
-import org.apache.isis.core.metamodel.facetapi.MethodScope;
-import org.apache.isis.core.metamodel.spec.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.methodutils.MethodScope;
 
 
 /**
@@ -38,10 +36,9 @@ public class RemoveSetDomainObjectContai
     }
 
     @Override
-    public boolean process(final Class<?> type, final MethodRemover methodRemover, final FacetHolder holder) {
-        methodRemover.removeMethod(MethodScope.OBJECT, "setContainer", void.class, new Class[] { DomainObjectContainer.class });
-        methodRemover.removeMethod(MethodScope.OBJECT, "set_Container", void.class, new Class[] { DomainObjectContainer.class });
-        return false;
+    public void process(ProcessClassContext processClassContext) {
+        processClassContext.removeMethod(MethodScope.OBJECT, "setContainer", void.class, new Class[] { DomainObjectContainer.class });
+        processClassContext.removeMethod(MethodScope.OBJECT, "set_Container", void.class, new Class[] { DomainObjectContainer.class });
     }
 
 }

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/isis/RemoveStaticGettersAndSettersFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/isis/RemoveStaticGettersAndSettersFacetFactory.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/isis/RemoveStaticGettersAndSettersFacetFactory.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/isis/RemoveStaticGettersAndSettersFacetFactory.java Mon Jan 17 09:26:54 2011
@@ -20,11 +20,9 @@
 
 package org.apache.isis.core.metamodel.facets.object.isis;
 
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetapi.MethodRemover;
-import org.apache.isis.core.metamodel.facetapi.MethodScope;
-import org.apache.isis.core.metamodel.spec.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.methodutils.MethodScope;
 
 
 /**
@@ -37,10 +35,9 @@ public class RemoveStaticGettersAndSette
     }
 
     @Override
-    public boolean process(final Class<?> type, final MethodRemover methodRemover, final FacetHolder holder) {
-        methodRemover.removeMethods(MethodScope.CLASS, "get", null, false, 0);
-        methodRemover.removeMethods(MethodScope.CLASS, "set", null, false, 0);
-        return false;
+    public void process(ProcessClassContext processClassContext) {
+        processClassContext.removeMethods(MethodScope.CLASS, "get", null, false, 0);
+        processClassContext.removeMethods(MethodScope.CLASS, "set", null, false, 0);
     }
 
 }

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/java5/RemoveGetClassMethodFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/java5/RemoveGetClassMethodFacetFactory.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/java5/RemoveGetClassMethodFacetFactory.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/java5/RemoveGetClassMethodFacetFactory.java Mon Jan 17 09:26:54 2011
@@ -20,11 +20,9 @@
 
 package org.apache.isis.core.metamodel.facets.object.java5;
 
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetapi.MethodRemover;
-import org.apache.isis.core.metamodel.facetapi.MethodScope;
-import org.apache.isis.core.metamodel.spec.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.methodutils.MethodScope;
 
 
 /**
@@ -40,9 +38,8 @@ public class RemoveGetClassMethodFacetFa
     }
 
     @Override
-    public boolean process(final Class<?> type, final MethodRemover methodRemover, final FacetHolder holder) {
-        methodRemover.removeMethod(MethodScope.OBJECT, "getClass", Class.class, null);
-        return false;
+    public void process(ProcessClassContext processClassContext) {
+        processClassContext.removeMethod(MethodScope.OBJECT, "getClass", Class.class, null);
     }
 
 }

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/java5/RemoveInitMethodFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/java5/RemoveInitMethodFacetFactory.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/java5/RemoveInitMethodFacetFactory.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/java5/RemoveInitMethodFacetFactory.java Mon Jan 17 09:26:54 2011
@@ -20,11 +20,9 @@
 
 package org.apache.isis.core.metamodel.facets.object.java5;
 
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetapi.MethodRemover;
-import org.apache.isis.core.metamodel.facetapi.MethodScope;
-import org.apache.isis.core.metamodel.spec.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.methodutils.MethodScope;
 
 
 /**
@@ -37,9 +35,8 @@ public class RemoveInitMethodFacetFactor
     }
 
     @Override
-    public boolean process(final Class<?> type, final MethodRemover methodRemover, final FacetHolder holder) {
-        methodRemover.removeMethod(MethodScope.OBJECT, "init", void.class, new Class[0]);
-        return false;
+    public void process(ProcessClassContext processClassContext) {
+        processClassContext.removeMethod(MethodScope.OBJECT, "init", void.class, new Class[0]);
     }
 
 }

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/java5/RemoveJavaLangObjectMethodsFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/java5/RemoveJavaLangObjectMethodsFacetFactory.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/java5/RemoveJavaLangObjectMethodsFacetFactory.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/java5/RemoveJavaLangObjectMethodsFacetFactory.java Mon Jan 17 09:26:54 2011
@@ -22,11 +22,9 @@ package org.apache.isis.core.metamodel.f
 
 import java.lang.reflect.Method;
 
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetapi.MethodRemover;
-import org.apache.isis.core.metamodel.facetapi.MethodScope;
-import org.apache.isis.core.metamodel.spec.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.methodutils.MethodScope;
 
 
 /**
@@ -57,13 +55,11 @@ public class RemoveJavaLangObjectMethods
     }
 
     @Override
-    public boolean process(final Class<?> cls, final MethodRemover methodRemover, final FacetHolder holder) {
+    public void process(ProcessClassContext processClassContext) {
         final Method[] methods = Object.class.getMethods();
         for (int i = 0; i < methods.length; i++) {
-            methodRemover.removeMethod(MethodScope.OBJECT, objectMethodNames[i], null, objectMethodParameters[i]);
+            processClassContext.removeMethod(MethodScope.OBJECT, objectMethodNames[i], null, objectMethodParameters[i]);
         }
-
-        return false;
     }
 
 }

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/java5/RemoveSuperclassMethodsFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/java5/RemoveSuperclassMethodsFacetFactory.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/java5/RemoveSuperclassMethodsFacetFactory.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/java5/RemoveSuperclassMethodsFacetFactory.java Mon Jan 17 09:26:54 2011
@@ -24,10 +24,9 @@ import java.lang.reflect.Method;
 
 import org.apache.isis.core.commons.lang.JavaClassUtils;
 import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facetapi.MethodRemover;
-import org.apache.isis.core.metamodel.spec.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 
 
 /**
@@ -43,9 +42,8 @@ public class RemoveSuperclassMethodsFace
     }
 
     @Override
-    public boolean process(final Class<?> type, final MethodRemover methodRemover, final FacetHolder holder) {
-        removeSuperclassMethods(type, methodRemover);
-        return false;
+    public void process(ProcessClassContext processClassContext) {
+        removeSuperclassMethods(processClassContext.getCls(), processClassContext);
     }
 
     private void removeSuperclassMethods(final Class<?> type, final MethodRemover methodRemover) {

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/notpersistable/InitiatedBy.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/notpersistable/InitiatedBy.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/notpersistable/InitiatedBy.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/notpersistable/InitiatedBy.java Mon Jan 17 09:26:54 2011
@@ -20,6 +20,10 @@
 
 package org.apache.isis.core.metamodel.facets.object.notpersistable;
 
+import org.apache.isis.applib.annotation.NotPersistable;
+import org.apache.isis.applib.annotation.NotPersistable.By;
+import org.apache.isis.applib.marker.NonPersistable;
+import org.apache.isis.applib.marker.ProgramPersistable;
 import org.apache.isis.core.metamodel.facets.EnumerationAbstract;
 
 
@@ -30,6 +34,26 @@ public final class InitiatedBy extends E
 
     private InitiatedBy(final int num, final String nameInCode, final String friendlyName) {
         super(num, nameInCode, friendlyName);
+    }
+
+    public static InitiatedBy decodeBy(final NotPersistable.By by) {
+        if (by == NotPersistable.By.USER) {
+            return USER;
+        }
+        if (by == NotPersistable.By.USER_OR_PROGRAM) {
+            return USER_OR_PROGRAM;
+        }
+        return null;
+    }
+
+    public static InitiatedBy forCorrespondingMarkerSubType(final Class<?> cls) {
+        InitiatedBy initiatedBy = null;
+        if (ProgramPersistable.class.isAssignableFrom(cls)) {
+            initiatedBy = USER;
+        } else if (NonPersistable.class.isAssignableFrom(cls)) {
+            initiatedBy = USER_OR_PROGRAM;
+        }
+        return initiatedBy;
     }
 
 }

Copied: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propcoll/access/PropertyOrCollectionAccessorFacet.java (from r1056813, incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propcoll/access/PropertyAccessorFacet.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propcoll/access/PropertyOrCollectionAccessorFacet.java?p2=incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propcoll/access/PropertyOrCollectionAccessorFacet.java&p1=incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propcoll/access/PropertyAccessorFacet.java&r1=1056813&r2=1059826&rev=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propcoll/access/PropertyAccessorFacet.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/propcoll/access/PropertyOrCollectionAccessorFacet.java Mon Jan 17 09:26:54 2011
@@ -26,12 +26,12 @@ import org.apache.isis.core.metamodel.fa
  * The mechanism by which the value of the property can be accessed.
  * 
  * <p>
- * In the standard Apache Isis Programming Model, corresponds to invoking the accessor method for a property.
+ * In the standard Apache Isis Programming Model, corresponds to invoking the accessor method for a property OR a collection.
  */
-public interface PropertyAccessorFacet extends Facet {
+public interface PropertyOrCollectionAccessorFacet extends Facet {
 
     /**
-     * Gets the value of this property from this object.
+     * Gets the value of this property or collection from this object.
      */
     public Object getProperty(ObjectAdapter inObject);
 }

Copied: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/modify/PropertyClearFacetAbstract.java (from r1056813, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/modify/PropertyClearFacetAbstract.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/modify/PropertyClearFacetAbstract.java?p2=incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/modify/PropertyClearFacetAbstract.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/modify/PropertyClearFacetAbstract.java&r1=1056813&r2=1059826&rev=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/modify/PropertyClearFacetAbstract.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/modify/PropertyClearFacetAbstract.java Mon Jan 17 09:26:54 2011
@@ -18,12 +18,11 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.properties.modify;
+package org.apache.isis.core.metamodel.facets.properties.modify;
 
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.properties.modify.PropertyClearFacet;
 
 
 public abstract class PropertyClearFacetAbstract extends FacetAbstract implements PropertyClearFacet {

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/modify/PropertyInitializationFacet.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/modify/PropertyInitializationFacet.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/modify/PropertyInitializationFacet.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/modify/PropertyInitializationFacet.java Mon Jan 17 09:26:54 2011
@@ -21,7 +21,7 @@ package org.apache.isis.core.metamodel.f
 
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.propcoll.access.PropertyAccessorFacet;
+import org.apache.isis.core.metamodel.facets.propcoll.access.PropertyOrCollectionAccessorFacet;
 
 /**
  * The mechanism by which the value of the property can be initialised.
@@ -33,7 +33,7 @@ import org.apache.isis.core.metamodel.fa
  * <p>
  * In the standard Apache Isis Programming Model, corresponds to invoking the mutator method for a property.
  * 
- * @see PropertyAccessorFacet
+ * @see PropertyOrCollectionAccessorFacet
  * @see PropertySetterFacet
  * @see PropertyClearFacet
  */

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/modify/PropertySetterFacet.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/modify/PropertySetterFacet.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/modify/PropertySetterFacet.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/modify/PropertySetterFacet.java Mon Jan 17 09:26:54 2011
@@ -21,7 +21,7 @@ package org.apache.isis.core.metamodel.f
 
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.propcoll.access.PropertyAccessorFacet;
+import org.apache.isis.core.metamodel.facets.propcoll.access.PropertyOrCollectionAccessorFacet;
 
 /**
  * The mechanism by which the value of the property can be set.
@@ -29,7 +29,7 @@ import org.apache.isis.core.metamodel.fa
  * <p>
  * In the standard Apache Isis Programming Model, corresponds to invoking the mutator method for a property.
  * 
- * @see PropertyAccessorFacet
+ * @see PropertyOrCollectionAccessorFacet
  * @see PropertyClearFacet
  * @see PropertyInitializationFacet
  */

Copied: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/modify/PropertySetterFacetAbstract.java (from r1056813, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/modify/PropertySetterFacetAbstract.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/modify/PropertySetterFacetAbstract.java?p2=incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/modify/PropertySetterFacetAbstract.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/modify/PropertySetterFacetAbstract.java&r1=1056813&r2=1059826&rev=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/properties/modify/PropertySetterFacetAbstract.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/modify/PropertySetterFacetAbstract.java Mon Jan 17 09:26:54 2011
@@ -18,12 +18,11 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets.properties.modify;
+package org.apache.isis.core.metamodel.facets.properties.modify;
 
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.properties.modify.PropertySetterFacet;
 
 
 public abstract class PropertySetterFacetAbstract extends FacetAbstract implements PropertySetterFacet {

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/MemberLayoutArranger.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/MemberLayoutArranger.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/MemberLayoutArranger.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/MemberLayoutArranger.java Mon Jan 17 09:26:54 2011
@@ -18,7 +18,7 @@ package org.apache.isis.core.metamodel.l
 
 import java.util.List;
 
-import org.apache.isis.core.metamodel.facetedmethod.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
 public interface MemberLayoutArranger {

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/MemberLayoutArrangerComposite.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/MemberLayoutArrangerComposite.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/MemberLayoutArrangerComposite.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/MemberLayoutArrangerComposite.java Mon Jan 17 09:26:54 2011
@@ -23,7 +23,7 @@ import org.apache.log4j.Logger;
 
 import com.google.inject.internal.Lists;
 
-import org.apache.isis.core.metamodel.facetedmethod.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
 public abstract class MemberLayoutArrangerComposite implements MemberLayoutArranger {

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/memberorderfacet/DeweyOrderSet.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/memberorderfacet/DeweyOrderSet.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/memberorderfacet/DeweyOrderSet.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/memberorderfacet/DeweyOrderSet.java Mon Jan 17 09:26:54 2011
@@ -28,7 +28,7 @@ import java.util.SortedSet;
 import java.util.TreeMap;
 import java.util.TreeSet;
 
-import org.apache.isis.core.metamodel.facetedmethod.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.ordering.MemberOrderFacet;
 import org.apache.isis.core.metamodel.layout.OrderSet;
 

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/memberorderfacet/MemberIdentifierComparator.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/memberorderfacet/MemberIdentifierComparator.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/memberorderfacet/MemberIdentifierComparator.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/memberorderfacet/MemberIdentifierComparator.java Mon Jan 17 09:26:54 2011
@@ -24,7 +24,7 @@ import java.io.Serializable;
 import java.util.Comparator;
 
 import org.apache.isis.applib.Identifier;
-import org.apache.isis.core.metamodel.facetedmethod.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
 
 
 /**

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/memberorderfacet/MemberLayoutArrangerUsingMemberOrderFacet.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/memberorderfacet/MemberLayoutArrangerUsingMemberOrderFacet.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/memberorderfacet/MemberLayoutArrangerUsingMemberOrderFacet.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/memberorderfacet/MemberLayoutArrangerUsingMemberOrderFacet.java Mon Jan 17 09:26:54 2011
@@ -20,7 +20,7 @@ import java.util.List;
 
 import org.apache.log4j.Logger;
 
-import org.apache.isis.core.metamodel.facetedmethod.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.layout.MemberLayoutArranger;
 import org.apache.isis.core.metamodel.layout.OrderSet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/memberorderfacet/MemberOrderComparator.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/memberorderfacet/MemberOrderComparator.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/memberorderfacet/MemberOrderComparator.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/memberorderfacet/MemberOrderComparator.java Mon Jan 17 09:26:54 2011
@@ -24,7 +24,7 @@ import java.util.Comparator;
 import java.util.StringTokenizer;
 
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetedmethod.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.ordering.MemberOrderFacet;
 import org.apache.isis.core.metamodel.layout.OrderSet;
 

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/ordermethod/MemberLayoutArrangerUsingOrderMethod.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/ordermethod/MemberLayoutArrangerUsingOrderMethod.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/ordermethod/MemberLayoutArrangerUsingOrderMethod.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/ordermethod/MemberLayoutArrangerUsingOrderMethod.java Mon Jan 17 09:26:54 2011
@@ -25,12 +25,12 @@ import org.apache.log4j.Logger;
 
 import org.apache.isis.core.commons.lang.JavaClassUtils;
 import org.apache.isis.core.commons.lang.StringUtils;
-import org.apache.isis.core.metamodel.facetapi.MethodScope;
-import org.apache.isis.core.metamodel.facetedmethod.FacetedMethod;
-import org.apache.isis.core.metamodel.facetedmethod.MethodFinderUtils;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.ordering.actionorder.ActionOrderFacet;
 import org.apache.isis.core.metamodel.layout.MemberLayoutArranger;
 import org.apache.isis.core.metamodel.layout.OrderSet;
+import org.apache.isis.core.metamodel.methodutils.MethodFinderUtils;
+import org.apache.isis.core.metamodel.methodutils.MethodScope;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
 public class MemberLayoutArrangerUsingOrderMethod implements MemberLayoutArranger {

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/ordermethod/SimpleOrderSet.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/ordermethod/SimpleOrderSet.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/ordermethod/SimpleOrderSet.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/ordermethod/SimpleOrderSet.java Mon Jan 17 09:26:54 2011
@@ -24,7 +24,7 @@ import java.util.List;
 import java.util.StringTokenizer;
 
 import org.apache.isis.core.commons.lang.NameUtils;
-import org.apache.isis.core.metamodel.facetedmethod.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.layout.OrderSet;
 
 

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/methodutils/MethodFinderUtils.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/methodutils/MethodFinderUtils.java?rev=1059826&r1=1056813&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/methodutils/MethodFinderUtils.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/methodutils/MethodFinderUtils.java Mon Jan 17 09:26:54 2011
@@ -18,7 +18,7 @@
  */
 
 
-package org.apache.isis.core.metamodel.facetedmethod;
+package org.apache.isis.core.metamodel.methodutils;
 
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
@@ -30,7 +30,6 @@ import com.google.common.collect.Maps;
 
 import org.apache.isis.core.commons.lang.JavaClassUtils;
 import org.apache.isis.core.commons.lang.WrapperUtils;
-import org.apache.isis.core.metamodel.facetapi.MethodScope;
 
 
 /**

Copied: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/methodutils/MethodScope.java (from r1056813, incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/MethodScope.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/methodutils/MethodScope.java?p2=incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/methodutils/MethodScope.java&p1=incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/MethodScope.java&r1=1056813&r2=1059826&rev=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/MethodScope.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/methodutils/MethodScope.java Mon Jan 17 09:26:54 2011
@@ -18,11 +18,42 @@
  */
 
 
-package org.apache.isis.core.metamodel.facetapi;
+package org.apache.isis.core.metamodel.methodutils;
+
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
 
 /**
  * As used in the <tt>findAndRemove...</tt> methods.
  */
 public enum MethodScope {
-    CLASS, OBJECT
+    CLASS, OBJECT;
+    
+    public boolean isClass() {
+        return this==CLASS;
+    }
+    
+    public boolean isObject() {
+        return this==OBJECT;
+    }
+
+    public boolean doesNotMatchScope(Method method) {
+        return !matchesScopeOf(method);
+    }
+
+    public boolean matchesScopeOf(Method method) {
+        return isStatic(method) == this.isClass();
+    }
+
+    public static MethodScope scopeFor(Method method) {
+        return isStatic(method)?CLASS:OBJECT;
+    }
+
+    private static boolean isStatic(Method method) {
+        final int modifiers = method.getModifiers();
+        final boolean isStatic = Modifier.isStatic(modifiers);
+        return isStatic;
+    }
+
+
 }

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModel.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModel.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModel.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModel.java Mon Jan 17 09:26:54 2011
@@ -22,7 +22,7 @@ package org.apache.isis.core.metamodel.p
 
 import java.util.List;
 
-import org.apache.isis.core.metamodel.facetapi.FacetFactory;
+import org.apache.isis.core.metamodel.facets.FacetFactory;
 
 
 public interface ProgrammingModel {

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelAbstract.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelAbstract.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ProgrammingModelAbstract.java Mon Jan 17 09:26:54 2011
@@ -25,7 +25,7 @@ import java.util.Collections;
 import java.util.List;
 
 import org.apache.isis.core.commons.factory.InstanceUtil;
-import org.apache.isis.core.metamodel.facetapi.FacetFactory;
+import org.apache.isis.core.metamodel.facets.FacetFactory;
 
 
 public abstract class ProgrammingModelAbstract implements ProgrammingModel {

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectActionSet.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectActionSet.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectActionSet.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectActionSet.java Mon Jan 17 09:26:54 2011
@@ -205,6 +205,14 @@ public class ObjectActionSet implements 
         return false;
     }
 
+    /**
+     * Does nothing
+     */
+    @Override
+    public boolean containsDoOpFacet(final Class<? extends Facet> facetType) {
+        return false;
+    }
+
     /**
      * Does nothing
      */

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ReflectorConstants.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ReflectorConstants.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ReflectorConstants.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ReflectorConstants.java Mon Jan 17 09:26:54 2011
@@ -21,8 +21,8 @@ package org.apache.isis.core.metamodel.s
 
 import org.apache.isis.core.commons.config.ConfigurationConstants;
 import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.metamodel.facetapi.FacetFactory;
 import org.apache.isis.core.metamodel.facetdecorator.FacetDecorator;
+import org.apache.isis.core.metamodel.facets.FacetFactory;
 import org.apache.isis.core.metamodel.layout.dflt.MemberLayoutArrangerDefault;
 import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
 import org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSubstitutor;

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/facetprocessor/FacetProcessor.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/facetprocessor/FacetProcessor.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/facetprocessor/FacetProcessor.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/facetprocessor/FacetProcessor.java Mon Jan 17 09:26:54 2011
@@ -32,16 +32,24 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.lang.ListUtils;
-import org.apache.isis.core.metamodel.facetapi.FacetFactory;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facetapi.MethodRemover;
+import org.apache.isis.core.metamodel.facets.FacetFactory;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.FacetedMethodParameter;
 import org.apache.isis.core.metamodel.facets.MethodFilteringFacetFactory;
 import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactory;
 import org.apache.isis.core.metamodel.facets.MethodRemoverConstants;
 import org.apache.isis.core.metamodel.facets.PropertyOrCollectionIdentifyingFacetFactory;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessClassContext;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessParameterContext;
 import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
 import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
 import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAware;
@@ -62,13 +70,13 @@ public class FacetProcessor implements R
     /**
      * Class<FacetFactory> => FacetFactory
      */
-    private final Map<Class<? extends FacetFactory>, FacetFactory> factoryByFactoryType = new HashMap<Class<? extends FacetFactory>, FacetFactory>();
+    private final Map<Class<? extends FacetFactory>, FacetFactory> factoryByFactoryType = Maps.newHashMap();
 
     /**
      * {@link FacetFactory Facet factories}, in order they were {@link #registerFactory(FacetFactory)
      * registered}.
      */
-    private final List<FacetFactory> factories = new ArrayList<FacetFactory>();
+    private final List<FacetFactory> factories = Lists.newArrayList();
 
     /**
      * All method prefixes to check in {@link #recognizes(Method)}.
@@ -269,22 +277,19 @@ public class FacetProcessor implements R
      * <p>
      * Delegates to {@link FacetFactory#process(Class, FacetHolder)} for each appropriate factory.
      * 
-     * @see FacetFactory#process(Class, MethodRemover, FacetHolder)
+     * @see FacetFactory#process(ProcessClassContext)
      * 
      * @param cls
      *            - class to process
      * @param facetHolder
      *            - holder to attach facets to.
      * 
-     * @return <tt>true</tt> if any facets were added, <tt>false</tt> otherwise.
      */
-    public boolean process(final Class<?> cls, final MethodRemover methodRemover, final FacetHolder facetHolder) {
-        boolean facetsAdded = false;
+    public void process(final Class<?> cls, final MethodRemover methodRemover, final FacetHolder facetHolder) {
         final List<FacetFactory> factoryList = getFactoryListByFeatureType(FeatureType.OBJECT);
         for (final FacetFactory facetFactory : factoryList) {
-            facetsAdded = facetFactory.process(cls, removerElseNullRemover(methodRemover), facetHolder) | facetsAdded;
+            facetFactory.process(new ProcessClassContext(cls, removerElseNullRemover(methodRemover), facetHolder));
         }
-        return facetsAdded;
     }
 
     /**
@@ -300,25 +305,21 @@ public class FacetProcessor implements R
      *           - class in which introspect; allowing the helper methods to be found is subclasses of that which the method was originally found.
      * @param method
      *            - method to process
-     * @param facetHolder
+     * @param facetedMethod
      *            - holder to attach facets to.
      * @param featureType
      *            - what type of feature the method represents (property, action, collection etc)
-     * 
-     * @return <tt>true</tt> if any facets were added, <tt>false</tt> otherwise.
      */
-    public boolean process(
+    public void process(
             final Class<?> cls,
             final Method method,
             final MethodRemover methodRemover,
-            final FacetHolder facetHolder,
+            final FacetedMethod facetedMethod,
             final FeatureType featureType) {
-        boolean facetsAdded = false;
         final List<FacetFactory> factoryList = getFactoryListByFeatureType(featureType);
         for (final FacetFactory facetFactory : factoryList) {
-            facetsAdded = facetFactory.process(cls, method, removerElseNullRemover(methodRemover), facetHolder) | facetsAdded;
+            facetFactory.process(new ProcessMethodContext(cls, method, removerElseNullRemover(methodRemover), facetedMethod));
         }
-        return facetsAdded;
     }
 
     /**
@@ -326,26 +327,22 @@ public class FacetProcessor implements R
      * parameter}), to the supplied {@link FacetHolder}.
      * 
      * <p>
-     * Delegates to {@link FacetFactory#processParams(Method, int, FacetHolder)} for each appropriate factory.
+     * Delegates to {@link FacetFactory#processParams(ProcessParameterContext)} for each appropriate factory.
      * 
-     * @see FacetFactory#processParams(Method, int, FacetHolder)
+     * @see FacetFactory#processParams(ProcessParameterContext)
      * 
      * @param method
      *            - action method to process
      * @param paramNum
      *            - 0-based
-     * @param facetHolder
+     * @param facetedMethodParameter
      *            - holder to attach facets to.
-     * 
-     * @return <tt>true</tt> if any facets were added, <tt>false</tt> otherwise.
      */
-    public boolean processParams(final Method method, final int paramNum, final FacetHolder facetHolder) {
-        boolean facetsAdded = false;
+    public void processParams(final Method method, final int paramNum, final FacetedMethodParameter facetedMethodParameter) {
         final List<FacetFactory> factoryList = getFactoryListByFeatureType(FeatureType.ACTION_PARAMETER);
         for (final FacetFactory facetFactory : factoryList) {
-            facetsAdded = facetFactory.processParams(method, paramNum, facetHolder) | facetsAdded;
+            facetFactory.processParams(new ProcessParameterContext(method, paramNum, facetedMethodParameter));
         }
-        return facetsAdded;
     }
 
     private List<FacetFactory> getFactoryListByFeatureType(final FeatureType featureType) {
@@ -378,7 +375,7 @@ public class FacetProcessor implements R
         if (cachedMethodPrefixes != null) {
             return;
         }
-        cachedMethodPrefixes = new ArrayList<String>();
+        cachedMethodPrefixes = Lists.newArrayList();
         for (final FacetFactory facetFactory : factories) {
             if (facetFactory instanceof MethodPrefixBasedFacetFactory) {
                 final MethodPrefixBasedFacetFactory methodPrefixBasedFacetFactory = (MethodPrefixBasedFacetFactory) facetFactory;
@@ -391,7 +388,7 @@ public class FacetProcessor implements R
         if (cachedMethodFilteringFactories != null) {
             return;
         }
-        cachedMethodFilteringFactories = new ArrayList<MethodFilteringFacetFactory>();
+        cachedMethodFilteringFactories = Lists.newArrayList();
         for (final FacetFactory factory : factories) {
             if (factory instanceof MethodFilteringFacetFactory) {
                 final MethodFilteringFacetFactory methodFilteringFacetFactory = (MethodFilteringFacetFactory) factory;
@@ -404,7 +401,7 @@ public class FacetProcessor implements R
         if (cachedPropertyOrCollectionIdentifyingFactories != null) {
             return;
         }
-        cachedPropertyOrCollectionIdentifyingFactories = new ArrayList<PropertyOrCollectionIdentifyingFacetFactory>();
+        cachedPropertyOrCollectionIdentifyingFactories = Lists.newArrayList();
         final Iterator<FacetFactory> iter = factories.iterator();
         while (iter.hasNext()) {
             final FacetFactory factory = iter.next();

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/package-info.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/package-info.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/package-info.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/package-info.java Mon Jan 17 09:26:54 2011
@@ -31,7 +31,7 @@
  * <tt>nof-core</tt>.  This implementation defines two further sub-APIs which are based on 
  * the {@link org.apache.isis.core.metamodel.facetapi.Facet}s and {@link org.apache.isis.core.metamodel.facetdecorator.FacetDecorator}s:
  * <ul>
- * <li> the {@link ProgrammingModelInstaller} is used to specify the collection of {@link org.apache.isis.core.metamodel.facetapi.FacetFactory}s
+ * <li> the {@link ProgrammingModelInstaller} is used to specify the collection of {@link org.apache.isis.core.metamodel.facets.FacetFactory}s
  *      that will be used to actually process and build up the metamodel.
  * <li> the {@link FacetDecoratorInstaller} API specifies how {@link org.apache.isis.core.metamodel.facetapi.Facet}, once created, 
  *      can be additionally decorated to modify their behaviour.  A number of other components are implemented as

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java Mon Jan 17 09:26:54 2011
@@ -35,16 +35,17 @@ import org.apache.isis.core.commons.exce
 import org.apache.isis.core.commons.lang.ListUtils;
 import org.apache.isis.core.commons.lang.ToString;
 import org.apache.isis.core.metamodel.exceptions.MetaModelException;
-import org.apache.isis.core.metamodel.facetapi.FacetFactory;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facetapi.MethodRemover;
-import org.apache.isis.core.metamodel.facetapi.MethodScope;
-import org.apache.isis.core.metamodel.facetedmethod.FacetedMethod;
-import org.apache.isis.core.metamodel.facetedmethod.FacetedMethodParameter;
-import org.apache.isis.core.metamodel.facetedmethod.MethodFinderUtils;
+import org.apache.isis.core.metamodel.facets.FacetFactory;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.FacetedMethodParameter;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessClassContext;
 import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
 import org.apache.isis.core.metamodel.facets.facets.FacetsFacet;
+import org.apache.isis.core.metamodel.methodutils.MethodFinderUtils;
+import org.apache.isis.core.metamodel.methodutils.MethodScope;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.SpecificationLoader;
 import org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSubstitutor;
@@ -79,6 +80,9 @@ public class FacetedMethodsBuilder {
 
         @Override
         public void removeMethod(final Method method) {
+            if(method==null) {
+                return;
+            }
             for (int i = 0; i < methods.size(); i++) {
                 if (methods.get(i) == null) {
                     continue;
@@ -193,7 +197,7 @@ public class FacetedMethodsBuilder {
                     throw new IsisException(e);
                 }
                 getFacetProcessor().injectDependenciesInto(facetFactory);
-                facetFactory.process(introspectedClass, methodRemover, spec);
+                facetFactory.process(new ProcessClassContext(introspectedClass, methodRemover, spec));
             }
         }
     }
@@ -392,7 +396,7 @@ public class FacetedMethodsBuilder {
             return null;
         }
 
-        final FacetedMethod action = FacetedMethod.createActionPeer(introspectedClass, actionMethod);
+        final FacetedMethod action = FacetedMethod.createActionFacetedMethod(introspectedClass, actionMethod);
 
         // process facets on the action & parameters
         getFacetProcessor()
@@ -436,6 +440,7 @@ public class FacetedMethodsBuilder {
         }
 
         if (getFacetProcessor().recognizes(actionMethod)) {
+            // a bit of a hack
             if (actionMethod.getName().startsWith("set")) {
                 return false;
             }

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionImpl.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionImpl.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionImpl.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionImpl.java Mon Jan 17 09:26:54 2011
@@ -39,8 +39,8 @@ import org.apache.isis.core.metamodel.co
 import org.apache.isis.core.metamodel.consent.InteractionInvocationMethod;
 import org.apache.isis.core.metamodel.consent.InteractionResultSet;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetedmethod.FacetedMethod;
-import org.apache.isis.core.metamodel.facetedmethod.FacetedMethodParameter;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.FacetedMethodParameter;
 import org.apache.isis.core.metamodel.facets.SpecificationFacets;
 import org.apache.isis.core.metamodel.facets.TypedHolder;
 import org.apache.isis.core.metamodel.facets.actions.ActionTypeFacets;

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java Mon Jan 17 09:26:54 2011
@@ -141,6 +141,11 @@ public abstract class ObjectActionParame
     }
 
     @Override
+    public boolean containsDoOpFacet(final Class<? extends Facet> facetType) {
+        return peer == null ? false : peer.containsDoOpFacet(facetType);
+    }
+
+    @Override
     public <T extends Facet> T getFacet(final Class<T> cls) {
         return peer != null ? peer.getFacet(cls) : null;
     }

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java Mon Jan 17 09:26:54 2011
@@ -23,7 +23,7 @@ package org.apache.isis.core.metamodel.s
 import org.apache.isis.core.commons.exceptions.NotYetImplementedException;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetedmethod.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
 import org.apache.isis.core.metamodel.facets.properties.choices.PropertyChoicesFacet;
 import org.apache.isis.core.metamodel.facets.propparam.validate.mandatory.MandatoryFacet;

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java Mon Jan 17 09:26:54 2011
@@ -34,7 +34,7 @@ import org.apache.isis.core.metamodel.co
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facetapi.MultiTypedFacet;
-import org.apache.isis.core.metamodel.facetedmethod.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.help.HelpFacet;
 import org.apache.isis.core.metamodel.facets.hide.HiddenFacet;
 import org.apache.isis.core.metamodel.facets.naming.describedas.DescribedAsFacet;
@@ -123,6 +123,11 @@ public abstract class ObjectMemberAbstra
     }
 
     @Override
+    public boolean containsDoOpFacet(final Class<? extends Facet> facetType) {
+        return getFacetedMethod().containsDoOpFacet(facetType);
+    }
+
+    @Override
     public <T extends Facet> T getFacet(final Class<T> cls) {
         return getFacetedMethod().getFacet(cls);
     }

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationImpl.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationImpl.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationImpl.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationImpl.java Mon Jan 17 09:26:54 2011
@@ -29,13 +29,13 @@ import org.apache.isis.core.metamodel.co
 import org.apache.isis.core.metamodel.consent.InteractionInvocationMethod;
 import org.apache.isis.core.metamodel.consent.InteractionResult;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetedmethod.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToFacet;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionClearFacet;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacetUtils;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemoveFromFacet;
-import org.apache.isis.core.metamodel.facets.propcoll.access.PropertyAccessorFacet;
+import org.apache.isis.core.metamodel.facets.propcoll.access.PropertyOrCollectionAccessorFacet;
 import org.apache.isis.core.metamodel.interactions.CollectionAddToContext;
 import org.apache.isis.core.metamodel.interactions.CollectionRemoveFromContext;
 import org.apache.isis.core.metamodel.interactions.CollectionUsabilityContext;
@@ -150,7 +150,7 @@ public class OneToManyAssociationImpl ex
     @Override
     public ObjectAdapter get(final ObjectAdapter ownerAdapter) {
 
-        final PropertyAccessorFacet accessor = getFacet(PropertyAccessorFacet.class);
+        final PropertyOrCollectionAccessorFacet accessor = getFacet(PropertyOrCollectionAccessorFacet.class);
         final Object collection = accessor.getProperty(ownerAdapter);
         if (collection == null) {
             return null;

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationImpl.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationImpl.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationImpl.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationImpl.java Mon Jan 17 09:26:54 2011
@@ -32,9 +32,9 @@ import org.apache.isis.core.metamodel.co
 import org.apache.isis.core.metamodel.consent.InteractionInvocationMethod;
 import org.apache.isis.core.metamodel.consent.InteractionResult;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetedmethod.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.SpecificationFacets;
-import org.apache.isis.core.metamodel.facets.propcoll.access.PropertyAccessorFacet;
+import org.apache.isis.core.metamodel.facets.propcoll.access.PropertyOrCollectionAccessorFacet;
 import org.apache.isis.core.metamodel.facets.properties.choices.PropertyChoicesFacet;
 import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
 import org.apache.isis.core.metamodel.facets.properties.modify.PropertyClearFacet;
@@ -135,7 +135,7 @@ public class OneToOneAssociationImpl ext
 
     @Override
     public ObjectAdapter get(final ObjectAdapter ownerAdapter) {
-        final PropertyAccessorFacet facet = getFacet(PropertyAccessorFacet.class);
+        final PropertyOrCollectionAccessorFacet facet = getFacet(PropertyOrCollectionAccessorFacet.class);
         final Object referencedPojo = facet.getProperty(ownerAdapter);
         
         if (referencedPojo == null) {

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java Mon Jan 17 09:26:54 2011
@@ -46,7 +46,7 @@ import org.apache.isis.core.metamodel.ad
 import org.apache.isis.core.metamodel.exceptions.MetaModelException;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetedmethod.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.ImperativeFacet;
 import org.apache.isis.core.metamodel.facets.ImperativeFacetUtils;
 import org.apache.isis.core.metamodel.facets.naming.named.NamedFacet;

Modified: incubator/isis/trunk/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest.java?rev=1059826&r1=1059825&r2=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest.java (original)
+++ incubator/isis/trunk/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest.java Mon Jan 17 09:26:54 2011
@@ -37,7 +37,7 @@ import org.apache.isis.core.metamodel.ad
 import org.apache.isis.core.metamodel.consent.InteractionInvocationMethod;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facetedmethod.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.hide.HiddenFacet;
 import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
 import org.apache.isis.core.metamodel.facets.properties.choices.PropertyChoicesFacet;
@@ -46,7 +46,6 @@ import org.apache.isis.core.metamodel.in
 import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.spec.Instance;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
-import org.apache.isis.core.metamodel.specloader.specimpl.ObjectAssociationAbstract;
 import org.apache.isis.core.metamodel.testspec.TestProxySpecification;
 
 
@@ -120,6 +119,12 @@ public class ObjectAssociationAbstractTe
             public Instance getInstance(ObjectAdapter adapter) {
                 return null;
             }
+
+            @Override
+            public boolean containsDoOpFacet(Class<? extends Facet> facetType) {
+                // TODO Auto-generated method stub
+                return false;
+            }
         };
     }
 

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/util/ArrayUtil.java (from r1056832, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/ArrayUtil.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/util/ArrayUtil.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/util/ArrayUtil.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/ArrayUtil.java&r1=1056832&r2=1059826&rev=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/ArrayUtil.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/util/ArrayUtil.java Mon Jan 17 09:26:54 2011
@@ -18,7 +18,7 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets;
+package org.apache.isis.core.progmodel.util;
 
 import java.lang.reflect.Array;
 import java.lang.reflect.Constructor;

Copied: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/util/ClassUtil.java (from r1056832, incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/ClassUtil.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/util/ClassUtil.java?p2=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/util/ClassUtil.java&p1=incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/ClassUtil.java&r1=1056832&r2=1059826&rev=1059826&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/ClassUtil.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/util/ClassUtil.java Mon Jan 17 09:26:54 2011
@@ -18,7 +18,7 @@
  */
 
 
-package org.apache.isis.core.progmodel.facets;
+package org.apache.isis.core.progmodel.util;
 
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;