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 2010/12/21 13:06:23 UTC

svn commit: r1051471 [4/10] - in /incubator/isis/trunk: alternatives/embedded/src/main/java/org/apache/isis/alternatives/embedded/ alternatives/embedded/src/main/java/org/apache/isis/alternatives/embedded/internal/ alternatives/objectstore/nosql/src/te...

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/internal/facetprocessor/FacetProcessor.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/internal/facetprocessor/FacetProcessor.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/internal/facetprocessor/FacetProcessor.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/internal/facetprocessor/FacetProcessor.java Tue Dec 21 12:06:15 2010
@@ -159,13 +159,14 @@ public class FacetProcessor implements R
      * (eg in <tt>JavaIntrospector</tt>).
      *
      * <p>
-     * See bug-517.
+     * See NOF bug-517.
      */
 	public void injectDependenciesInto(final FacetFactory factory) {
-		getCollectionTypeRepository().injectInto(factory);
-        getSpecificationLoader().injectInto(factory);
-        getRuntimeContext().injectInto(factory);
-        getIsisConfiguration().injectInto(factory);
+		getCollectionTypeRepository().injectInto(factory);
+        getIsisConfiguration().injectInto(factory);
+		
+        // cascades all the subcomponents also
+        getRuntimeContext().injectInto(factory); 
 	}
 
 	public FacetFactory getFactoryByFactoryType(final Class<? extends FacetFactory> factoryType) {

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/internal/peer/ObjectMemberPeerImpl.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/internal/peer/ObjectMemberPeerImpl.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/internal/peer/ObjectMemberPeerImpl.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/internal/peer/ObjectMemberPeerImpl.java Tue Dec 21 12:06:15 2010
@@ -47,7 +47,7 @@ public class ObjectMemberPeerImpl extend
 
     public static ObjectMemberPeer createActionPeer(Class<?> type, Method method, Class<?> returnType,
         SpecificationLoader specificationLoader) {
-        return new ObjectMemberPeerImpl(FeatureType.ACTION, type, method, actionIdentifierFor(type, method), returnType, Util.getParamPeers(method, specificationLoader), specificationLoader);
+        return new ObjectMemberPeerImpl(FeatureType.ACTION, type, method, actionIdentifierFor(type, method), returnType, Util.getParamPeers(method), specificationLoader);
     }
 
 

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/internal/peer/TypedHolder.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/internal/peer/TypedHolder.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/internal/peer/TypedHolder.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/internal/peer/TypedHolder.java Tue Dec 21 12:06:15 2010
@@ -23,7 +23,6 @@ package org.apache.isis.core.metamodel.s
 import org.apache.isis.core.metamodel.facets.FacetHolder;
 import org.apache.isis.core.metamodel.runtimecontext.spec.feature.FeatureType;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 
 
 /**
@@ -46,11 +45,6 @@ public interface TypedHolder extends Fac
      */
     public void setType(Class<?> type);
 
-    /**
-     * The {@link ObjectSpecification} corresponding to {@link #getType()}
-     * (or null if not yet {@link #setType(Class)}).
-     */
-    ObjectSpecification getSpecification(SpecificationLoader specificationLoader);
 
     /**
      * @return

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/internal/peer/TypedHolderImpl.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/internal/peer/TypedHolderImpl.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/internal/peer/TypedHolderImpl.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/internal/peer/TypedHolderImpl.java Tue Dec 21 12:06:15 2010
@@ -18,8 +18,6 @@ package org.apache.isis.core.metamodel.s
 
 import org.apache.isis.core.metamodel.facets.FacetHolderImpl;
 import org.apache.isis.core.metamodel.runtimecontext.spec.feature.FeatureType;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 
 public class TypedHolderImpl extends FacetHolderImpl implements TypedHolder {
 
@@ -42,11 +40,6 @@ public class TypedHolderImpl extends Fac
     }
 
     @Override
-    public ObjectSpecification getSpecification(final SpecificationLoader specificationLoader) {
-        return getType() == null ? null : specificationLoader.loadSpecification(getType());
-    }
-
-    @Override
     public void setType(Class<?> type) {
         this.type = type;
     }

Modified: incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/ObjectAdapterUtils.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/ObjectAdapterUtils.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/ObjectAdapterUtils.java (original)
+++ incubator/isis/trunk/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/ObjectAdapterUtils.java Tue Dec 21 12:06:15 2010
@@ -22,15 +22,15 @@ package org.apache.isis.core.metamodel.u
 
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
+import org.apache.isis.core.metamodel.runtimecontext.AdapterMap;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
 
 public final class ObjectAdapterUtils {
     private ObjectAdapterUtils() {}
 
-    public static Object[] getCollectionAsObjectArray(final Object option, final ObjectSpecification spec, RuntimeContext runtimeContext) {
-        final ObjectAdapter collection = runtimeContext.adapterFor(option);
+    public static Object[] getCollectionAsObjectArray(final Object option, final ObjectSpecification spec, AdapterMap adapterManager) {
+        final ObjectAdapter collection = adapterManager.adapterFor(option);
         final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(collection);
     	final Object[] optionArray = new Object[facet.size(collection)];
     	int j = 0;

Modified: incubator/isis/trunk/core/metamodel/src/test/java/org/apache/isis/core/metamodel/runtimecontext/spec/feature/ObjectAssociationAbstractTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/metamodel/src/test/java/org/apache/isis/core/metamodel/runtimecontext/spec/feature/ObjectAssociationAbstractTest.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/metamodel/src/test/java/org/apache/isis/core/metamodel/runtimecontext/spec/feature/ObjectAssociationAbstractTest.java (original)
+++ incubator/isis/trunk/core/metamodel/src/test/java/org/apache/isis/core/metamodel/runtimecontext/spec/feature/ObjectAssociationAbstractTest.java Tue Dec 21 12:06:15 2010
@@ -23,6 +23,14 @@ package org.apache.isis.core.metamodel.r
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
+import org.jmock.Expectations;
+import org.jmock.Mockery;
+import org.jmock.integration.junit4.JMock;
+import org.jmock.integration.junit4.JUnit4Mockery;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 import org.apache.isis.core.metamodel.adapter.Instance;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.authentication.AuthenticationSession;
@@ -34,16 +42,8 @@ import org.apache.isis.core.metamodel.fa
 import org.apache.isis.core.metamodel.facets.propparam.validate.mandatory.MandatoryFacet;
 import org.apache.isis.core.metamodel.interactions.UsabilityContext;
 import org.apache.isis.core.metamodel.interactions.VisibilityContext;
-import org.apache.isis.core.metamodel.runtimecontext.spec.feature.ObjectAssociationAbstract;
 import org.apache.isis.core.metamodel.spec.identifier.IdentifiedImpl;
 import org.apache.isis.core.metamodel.testspec.TestProxySpecification;
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.jmock.integration.junit4.JMock;
-import org.jmock.integration.junit4.JUnit4Mockery;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
 
 
 @RunWith(JMock.class)
@@ -58,26 +58,32 @@ public class ObjectAssociationAbstractTe
     public void setup() {
         facetHolder = new IdentifiedImpl();
         objectAssociation = new ObjectAssociationAbstract("id", new TestProxySpecification("test"),
-                FeatureType.PROPERTY, facetHolder, null) {
+                FeatureType.PROPERTY, facetHolder, null, null, null, null) {
 
+            @Override
             public ObjectAdapter get(ObjectAdapter fromObject) {
                 return null;
             }
 
+            @Override
             public boolean isEmpty(ObjectAdapter adapter) {
                 return false;
             }
 
+            @Override
             public ObjectAdapter[] getChoices(ObjectAdapter object) {
                 return null;
             }
 
+            @Override
             public ObjectAdapter getDefault(ObjectAdapter adapter) {
                 return null;
             }
 
+            @Override
             public void toDefault(ObjectAdapter target) {}
 
+            @Override
             public UsabilityContext<?> createUsableInteractionContext(
                     AuthenticationSession session,
                     InteractionInvocationMethod invocationMethod,
@@ -85,6 +91,7 @@ public class ObjectAssociationAbstractTe
                 return null;
             }
 
+            @Override
             public VisibilityContext<?> createVisibleInteractionContext(
                     AuthenticationSession session,
                     InteractionInvocationMethod invocationMethod,
@@ -92,10 +99,12 @@ public class ObjectAssociationAbstractTe
                 return null;
             }
 
+            @Override
             public String debugData() {
                 return null;
             }
 
+            @Override
             public Instance getInstance(ObjectAdapter adapter) {
                 return null;
             }

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfAnnotationFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfAnnotationFacetFactory.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfAnnotationFacetFactory.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfAnnotationFacetFactory.java Tue Dec 21 12:06:15 2010
@@ -20,12 +20,12 @@
 
 package org.apache.isis.core.progmodel.facets.actcoll.typeof;
 
-import java.lang.reflect.Method;
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import java.lang.reflect.TypeVariable;
-
-import org.apache.isis.applib.annotation.TypeOf;
+import java.lang.reflect.Method;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.lang.reflect.TypeVariable;
+
+import org.apache.isis.applib.annotation.TypeOf;
 import org.apache.isis.core.metamodel.facets.FacetHolder;
 import org.apache.isis.core.metamodel.facets.FacetUtil;
 import org.apache.isis.core.metamodel.facets.MethodRemover;
@@ -55,12 +55,12 @@ public class TypeOfAnnotationFacetFactor
         final Class<?> returnType = method.getReturnType();
         if (returnType.isArray()) {
             final Class<?> componentType = returnType.getComponentType();
-            FacetUtil.addFacet(new TypeOfFacetInferredFromArray(componentType, holder, getSpecificationLoader()));
+            FacetUtil.addFacet(new TypeOfFacetInferredFromArray(componentType, holder, getSpecificationLookup()));
             return false;
         }
 
         if (annotation != null) {
-            return FacetUtil.addFacet(new TypeOfFacetViaAnnotation(annotation.value(), holder, getSpecificationLoader()));
+            return FacetUtil.addFacet(new TypeOfFacetViaAnnotation(annotation.value(), holder, getSpecificationLookup()));
         }
 
         final Type type = method.getGenericReturnType();
@@ -77,7 +77,7 @@ public class TypeOfAnnotationFacetFactor
         final Object actualTypeArgument = actualTypeArguments[0];
         if (actualTypeArgument instanceof Class) {
             final Class<?> actualType = (Class<?>) actualTypeArgument;
-            return FacetUtil.addFacet(new TypeOfFacetInferredFromGenerics(actualType, holder, getSpecificationLoader()));
+            return FacetUtil.addFacet(new TypeOfFacetInferredFromGenerics(actualType, holder, getSpecificationLookup()));
         }
 
         if (actualTypeArgument instanceof TypeVariable) {
@@ -89,6 +89,7 @@ public class TypeOfAnnotationFacetFactor
         return false;
     }
 
+    @Override
     public void setCollectionTypeRegistry(final CollectionTypeRegistry collectionTypeRegistry) {
         this.collectionTypeRegistry = collectionTypeRegistry;
     }

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfFacetAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfFacetAbstract.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfFacetAbstract.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfFacetAbstract.java Tue Dec 21 12:06:15 2010
@@ -24,7 +24,7 @@ import org.apache.isis.core.metamodel.fa
 import org.apache.isis.core.metamodel.facets.FacetHolder;
 import org.apache.isis.core.metamodel.facets.SingleClassValueFacetAbstract;
 import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
+import org.apache.isis.core.metamodel.runtimecontext.SpecificationLookup;
 
 
 public abstract class TypeOfFacetAbstract extends SingleClassValueFacetAbstract implements TypeOfFacet {
@@ -36,8 +36,8 @@ public abstract class TypeOfFacetAbstrac
     public TypeOfFacetAbstract(
             final Class<?> type,
             final FacetHolder holder,
-            final SpecificationLoader specificationLoader) {
-        super(type(), holder, type, specificationLoader);
+            final SpecificationLookup specificationLookup) {
+        super(type(), holder, type, specificationLookup);
     }
 
     @Override

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfFacetDefaultToObject.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfFacetDefaultToObject.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfFacetDefaultToObject.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfFacetDefaultToObject.java Tue Dec 21 12:06:15 2010
@@ -21,15 +21,15 @@
 package org.apache.isis.core.progmodel.facets.actcoll.typeof;
 
 import org.apache.isis.core.metamodel.facets.FacetHolder;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
+import org.apache.isis.core.metamodel.runtimecontext.SpecificationLookup;
 
 
 public class TypeOfFacetDefaultToObject extends TypeOfFacetAbstract {
 
     public TypeOfFacetDefaultToObject(
             final FacetHolder holder, 
-            final SpecificationLoader specificationLoader) {
-        super(Object.class, holder, specificationLoader);
+            final SpecificationLookup specificationLookup) {
+        super(Object.class, holder, specificationLookup);
     }
     
 

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfFacetInferredFromArray.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfFacetInferredFromArray.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfFacetInferredFromArray.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfFacetInferredFromArray.java Tue Dec 21 12:06:15 2010
@@ -21,7 +21,7 @@
 package org.apache.isis.core.progmodel.facets.actcoll.typeof;
 
 import org.apache.isis.core.metamodel.facets.FacetHolder;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
+import org.apache.isis.core.metamodel.runtimecontext.SpecificationLookup;
 
 
 public class TypeOfFacetInferredFromArray extends TypeOfFacetAbstract {
@@ -29,8 +29,8 @@ public class TypeOfFacetInferredFromArra
     public TypeOfFacetInferredFromArray(
             final Class<?> type, 
             final FacetHolder holder, 
-            final SpecificationLoader specificationLoader) {
-        super(type, holder, specificationLoader);
+            final SpecificationLookup specificationLookup) {
+        super(type, holder, specificationLookup);
     }
 
 

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfFacetInferredFromGenerics.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfFacetInferredFromGenerics.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfFacetInferredFromGenerics.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfFacetInferredFromGenerics.java Tue Dec 21 12:06:15 2010
@@ -21,7 +21,7 @@
 package org.apache.isis.core.progmodel.facets.actcoll.typeof;
 
 import org.apache.isis.core.metamodel.facets.FacetHolder;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
+import org.apache.isis.core.metamodel.runtimecontext.SpecificationLookup;
 
 
 public class TypeOfFacetInferredFromGenerics extends TypeOfFacetAbstract {
@@ -29,8 +29,8 @@ public class TypeOfFacetInferredFromGene
     public TypeOfFacetInferredFromGenerics(
             final Class<?> type, 
             final FacetHolder holder, 
-            final SpecificationLoader specificationLoader) {
-        super(type, holder, specificationLoader);
+            final SpecificationLookup specificationLookup) {
+        super(type, holder, specificationLookup);
     }
 
 }

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfFacetInferredFromSupportingMethods.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfFacetInferredFromSupportingMethods.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfFacetInferredFromSupportingMethods.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfFacetInferredFromSupportingMethods.java Tue Dec 21 12:06:15 2010
@@ -21,7 +21,7 @@
 package org.apache.isis.core.progmodel.facets.actcoll.typeof;
 
 import org.apache.isis.core.metamodel.facets.FacetHolder;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
+import org.apache.isis.core.metamodel.runtimecontext.SpecificationLookup;
 
 
 public class TypeOfFacetInferredFromSupportingMethods extends TypeOfFacetAbstract {
@@ -29,8 +29,8 @@ public class TypeOfFacetInferredFromSupp
     public TypeOfFacetInferredFromSupportingMethods(
             final Class<?> type,
             final FacetHolder holder,
-            final SpecificationLoader specificationLoader) {
-        super(type, holder, specificationLoader);
+            final SpecificationLookup specificationLookup) {
+        super(type, holder, specificationLookup);
     }
 
 }

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfFacetViaAnnotation.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfFacetViaAnnotation.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfFacetViaAnnotation.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actcoll/typeof/TypeOfFacetViaAnnotation.java Tue Dec 21 12:06:15 2010
@@ -21,7 +21,7 @@
 package org.apache.isis.core.progmodel.facets.actcoll.typeof;
 
 import org.apache.isis.core.metamodel.facets.FacetHolder;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
+import org.apache.isis.core.metamodel.runtimecontext.SpecificationLookup;
 
 
 public class TypeOfFacetViaAnnotation extends TypeOfFacetAbstract {
@@ -29,8 +29,8 @@ public class TypeOfFacetViaAnnotation ex
     public TypeOfFacetViaAnnotation(
             final Class<?> type, 
             final FacetHolder holder, 
-            final SpecificationLoader specificationLoader) {
-        super(type, holder, specificationLoader);
+            final SpecificationLookup specificationLookup) {
+        super(type, holder, specificationLookup);
     }
 
 }

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/ActionMethodsFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/ActionMethodsFacetFactory.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/ActionMethodsFacetFactory.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/ActionMethodsFacetFactory.java Tue Dec 21 12:06:15 2010
@@ -33,8 +33,8 @@ import org.apache.isis.core.metamodel.fa
 import org.apache.isis.core.metamodel.facets.FacetUtil;
 import org.apache.isis.core.metamodel.facets.MethodRemover;
 import org.apache.isis.core.metamodel.facets.actions.executed.ExecutedFacet.Where;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAware;
+import org.apache.isis.core.metamodel.runtimecontext.AdapterMap;
+import org.apache.isis.core.metamodel.runtimecontext.AdapterMapAware;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectFeatureType;
 import org.apache.isis.core.metamodel.specloader.internal.peer.ObjectMemberPeer;
@@ -57,7 +57,7 @@ import org.apache.isis.core.progmodel.fa
  * <p>
  * TODO: should be more fine-grained?
  */
-public class ActionMethodsFacetFactory extends MethodPrefixBasedFacetFactoryAbstract implements RuntimeContextAware {
+public class ActionMethodsFacetFactory extends MethodPrefixBasedFacetFactoryAbstract implements AdapterMapAware {
 
     private static final String EXPLORATION_PREFIX = "Exploration";
     private static final String DEBUG_PREFIX = "Debug";
@@ -74,7 +74,7 @@ public class ActionMethodsFacetFactory e
             PARAMETER_NAMES_PREFIX, PARAMETER_DESCRIPTIONS_PREFIX, PARAMETER_OPTIONAL_PREFIX, PARAMETER_DEFAULTS_PREFIX,
             PARAMETER_CHOICES_PREFIX, };
     
-	private RuntimeContext runtimeContext;
+    private AdapterMap adapterMap;
 
     /**
      * Note that the {@link Facet}s registered are the generic ones from noa-architecture (where they exist)
@@ -96,10 +96,10 @@ public class ActionMethodsFacetFactory e
 
         final List<Facet> facets = new ArrayList<Facet>();
 
-        final ObjectSpecification typeSpec = getSpecificationLoader().loadSpecification(cls);
-        final ObjectSpecification returnSpec = getSpecificationLoader().loadSpecification(returnType.getName());
+        final ObjectSpecification typeSpec = getSpecificationLookup().loadSpecification(cls);
+        final ObjectSpecification returnSpec = getSpecificationLookup().loadSpecification(returnType);
         if (returnSpec != null) {
-            facets.add(new ActionInvocationFacetViaMethod(actionMethod, typeSpec, returnSpec, holder, getRuntimeContext()));
+            facets.add(new ActionInvocationFacetViaMethod(actionMethod, typeSpec, returnSpec, holder, getAdapterMap()));
             checkForDebugPrefix(facets, capitalizedName, holder);
             checkForExplorationPrefix(facets, capitalizedName, holder);
             checkForExecutionLocationPrefix(facets, capitalizedName, holder);
@@ -285,7 +285,7 @@ public class ActionMethodsFacetFactory e
             return false;
         }
 
-        actionFacets.add(new ActionChoicesFacetViaMethod(method, returnType, action, getSpecificationLoader(), getRuntimeContext()));
+        actionFacets.add(new ActionChoicesFacetViaMethod(method, returnType, action, getSpecificationLookup(), adapterMap));
         return true;
     }
 
@@ -369,7 +369,7 @@ public class ActionMethodsFacetFactory e
                 removeMethod(methodRemover, method);
 
                 // add facets directly to parameters, not to actions
-                FacetUtil.addFacet(new ActionParameterChoicesFacetViaMethod(method, returnType, parameters.get(i), getRuntimeContext()));
+                FacetUtil.addFacet(new ActionParameterChoicesFacetViaMethod(method, returnType, parameters.get(i), getSpecificationLookup(), getAdapterMap()));
             }
         }
     }
@@ -438,27 +438,21 @@ public class ActionMethodsFacetFactory e
             }
         }
         return true;
-    }
+    }
+
 
     
     /////////////////////////////////////////////////////////////////
     // Dependencies
     /////////////////////////////////////////////////////////////////
     
-    /**
-     * @see #setRuntimeContext(RuntimeContext)
-     * @return
-     */
-    public RuntimeContext getRuntimeContext() {
-		return runtimeContext;
-	}
-    
-    /**
-     * Injected because {@link RuntimeContextAware}
-     */
-	@Override
-    public void setRuntimeContext(final RuntimeContext runtimeContext) {
-		this.runtimeContext = runtimeContext;
-	}
+    @Override
+    public void setAdapterMap(AdapterMap adapterManager) {
+        this.adapterMap = adapterManager;
+    }
+    
+    private AdapterMap getAdapterMap() {
+        return adapterMap;
+    }
 
 }

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/choices/ActionChoicesFacetViaMethod.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/choices/ActionChoicesFacetViaMethod.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/choices/ActionChoicesFacetViaMethod.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/choices/ActionChoicesFacetViaMethod.java Tue Dec 21 12:06:15 2010
@@ -17,7 +17,6 @@
  *  under the License.
  */
 
-
 package org.apache.isis.core.progmodel.facets.actions.choices;
 
 import java.lang.reflect.Method;
@@ -29,55 +28,53 @@ import org.apache.isis.core.metamodel.ad
 import org.apache.isis.core.metamodel.exceptions.ModelException;
 import org.apache.isis.core.metamodel.facets.FacetHolder;
 import org.apache.isis.core.metamodel.java5.ImperativeFacet;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
+import org.apache.isis.core.metamodel.runtimecontext.AdapterMap;
+import org.apache.isis.core.metamodel.runtimecontext.SpecificationLookup;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.metamodel.util.ObjectAdapterUtils;
 import org.apache.isis.core.metamodel.util.ObjectInvokeUtils;
 
-
 public class ActionChoicesFacetViaMethod extends ActionChoicesFacetAbstract implements ImperativeFacet {
 
     private final Method method;
     private final Class<?> choicesType;
-	private final RuntimeContext runtimeContext;
-	private final SpecificationLoader specificationLoader;
+    private final SpecificationLookup specificationLookup;
+    private final AdapterMap adapterMap;
 
-    public ActionChoicesFacetViaMethod(
-    		final Method method, 
-    		final Class<?> choicesType, 
-    		final FacetHolder holder, 
-    		final SpecificationLoader specificationLoader, 
-    		final RuntimeContext runtimeContext) {
+    public ActionChoicesFacetViaMethod(final Method method, final Class<?> choicesType, final FacetHolder holder,
+        final SpecificationLookup specificationLookup, final AdapterMap adapterManager) {
         super(holder);
         this.method = method;
         this.choicesType = choicesType;
-        this.specificationLoader = specificationLoader;
-        this.runtimeContext = runtimeContext;
+        this.specificationLookup = specificationLookup;
+        this.adapterMap = adapterManager;
     }
 
     /**
-     * Returns a singleton list of the {@link Method} provided in the constructor. 
+     * Returns a singleton list of the {@link Method} provided in the constructor.
      */
+    @Override
     public List<Method> getMethods() {
-    	return Collections.singletonList(method);
+        return Collections.singletonList(method);
     }
 
+    @Override
     public boolean impliesResolve() {
-    	return true;
+        return true;
     }
-    
+
+    @Override
     public boolean impliesObjectChanged() {
-    	return false;
+        return false;
     }
-    
 
+    @Override
     public Object[][] getChoices(final ObjectAdapter owningAdapter) {
         Object invoke = ObjectInvokeUtils.invoke(method, owningAdapter);
         if (!(invoke instanceof Object[])) {
             throw new ModelException(
-                    "Expected an array of collections (Object[]) containing choices for all parameters, but got " + invoke
-                            + " instead. Perhaps the parameter number is missing!");
+                "Expected an array of collections (Object[]) containing choices for all parameters, but got " + invoke
+                    + " instead. Perhaps the parameter number is missing!");
         }
         final Object[] options = (Object[]) invoke;
         final Object[][] results = new Object[options.length][];
@@ -87,26 +84,29 @@ public class ActionChoicesFacetViaMethod
             } else if (options[i].getClass().isArray()) {
                 results[i] = ArrayUtils.getObjectAsObjectArray(options[i]);
             } else {
-                final ObjectSpecification specification = getSpecificationLoader().loadSpecification(choicesType);
-                results[i] = ObjectAdapterUtils.getCollectionAsObjectArray(options[i], specification, getRuntimeContext());
+                final ObjectSpecification specification = getSpecificationLookup().loadSpecification(choicesType);
+                results[i] =
+                    ObjectAdapterUtils.getCollectionAsObjectArray(options[i], specification, getAdapterMap());
             }
         }
         return results;
     }
 
-    private SpecificationLoader getSpecificationLoader() {
-    	return specificationLoader;
-    }
-    
-    private RuntimeContext getRuntimeContext() {
-		return runtimeContext;
-	}
-
-	@Override
+    @Override
     protected String toStringValues() {
         return "method=" + method + ",type=" + choicesType;
     }
 
+    // ///////////////////////////////////////////////////////
+    // Dependencies
+    // ///////////////////////////////////////////////////////
 
-}
+    private SpecificationLookup getSpecificationLookup() {
+        return specificationLookup;
+    }
 
+    private AdapterMap getAdapterMap() {
+        return adapterMap;
+    }
+
+}

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/choices/ActionParameterChoicesFacetAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/choices/ActionParameterChoicesFacetAbstract.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/choices/ActionParameterChoicesFacetAbstract.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/choices/ActionParameterChoicesFacetAbstract.java Tue Dec 21 12:06:15 2010
@@ -24,27 +24,44 @@ import org.apache.isis.core.metamodel.fa
 import org.apache.isis.core.metamodel.facets.FacetAbstract;
 import org.apache.isis.core.metamodel.facets.FacetHolder;
 import org.apache.isis.core.metamodel.facets.actions.choices.ActionParameterChoicesFacet;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
+import org.apache.isis.core.metamodel.runtimecontext.AdapterMap;
+import org.apache.isis.core.metamodel.runtimecontext.SpecificationLookup;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
 
 public abstract class ActionParameterChoicesFacetAbstract extends FacetAbstract implements ActionParameterChoicesFacet {
 
     public static Class<? extends Facet> type() {
         return ActionParameterChoicesFacet.class;
-    }
+    }
+
+    private final SpecificationLookup specificationLookup;
+    private final AdapterMap adapterMap;
 
-    private final RuntimeContext runtimeContext;
-    
-    public ActionParameterChoicesFacetAbstract(final FacetHolder holder, final RuntimeContext runtimeContext) {
+    public ActionParameterChoicesFacetAbstract(
+        final FacetHolder holder, final SpecificationLookup specificationLookup, final AdapterMap adapterManager) {
         super(type(), holder, false);
-        this.runtimeContext = runtimeContext;
+        this.specificationLookup = specificationLookup;
+        this.adapterMap = adapterManager;
     }
 
-    protected RuntimeContext getRuntimeContext() {
-        return runtimeContext;
+    protected ObjectSpecification getSpecification(Class<?> type) {
+        return type != null? getSpecificationLookup().loadSpecification(type): null;
     }
-
-
+    
+    
+    ///////////////////////////////////////////////////////////
+    // Dependencies
+    ///////////////////////////////////////////////////////////
+    
+    protected SpecificationLookup getSpecificationLookup() {
+        return specificationLookup;
+    }
+    
+    protected AdapterMap getAdapterMap() {
+        return adapterMap;
+    }
+    
 }
 
 

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/choices/ActionParameterChoicesFacetNone.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/choices/ActionParameterChoicesFacetNone.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/choices/ActionParameterChoicesFacetNone.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/choices/ActionParameterChoicesFacetNone.java Tue Dec 21 12:06:15 2010
@@ -22,13 +22,14 @@ package org.apache.isis.core.progmodel.f
 
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facets.FacetHolder;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
+import org.apache.isis.core.metamodel.runtimecontext.AdapterMap;
+import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 
 
 public class ActionParameterChoicesFacetNone extends ActionParameterChoicesFacetAbstract {
 
-    public ActionParameterChoicesFacetNone(final FacetHolder holder, final RuntimeContext runtimeContext) {
-        super(holder, runtimeContext);
+    public ActionParameterChoicesFacetNone(final FacetHolder holder, final SpecificationLoader specificationLoader, final AdapterMap adapterManager) {
+        super(holder, specificationLoader, adapterManager);
     }
 
     @Override

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/choices/ActionParameterChoicesFacetViaMethod.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/choices/ActionParameterChoicesFacetViaMethod.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/choices/ActionParameterChoicesFacetViaMethod.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/choices/ActionParameterChoicesFacetViaMethod.java Tue Dec 21 12:06:15 2010
@@ -28,7 +28,8 @@ import org.apache.isis.core.commons.lang
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facets.FacetHolder;
 import org.apache.isis.core.metamodel.java5.ImperativeFacet;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
+import org.apache.isis.core.metamodel.runtimecontext.AdapterMap;
+import org.apache.isis.core.metamodel.runtimecontext.SpecificationLookup;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.util.ObjectAdapterUtils;
 import org.apache.isis.core.metamodel.util.ObjectInvokeUtils;
@@ -44,8 +45,9 @@ public class ActionParameterChoicesFacet
     		final Method method, 
     		final Class<?> choicesType, 
     		final FacetHolder holder, 
-    		final RuntimeContext runtimeContext) {
-        super(holder, runtimeContext);
+    		final SpecificationLookup specificationLookup,
+    		final AdapterMap adapterManager) {
+        super(holder, specificationLookup, adapterManager);
         this.method = method;
         this.choicesType = choicesType;
     }
@@ -79,8 +81,8 @@ public class ActionParameterChoicesFacet
             return ArrayUtils.getObjectAsObjectArray(options);
         }
         else {
-            final ObjectSpecification specification = getRuntimeContext().getSpecificationLoader().loadSpecification(choicesType);
-            return ObjectAdapterUtils.getCollectionAsObjectArray(options, specification, getRuntimeContext());
+            final ObjectSpecification specification = getSpecification(choicesType);
+            return ObjectAdapterUtils.getCollectionAsObjectArray(options, specification, getAdapterMap());
         }
     }
 
@@ -89,10 +91,6 @@ public class ActionParameterChoicesFacet
         return "method=" + method + ",type=" + choicesType;
     }
 
-
-	
-
-
 }
 
 

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/invoke/ActionInvocationFacetViaMethod.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/invoke/ActionInvocationFacetViaMethod.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/invoke/ActionInvocationFacetViaMethod.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/actions/invoke/ActionInvocationFacetViaMethod.java Tue Dec 21 12:06:15 2010
@@ -24,15 +24,16 @@ import java.lang.reflect.Method;
 import java.util.Collections;
 import java.util.List;
 
+import org.apache.log4j.Logger;
+
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facets.FacetHolder;
 import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
 import org.apache.isis.core.metamodel.java5.ImperativeFacet;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
+import org.apache.isis.core.metamodel.runtimecontext.AdapterMap;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.specloader.ReflectiveActionException;
 import org.apache.isis.core.metamodel.util.InvokeUtils;
-import org.apache.log4j.Logger;
 
 public class ActionInvocationFacetViaMethod extends ActionInvocationFacetAbstract implements ImperativeFacet {
 
@@ -43,16 +44,16 @@ public class ActionInvocationFacetViaMet
     private final ObjectSpecification onType;
     private final ObjectSpecification returnType;
 
-    private final RuntimeContext runtimeContext;
+    private final AdapterMap adapterMap;
 
     public ActionInvocationFacetViaMethod(final Method method, final ObjectSpecification onType,
-        final ObjectSpecification returnType, final FacetHolder holder, final RuntimeContext runtimeContext) {
+        final ObjectSpecification returnType, final FacetHolder holder, final AdapterMap adapterManager) {
         super(holder);
         this.method = method;
         this.paramCount = method.getParameterTypes().length;
         this.onType = onType;
         this.returnType = returnType;
-        this.runtimeContext = runtimeContext;
+        this.adapterMap = adapterManager;
     }
 
     /**
@@ -92,7 +93,7 @@ public class ActionInvocationFacetViaMet
                 return null;
             }
 
-            final ObjectAdapter adapter = getRuntimeContext().adapterFor(result);
+            final ObjectAdapter adapter = getAdapterMap().adapterFor(result);
             final TypeOfFacet typeOfFacet = getFacetHolder().getFacet(TypeOfFacet.class);
             adapter.setTypeOfFacet(typeOfFacet);
             return adapter;
@@ -135,8 +136,8 @@ public class ActionInvocationFacetViaMet
     // Dependencies (from constructor)
     // /////////////////////////////////////////////////////////
 
-    private RuntimeContext getRuntimeContext() {
-        return runtimeContext;
+    private AdapterMap getAdapterMap() {
+        return adapterMap;
     }
 
 }

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/CollectionFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/CollectionFacetFactory.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/CollectionFacetFactory.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/CollectionFacetFactory.java Tue Dec 21 12:06:15 2010
@@ -24,8 +24,8 @@ import org.apache.isis.core.metamodel.fa
 import org.apache.isis.core.metamodel.facets.FacetHolder;
 import org.apache.isis.core.metamodel.facets.MethodRemover;
 import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAware;
+import org.apache.isis.core.metamodel.runtimecontext.AdapterMap;
+import org.apache.isis.core.metamodel.runtimecontext.AdapterMapAware;
 import org.apache.isis.core.metamodel.spec.feature.ObjectFeatureType;
 import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
 import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistryAware;
@@ -34,10 +34,10 @@ import org.apache.isis.core.progmodel.fa
 import org.apache.isis.core.progmodel.facets.actcoll.typeof.TypeOfFacetInferredFromGenerics;
 
 
-public class CollectionFacetFactory extends FacetFactoryAbstract implements CollectionTypeRegistryAware, RuntimeContextAware {
+public class CollectionFacetFactory extends FacetFactoryAbstract implements CollectionTypeRegistryAware, AdapterMapAware {
 
     private CollectionTypeRegistry collectionTypeRegistry;
-	private RuntimeContext runtimeContext;
+	private AdapterMap adapterMap;
 
     public CollectionFacetFactory() {
         super(ObjectFeatureType.OBJECTS_ONLY);
@@ -51,16 +51,16 @@ public class CollectionFacetFactory exte
             if (typeOfFacet == null) {
                 Class<?> collectionElementType = collectionElementType(cls);
                 holder.addFacet(collectionElementType != Object.class ? new TypeOfFacetInferredFromGenerics(
-                        collectionElementType, holder, getSpecificationLoader()) : new TypeOfFacetDefaultToObject(holder, getSpecificationLoader()));
+                        collectionElementType, holder, getSpecificationLookup()) : new TypeOfFacetDefaultToObject(holder, getSpecificationLookup()));
             } else {
                 // nothing
             }
-            holder.addFacet(new JavaCollectionFacet(holder, getRuntimeContext()));
+            holder.addFacet(new JavaCollectionFacet(holder, getAdapterMap()));
             return true;
         }
         if (collectionTypeRegistry.isArrayType(cls)) {
-            holder.addFacet(new JavaArrayFacet(holder, getRuntimeContext()));
-            holder.addFacet(new TypeOfFacetInferredFromArray(cls.getComponentType(), holder, getSpecificationLoader()));
+            holder.addFacet(new JavaArrayFacet(holder, getAdapterMap()));
+            holder.addFacet(new TypeOfFacetInferredFromArray(cls.getComponentType(), holder, getSpecificationLookup()));
             return true;
         }
 
@@ -79,24 +79,18 @@ public class CollectionFacetFactory exte
     /**
      * Injected since {@link CollectionTypeRegistryAware}.
      */
+    @Override
     public void setCollectionTypeRegistry(final CollectionTypeRegistry collectionTypeRegistry) {
         this.collectionTypeRegistry = collectionTypeRegistry;
     }
-
-
-    /**
-     * As per {@link #setRuntimeContext(RuntimeContext)}
-     */
-    public RuntimeContext getRuntimeContext() {
-		return runtimeContext;
-	}
-
-    /**
-     * Injected since {@link RuntimeContextAware}.
-     */
-	public void setRuntimeContext(final RuntimeContext runtimeContext) {
-		this.runtimeContext = runtimeContext;
-	}
-
+
+    public AdapterMap getAdapterMap() {
+        return adapterMap;
+    }
+    
+    @Override
+    public void setAdapterMap(AdapterMap adapterManager) {
+        this.adapterMap = adapterManager;
+    }
 
 }

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/CollectionFieldMethodsFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/CollectionFieldMethodsFacetFactory.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/CollectionFieldMethodsFacetFactory.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/CollectionFieldMethodsFacetFactory.java Tue Dec 21 12:06:15 2010
@@ -33,8 +33,10 @@ import org.apache.isis.core.metamodel.fa
 import org.apache.isis.core.metamodel.facets.FacetUtil;
 import org.apache.isis.core.metamodel.facets.MethodRemover;
 import org.apache.isis.core.metamodel.facets.MethodScope;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAware;
+import org.apache.isis.core.metamodel.runtimecontext.AdapterMap;
+import org.apache.isis.core.metamodel.runtimecontext.AdapterMapAware;
+import org.apache.isis.core.metamodel.runtimecontext.ObjectDirtier;
+import org.apache.isis.core.metamodel.runtimecontext.ObjectDirtierAware;
 import org.apache.isis.core.metamodel.spec.feature.ObjectFeatureType;
 import org.apache.isis.core.metamodel.specloader.internal.peer.ObjectMemberPeerImpl;
 import org.apache.isis.core.metamodel.util.NameUtils;
@@ -53,7 +55,7 @@ import org.apache.isis.core.progmodel.fa
 
 
 public class CollectionFieldMethodsFacetFactory extends PropertyOrCollectionIdentifyingFacetFactoryAbstract implements
-        RuntimeContextAware {
+        AdapterMapAware, ObjectDirtierAware {
 
     private static final Logger LOG = Logger.getLogger(CollectionFieldMethodsFacetFactory.class);
 
@@ -74,7 +76,8 @@ public class CollectionFieldMethodsFacet
     private static final String[] PREFIXES = { REMOVE_FROM_PREFIX, ADD_TO_PREFIX, CLEAR_PREFIX, GET_PREFIX, MODIFY_PREFIX,
             SET_PREFIX, OPTIONAL_PREFIX, VALIDATE_ADD_TO_PREFIX, VALIDATE_REMOVE_FROM_PREFIX, };
 
-    private RuntimeContext runtimeContext;
+    private AdapterMap adapterMap;
+    private ObjectDirtier objectDirtier;
 
     public CollectionFieldMethodsFacetFactory() {
         super(PREFIXES, ObjectFeatureType.COLLECTIONS_ONLY);
@@ -137,7 +140,7 @@ public class CollectionFieldMethodsFacet
             collectionFacets.add(new CollectionAddToFacetViaMethod(method, collection));
         } else {
             // TODO need to distinguish between Java collections, arrays and other collections!
-            collectionFacets.add(new CollectionAddToFacetViaAccessor(getMethod, collection, getRuntimeContext()));
+            collectionFacets.add(new CollectionAddToFacetViaAccessor(getMethod, collection, getObjectDirtier()));
         }
         return addType;
     }
@@ -158,7 +161,7 @@ public class CollectionFieldMethodsFacet
             collectionFacets.add(new CollectionRemoveFromFacetViaMethod(method, collection));
         } else {
             // TODO need to distinguish between Java collections, arrays and other collections!
-            collectionFacets.add(new CollectionRemoveFromFacetViaAccessor(getMethod, collection, getRuntimeContext()));
+            collectionFacets.add(new CollectionRemoveFromFacetViaAccessor(getMethod, collection, getObjectDirtier()));
         }
         return removeType;
     }
@@ -175,7 +178,7 @@ public class CollectionFieldMethodsFacet
         if (method != null) {
             collectionFacets.add(new CollectionClearFacetViaMethod(method, collection));
         } else {
-            collectionFacets.add(new CollectionClearFacetViaAccessor(getMethod, collection, getRuntimeContext()));
+            collectionFacets.add(new CollectionClearFacetViaAccessor(getMethod, collection, getAdapterMap(), getObjectDirtier()));
         }
     }
 
@@ -196,7 +199,7 @@ public class CollectionFieldMethodsFacet
 
         type = addType != null ? addType : removeType;
         if (type != null) {
-            collectionFacets.add(new TypeOfFacetInferredFromSupportingMethods(type, collection, getSpecificationLoader()));
+            collectionFacets.add(new TypeOfFacetInferredFromSupportingMethods(type, collection, getSpecificationLookup()));
         }
         return type;
     }
@@ -256,7 +259,7 @@ public class CollectionFieldMethodsFacet
         if (method == null) {
             return;
         }
-        collectionFacets.add(new PropertyChoicesFacetViaMethod(method, returnType, collection, getRuntimeContext()));
+        collectionFacets.add(new PropertyChoicesFacetViaMethod(method, returnType, collection, getSpecificationLookup(), getAdapterMap()));
     }
 
     // ///////////////////////////////////////////////////////////////
@@ -313,19 +316,22 @@ public class CollectionFieldMethodsFacet
     // Dependencies (injected)
     // ///////////////////////////////////////////////////////
 
-    /**
-     * @see #setRuntimeContext(RuntimeContext)
-     */
-    private RuntimeContext getRuntimeContext() {
-        return runtimeContext;
-    }
-
-    /**
-     * Injected because {@link RuntimeContextAware}
-     */
+    protected AdapterMap getAdapterMap() {
+        return adapterMap;
+    }
+
     @Override
-    public void setRuntimeContext(RuntimeContext runtimeContext) {
-        this.runtimeContext = runtimeContext;
-    }
-
+    public void setAdapterMap(AdapterMap adapterMap) {
+        this.adapterMap = adapterMap;
+    }
+
+    protected ObjectDirtier getObjectDirtier() {
+        return objectDirtier;
+    }
+    
+    @Override
+    public void setObjectDirtier(ObjectDirtier objectDirtier) {
+        this.objectDirtier = objectDirtier;
+    }
+    
 }

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/JavaArrayFacet.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/JavaArrayFacet.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/JavaArrayFacet.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/JavaArrayFacet.java Tue Dec 21 12:06:15 2010
@@ -25,22 +25,23 @@ import java.util.Collection;
 
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facets.FacetHolder;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
+import org.apache.isis.core.metamodel.runtimecontext.AdapterMap;
 import org.apache.isis.core.progmodel.facets.collections.modify.CollectionFacetAbstract;
 
 
 public class JavaArrayFacet extends CollectionFacetAbstract {
 
-    private final RuntimeContext runtimeContext;
+    private final AdapterMap adapterMap;
 
-    public JavaArrayFacet(final FacetHolder holder, final RuntimeContext runtimeContext) {
+    public JavaArrayFacet(final FacetHolder holder, final AdapterMap adapterManager) {
         super(holder);
-        this.runtimeContext = runtimeContext;
+        this.adapterMap = adapterManager;
     }
 
     /**
      * Expected to be called with a {@link ObjectAdapter} wrapping an array.
      */
+    @Override
     public void init(final ObjectAdapter collectionAdapter, final ObjectAdapter[] initData) {
         int length = initData.length;
         Object[] array = new Object[length];
@@ -53,11 +54,12 @@ public class JavaArrayFacet extends Coll
     /**
      * Expected to be called with a {@link ObjectAdapter} wrapping an array.
      */
+    @Override
     public Collection<ObjectAdapter> collection(ObjectAdapter collectionAdapter) {
         final Object[] array = array(collectionAdapter);
         ArrayList<ObjectAdapter> objectCollection = new ArrayList<ObjectAdapter>(array.length);
         for (int i = 0; i < array.length; i++) {
-            ObjectAdapter element = getAdapterManager().getAdapterFor(array[i]);
+            ObjectAdapter element = getAdapterMap().getAdapterFor(array[i]);
             objectCollection.add(element);
         }
         return objectCollection;
@@ -66,14 +68,16 @@ public class JavaArrayFacet extends Coll
     /**
      * Expected to be called with a {@link ObjectAdapter} wrapping an array.
      */
+    @Override
     public ObjectAdapter firstElement(final ObjectAdapter collectionAdapter) {
         final Object[] array = array(collectionAdapter);
-        return array.length > 0 ? getAdapterManager().getAdapterFor(array[0]) : null;
+        return array.length > 0 ? getAdapterMap().getAdapterFor(array[0]) : null;
     }
 
     /**
      * Expected to be called with a {@link ObjectAdapter} wrapping an array.
      */
+    @Override
     public int size(final ObjectAdapter collectionAdapter) {
         return array(collectionAdapter).length;
     }
@@ -86,8 +90,8 @@ public class JavaArrayFacet extends Coll
     // Dependencies (from constructor)
     // /////////////////////////////////////////////////////
 
-    private RuntimeContext getAdapterManager() {
-        return runtimeContext;
+    private AdapterMap getAdapterMap() {
+        return adapterMap;
     }
 
 }

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/JavaCollectionFacet.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/JavaCollectionFacet.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/JavaCollectionFacet.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/JavaCollectionFacet.java Tue Dec 21 12:06:15 2010
@@ -24,38 +24,43 @@ import java.util.Collection;
 import java.util.Iterator;
 
 import org.apache.commons.collections.CollectionUtils;
+
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facets.FacetHolder;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
+import org.apache.isis.core.metamodel.runtimecontext.AdapterMap;
 import org.apache.isis.core.progmodel.facets.collections.modify.CollectionFacetAbstract;
 
 
 public class JavaCollectionFacet extends CollectionFacetAbstract {
 
-    private final RuntimeContext runtimeContext;
+    private final AdapterMap adapterMap;
 
 	public JavaCollectionFacet(
 			final FacetHolder holder, 
-			final RuntimeContext runtimeContext) {
+			final AdapterMap adapterManager) {
         super(holder);
-        this.runtimeContext = runtimeContext;
+        this.adapterMap = adapterManager;
     }
 
+    @Override
     @SuppressWarnings("unchecked")
     public Collection<ObjectAdapter> collection(ObjectAdapter wrappedCollection) {
         Collection<?> collectionOfUnderlying = collectionOfUnderlying(wrappedCollection);
-        return CollectionUtils.collect(collectionOfUnderlying, new ObjectToAdapterTransformer(getRuntimeContext()));
+        return CollectionUtils.collect(collectionOfUnderlying, new ObjectToAdapterTransformer(getAdapterMap()));
     }
 
-	public ObjectAdapter firstElement(final ObjectAdapter collection) {
+	@Override
+    public ObjectAdapter firstElement(final ObjectAdapter collection) {
         final Iterator<ObjectAdapter> iterator = iterator(collection);
         return iterator.hasNext() ? iterator.next() : null;
     }
 
+    @Override
     public int size(final ObjectAdapter collection) {
         return collectionOfUnderlying(collection).size();
     }
 
+    @Override
     @SuppressWarnings("unchecked")
     public void init(final ObjectAdapter collection, final ObjectAdapter[] initData) {
         final Collection javaCollection = collectionOfUnderlying(collection);
@@ -78,10 +83,9 @@ public class JavaCollectionFacet extends
     // Dependencies (from constructor)
     ////////////////////////////////////////////////////////////////////////
     
-    private RuntimeContext getRuntimeContext() {
-		return runtimeContext;
+    private AdapterMap getAdapterMap() {
+		return adapterMap;
 	}
 
-
 }
 

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/ObjectToAdapterTransformer.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/ObjectToAdapterTransformer.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/ObjectToAdapterTransformer.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/ObjectToAdapterTransformer.java Tue Dec 21 12:06:15 2010
@@ -20,9 +20,10 @@
 
 package org.apache.isis.core.progmodel.facets.collections;
 
-import org.apache.commons.collections.Transformer;
+import org.apache.commons.collections.Transformer;
+
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
+import org.apache.isis.core.metamodel.runtimecontext.AdapterMap;
 
 /**
  * Uses the Commons Collection API to transform {@link Object}s into
@@ -31,23 +32,24 @@ import org.apache.isis.core.metamodel.ru
  */
 public final class ObjectToAdapterTransformer implements Transformer {
 	
-	private final RuntimeContext runtimeContext;
+	private final AdapterMap adapterMap;
 
-	public ObjectToAdapterTransformer(final RuntimeContext runtimeContext) {
-		this.runtimeContext = runtimeContext;
+	public ObjectToAdapterTransformer(final AdapterMap adapterManager) {
+		this.adapterMap = adapterManager;
 	}
     
+    @Override
     public Object transform(Object object) {
-        return getRuntimeContext().adapterFor(object);
+        return getAdapterMap().adapterFor(object);
     }
     
     // //////////////////////////////////////////////////////////////////
-    // Dependencies (from context)
+    // Dependencies (from constructor)
     // //////////////////////////////////////////////////////////////////
-
-    public RuntimeContext getRuntimeContext() {
-		return runtimeContext;
-	}
+
+    public AdapterMap getAdapterMap() {
+        return adapterMap;
+    }
 
 
 }
\ No newline at end of file

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/modify/CollectionAddToFacetViaAccessor.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/modify/CollectionAddToFacetViaAccessor.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/modify/CollectionAddToFacetViaAccessor.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/modify/CollectionAddToFacetViaAccessor.java Tue Dec 21 12:06:15 2010
@@ -29,7 +29,7 @@ import org.apache.isis.applib.DomainObje
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facets.FacetHolder;
 import org.apache.isis.core.metamodel.java5.ImperativeFacet;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
+import org.apache.isis.core.metamodel.runtimecontext.ObjectDirtier;
 import org.apache.isis.core.metamodel.util.IsisUtils;
 import org.apache.isis.core.metamodel.util.ObjectInvokeUtils;
 
@@ -37,25 +37,27 @@ import org.apache.isis.core.metamodel.ut
 public class CollectionAddToFacetViaAccessor extends CollectionAddToFacetAbstract implements ImperativeFacet {
 
     private final Method method;
-	private final RuntimeContext runtimeContext;
+	private final ObjectDirtier objectDirtier;
 
     public CollectionAddToFacetViaAccessor(
     		final Method method, 
     		final FacetHolder holder, 
-    		final RuntimeContext runtimeContext) {
+    		final ObjectDirtier objectDirtier) {
         super(holder);
         this.method = method;
-        this.runtimeContext = runtimeContext;
+        this.objectDirtier = objectDirtier;
     }
 
     /**
      * Returns a singleton list of the {@link Method} provided in the constructor. 
      */
+    @Override
     public List<Method> getMethods() {
     	return Collections.singletonList(method);
     }
 
-	public boolean impliesResolve() {
+	@Override
+    public boolean impliesResolve() {
 		return true;
 	}
 
@@ -63,15 +65,17 @@ public class CollectionAddToFacetViaAcce
 	 * Bytecode cannot automatically call {@link DomainObjectContainer#objectChanged(Object)}
 	 * because cannot distinguish whether interacting with accessor to read it or to modify its contents.
 	 */
-	public boolean impliesObjectChanged() {
+	@Override
+    public boolean impliesObjectChanged() {
 		return false;
 	}
 	
 
+    @Override
     public void add(final ObjectAdapter owningAdapter, final ObjectAdapter elementAdapter) {
         final Collection collection = (Collection) ObjectInvokeUtils.invoke(method, owningAdapter);
         collection.add(IsisUtils.unwrap(elementAdapter));
-        getRuntimeContext().objectChanged(owningAdapter);
+        getObjectDirtier().objectChanged(owningAdapter);
     }
 
     @Override
@@ -80,10 +84,12 @@ public class CollectionAddToFacetViaAcce
     }
 
     
-	private RuntimeContext getRuntimeContext() {
-		return runtimeContext;
-	}
-
-
+    ///////////////////////////////////////////////////////
+    // Dependencies
+    ///////////////////////////////////////////////////////
+    
+    protected ObjectDirtier getObjectDirtier() {
+        return objectDirtier;
+    }
 }
 

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/modify/CollectionClearFacetViaAccessor.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/modify/CollectionClearFacetViaAccessor.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/modify/CollectionClearFacetViaAccessor.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/modify/CollectionClearFacetViaAccessor.java Tue Dec 21 12:06:15 2010
@@ -29,32 +29,38 @@ import org.apache.isis.applib.DomainObje
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facets.FacetHolder;
 import org.apache.isis.core.metamodel.java5.ImperativeFacet;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
+import org.apache.isis.core.metamodel.runtimecontext.AdapterMap;
+import org.apache.isis.core.metamodel.runtimecontext.ObjectDirtier;
 import org.apache.isis.core.metamodel.util.ObjectInvokeUtils;
 
 
 public class CollectionClearFacetViaAccessor extends CollectionClearFacetAbstract implements ImperativeFacet {
 
     private final Method method;
-	private final RuntimeContext runtimeContext;
+	private final AdapterMap adapterMap;
+    private final ObjectDirtier objectDirtier;
 
     public CollectionClearFacetViaAccessor(
     		final Method method, 
-    		final FacetHolder holder, 
-    		final RuntimeContext runtimeContext) {
+    		final FacetHolder holder,
+    		final AdapterMap adapterManager,
+    		final ObjectDirtier objectDirtier) {
         super(holder);
         this.method = method;
-        this.runtimeContext = runtimeContext;
+        this.adapterMap = adapterManager;
+        this.objectDirtier = objectDirtier;
     }
 
     /**
      * Returns a singleton list of the {@link Method} provided in the constructor. 
      */
+    @Override
     public List<Method> getMethods() {
     	return Collections.singletonList(method);
     }
 
-	public boolean impliesResolve() {
+	@Override
+    public boolean impliesResolve() {
 		return true;
 	}
 
@@ -62,15 +68,17 @@ public class CollectionClearFacetViaAcce
 	 * Bytecode cannot automatically call {@link DomainObjectContainer#objectChanged(Object)}
 	 * because cannot distinguish whether interacting with accessor to read it or to modify its contents.
 	 */
-	public boolean impliesObjectChanged() {
+	@Override
+    public boolean impliesObjectChanged() {
 		return false;
 	}
 
+    @Override
     public void clear(final ObjectAdapter owningAdapter) {
         final Collection<?> collection = (Collection<?>) ObjectInvokeUtils.invoke(method, owningAdapter);
         collection.clear();
-        final ObjectAdapter adapter = getRuntimeContext().getAdapterFor(owningAdapter);
-        getRuntimeContext().objectChanged(adapter);
+        final ObjectAdapter adapter = getAdapterMap().getAdapterFor(owningAdapter);
+        getObjectDirtier().objectChanged(adapter);
     }
 
 	@Override
@@ -83,10 +91,13 @@ public class CollectionClearFacetViaAcce
     // Dependencies (from constructor)
     ///////////////////////////////////////////////////////////
 
-    private RuntimeContext getRuntimeContext() {
-		return runtimeContext;
+	protected AdapterMap getAdapterMap() {
+	    return adapterMap;
 	}
-
+	
+    protected ObjectDirtier getObjectDirtier() {
+        return objectDirtier;
+    }
     
 }
 

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/modify/CollectionRemoveFromFacetViaAccessor.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/modify/CollectionRemoveFromFacetViaAccessor.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/modify/CollectionRemoveFromFacetViaAccessor.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/collections/modify/CollectionRemoveFromFacetViaAccessor.java Tue Dec 21 12:06:15 2010
@@ -29,7 +29,7 @@ import org.apache.isis.applib.DomainObje
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facets.FacetHolder;
 import org.apache.isis.core.metamodel.java5.ImperativeFacet;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
+import org.apache.isis.core.metamodel.runtimecontext.ObjectDirtier;
 import org.apache.isis.core.metamodel.util.IsisUtils;
 import org.apache.isis.core.metamodel.util.ObjectInvokeUtils;
 
@@ -37,25 +37,27 @@ import org.apache.isis.core.metamodel.ut
 public class CollectionRemoveFromFacetViaAccessor extends CollectionRemoveFromFacetAbstract implements ImperativeFacet {
 
     private final Method method;
-	private final RuntimeContext runtimeContext;
+    private final ObjectDirtier objectDirtier;
 
     public CollectionRemoveFromFacetViaAccessor(
     		final Method method, 
     		final FacetHolder holder, 
-    		final RuntimeContext runtimeContext) {
+    		final ObjectDirtier objectDirtier) {
         super(holder);
         this.method = method;
-        this.runtimeContext = runtimeContext;
+        this.objectDirtier = objectDirtier;
     }
 
     /**
      * Returns a singleton list of the {@link Method} provided in the constructor. 
      */
+    @Override
     public List<Method> getMethods() {
     	return Collections.singletonList(method);
     }
 
-	public boolean impliesResolve() {
+	@Override
+    public boolean impliesResolve() {
 		return true;
 	}
 
@@ -63,14 +65,16 @@ public class CollectionRemoveFromFacetVi
 	 * Bytecode cannot automatically call {@link DomainObjectContainer#objectChanged(Object)}
 	 * because cannot distinguish whether interacting with accessor to read it or to modify its contents.
 	 */
-	public boolean impliesObjectChanged() {
+	@Override
+    public boolean impliesObjectChanged() {
 		return false;
 	}
 
+    @Override
     public void remove(final ObjectAdapter owningAdapter, final ObjectAdapter elementAdapter) {
         final Collection collection = (Collection) ObjectInvokeUtils.invoke(method, owningAdapter);
         collection.remove(IsisUtils.unwrap(elementAdapter));
-        getRuntimeContext().objectChanged(owningAdapter);
+        getObjectDirtier().objectChanged(owningAdapter);
     }
 
 	@Override
@@ -83,9 +87,10 @@ public class CollectionRemoveFromFacetVi
     // Dependencies (from constructor)
     ///////////////////////////////////////////////////////////
 
-    private RuntimeContext getRuntimeContext() {
-		return runtimeContext;
-	}
+    protected ObjectDirtier getObjectDirtier() {
+        return objectDirtier;
+    }
+    
 
 
 }

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/naming/describedas/DescribedAsAnnotationFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/naming/describedas/DescribedAsAnnotationFacetFactory.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/naming/describedas/DescribedAsAnnotationFacetFactory.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/naming/describedas/DescribedAsAnnotationFacetFactory.java Tue Dec 21 12:06:15 2010
@@ -90,7 +90,7 @@ public class DescribedAsAnnotationFacetF
     }
 
     private DescribedAsFacet getDescribedAsFacet(final Class<?> type) {
-        final ObjectSpecification paramTypeSpec = getSpecificationLoader().loadSpecification(type);
+        final ObjectSpecification paramTypeSpec = getSpecificationLookup().loadSpecification(type);
         return paramTypeSpec.getFacet(DescribedAsFacet.class);
     }
 

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/defaults/DefaultedAnnotationFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/defaults/DefaultedAnnotationFacetFactory.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/defaults/DefaultedAnnotationFacetFactory.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/defaults/DefaultedAnnotationFacetFactory.java Tue Dec 21 12:06:15 2010
@@ -20,9 +20,9 @@
 
 package org.apache.isis.core.progmodel.facets.object.defaults;
 
-import java.lang.reflect.Method;
-
-import org.apache.isis.applib.annotation.Defaulted;
+import java.lang.reflect.Method;
+
+import org.apache.isis.applib.annotation.Defaulted;
 import org.apache.isis.core.commons.lang.StringUtils;
 import org.apache.isis.core.metamodel.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.config.IsisConfigurationAware;
@@ -32,16 +32,19 @@ import org.apache.isis.core.metamodel.fa
 import org.apache.isis.core.metamodel.facets.actions.defaults.ActionDefaultsFacet;
 import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
 import org.apache.isis.core.metamodel.java5.AnnotationBasedFacetFactoryAbstract;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAware;
+import org.apache.isis.core.metamodel.runtimecontext.DependencyInjector;
+import org.apache.isis.core.metamodel.runtimecontext.DependencyInjectorAware;
+import org.apache.isis.core.metamodel.runtimecontext.AdapterMap;
+import org.apache.isis.core.metamodel.runtimecontext.AdapterMapAware;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectFeatureType;
 
 
-public class DefaultedAnnotationFacetFactory extends AnnotationBasedFacetFactoryAbstract implements IsisConfigurationAware, RuntimeContextAware {
+public class DefaultedAnnotationFacetFactory extends AnnotationBasedFacetFactoryAbstract implements IsisConfigurationAware, DependencyInjectorAware, AdapterMapAware {
 
     private IsisConfiguration configuration;
-    private RuntimeContext runtimeContext;
+    private DependencyInjector dependencyInjector;
+    private AdapterMap adapterMap;
 
 	public DefaultedAnnotationFacetFactory() {
         super(ObjectFeatureType.OBJECTS_PROPERTIES_AND_PARAMETERS);
@@ -53,11 +56,11 @@ public class DefaultedAnnotationFacetFac
     }
 
     private DefaultedFacetAbstract create(final Class<?> cls, final FacetHolder holder) {
-        final Defaulted annotation = (Defaulted) getAnnotation(cls, Defaulted.class);
+        final Defaulted annotation = getAnnotation(cls, Defaulted.class);
 
         // create from annotation, if present
         if (annotation != null) {
-            final DefaultedFacetAbstract facet = new DefaultedFacetAnnotation(cls, getIsisConfiguration(), holder, runtimeContext);
+            final DefaultedFacetAbstract facet = new DefaultedFacetAnnotation(cls, getIsisConfiguration(), holder, dependencyInjector);
             if (facet.isValid()) {
                 return facet;
             }
@@ -67,7 +70,7 @@ public class DefaultedAnnotationFacetFac
         final String providerName = DefaultsProviderUtil.defaultsProviderNameFromConfiguration(cls,
                 getIsisConfiguration());
         if (!StringUtils.isNullOrEmpty(providerName)) {
-            final DefaultedFacetFromConfiguration facet = new DefaultedFacetFromConfiguration(providerName, holder, runtimeContext);
+            final DefaultedFacetFromConfiguration facet = new DefaultedFacetFromConfiguration(providerName, holder, dependencyInjector);
             if (facet.isValid()) {
                 return facet;
             }
@@ -93,7 +96,7 @@ public class DefaultedAnnotationFacetFac
         final DefaultedFacet returnTypeDefaultedFacet = getDefaultedFacet(returnType);
         if (returnTypeDefaultedFacet != null) {
             final PropertyDefaultFacetDerivedFromDefaultedFacet propertyFacet = new PropertyDefaultFacetDerivedFromDefaultedFacet(
-                    returnTypeDefaultedFacet, holder, getRuntimeContext());
+                    returnTypeDefaultedFacet, holder, getAdapterMap());
             return FacetUtil.addFacet(propertyFacet);
         }
         return false;
@@ -126,7 +129,8 @@ public class DefaultedAnnotationFacetFac
     }
 
     private DefaultedFacet getDefaultedFacet(final Class<?> paramType) {
-        final ObjectSpecification paramTypeSpec = getSpecificationLoader().loadSpecification(paramType);
+        final ObjectSpecification paramTypeSpec = 
+            getSpecificationLookup().loadSpecification(paramType);
         return paramTypeSpec.getFacet(DefaultedFacet.class);
     }
 
@@ -137,16 +141,27 @@ public class DefaultedAnnotationFacetFac
     public IsisConfiguration getIsisConfiguration() {
         return configuration;
     }
+    @Override
     public void setIsisConfiguration(final IsisConfiguration configuration) {
         this.configuration = configuration;
     }
-
-    private RuntimeContext getRuntimeContext() {
-		return runtimeContext;
-	}
-    public void setRuntimeContext(RuntimeContext runtimeContext) {
-		this.runtimeContext = runtimeContext;
-	}
-
+
+    public DependencyInjector getDependencyInjector() {
+        return dependencyInjector;
+    }
+    
+    @Override
+    public void setDependencyInjector(DependencyInjector dependencyInjector) {
+        this.dependencyInjector = dependencyInjector;
+    }
+
+    public AdapterMap getAdapterMap() {
+        return adapterMap;
+    }
+    
+    @Override
+    public void setAdapterMap(AdapterMap adapterMap) {
+        this.adapterMap = adapterMap;
+    }
 
 }

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/defaults/DefaultedFacetAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/defaults/DefaultedFacetAbstract.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/defaults/DefaultedFacetAbstract.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/defaults/DefaultedFacetAbstract.java Tue Dec 21 12:06:15 2010
@@ -24,7 +24,7 @@ import org.apache.isis.applib.adapters.D
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.core.metamodel.facets.FacetAbstract;
 import org.apache.isis.core.metamodel.facets.FacetHolder;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
+import org.apache.isis.core.metamodel.runtimecontext.DependencyInjector;
 import org.apache.isis.core.metamodel.util.ClassUtil;
 
 
@@ -34,26 +34,28 @@ public abstract class DefaultedFacetAbst
 
     // to delegate to
     private final DefaultedFacetUsingDefaultsProvider defaultedFacetUsingDefaultsProvider;
-    private final RuntimeContext runtimeContext;
+
+    private final DependencyInjector dependencyInjector;
 
     public DefaultedFacetAbstract(
             final String candidateEncoderDecoderName,
             final Class<?> candidateEncoderDecoderClass,
             final FacetHolder holder, 
-            final RuntimeContext runtimeContext) {
+            final DependencyInjector dependencyInjector) {
         super(DefaultedFacet.class, holder, false);
 
         this.defaultsProviderClass = DefaultsProviderUtil.defaultsProviderOrNull(candidateEncoderDecoderClass,
                 candidateEncoderDecoderName);
-        this.runtimeContext = runtimeContext;
+        this.dependencyInjector = dependencyInjector;
         if (isValid()) {
             DefaultsProvider defaultsProvider = (DefaultsProvider) ClassUtil.newInstance(defaultsProviderClass, FacetHolder.class, holder);
-            this.defaultedFacetUsingDefaultsProvider = new DefaultedFacetUsingDefaultsProvider(defaultsProvider, holder, getRuntimeContext());
+            this.defaultedFacetUsingDefaultsProvider = new DefaultedFacetUsingDefaultsProvider(defaultsProvider, holder, getDependencyInjector());
         } else {
             this.defaultedFacetUsingDefaultsProvider = null;
         }
     }
 
+
     /**
      * Discover whether either of the candidate defaults provider name or class is valid.
      */
@@ -68,6 +70,7 @@ public abstract class DefaultedFacetAbst
         return defaultsProviderClass;
     }
 
+    @Override
     public Object getDefault() {
         return defaultedFacetUsingDefaultsProvider.getDefault();
     }
@@ -81,9 +84,8 @@ public abstract class DefaultedFacetAbst
     // Dependencies (from constructor)
     ////////////////////////////////////////////////////////
     
-
-    private RuntimeContext getRuntimeContext() {
-        return runtimeContext;
+    private DependencyInjector getDependencyInjector() {
+        return dependencyInjector;
     }
 
 }

Modified: incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/defaults/DefaultedFacetAnnotation.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/defaults/DefaultedFacetAnnotation.java?rev=1051471&r1=1051470&r2=1051471&view=diff
==============================================================================
--- incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/defaults/DefaultedFacetAnnotation.java (original)
+++ incubator/isis/trunk/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/defaults/DefaultedFacetAnnotation.java Tue Dec 21 12:06:15 2010
@@ -20,17 +20,17 @@
 
 package org.apache.isis.core.progmodel.facets.object.defaults;
 
-import org.apache.isis.applib.annotation.Defaulted;
+import org.apache.isis.applib.annotation.Defaulted;
 import org.apache.isis.core.commons.lang.StringUtils;
 import org.apache.isis.core.metamodel.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.facets.FacetHolder;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
+import org.apache.isis.core.metamodel.runtimecontext.DependencyInjector;
 
 
 public class DefaultedFacetAnnotation extends DefaultedFacetAbstract {
 
     private static String providerName(final Class<?> annotatedClass, final IsisConfiguration configuration) {
-        final Defaulted annotation = (Defaulted) annotatedClass.getAnnotation(Defaulted.class);
+        final Defaulted annotation = annotatedClass.getAnnotation(Defaulted.class);
         final String providerName = annotation.defaultsProviderName();
         if (!StringUtils.isNullOrEmpty(providerName)) {
             return providerName;
@@ -39,7 +39,7 @@ public class DefaultedFacetAnnotation ex
     }
 
     private static Class<?> providerClass(final Class<?> annotatedClass) {
-        final Defaulted annotation = (Defaulted) annotatedClass.getAnnotation(Defaulted.class);
+        final Defaulted annotation = annotatedClass.getAnnotation(Defaulted.class);
         return annotation.defaultsProviderClass();
     }
 
@@ -47,16 +47,16 @@ public class DefaultedFacetAnnotation ex
             final Class<?> annotatedClass,
             final IsisConfiguration configuration,
             final FacetHolder holder, 
-            final RuntimeContext runtimeContext) {
-        this(providerName(annotatedClass, configuration), providerClass(annotatedClass), holder, runtimeContext);
+            final DependencyInjector dependencyInjector) {
+        this(providerName(annotatedClass, configuration), providerClass(annotatedClass), holder, dependencyInjector);
     }
 
     private DefaultedFacetAnnotation(
             final String candidateProviderName,
             final Class<?> candidateProviderClass,
             final FacetHolder holder, 
-            final RuntimeContext runtimeContext) {
-        super(candidateProviderName, candidateProviderClass, holder, runtimeContext);
+            final DependencyInjector dependencyInjector) {
+        super(candidateProviderName, candidateProviderClass, holder, dependencyInjector);
     }
 
 }