You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ke...@apache.org on 2011/12/08 11:26:17 UTC

svn commit: r1211802 - in /incubator/isis/trunk/framework/core: metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/util/ progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/disabled/ progmodel/src/main/java/org/apache/isis/...

Author: kevin
Date: Thu Dec  8 10:26:17 2011
New Revision: 1211802

URL: http://svn.apache.org/viewvc?rev=1211802&view=rev
Log:
ISIS-142: Added "String type" parameter to Class disabled() method.

Modified:
    incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/util/AdapterInvokeUtils.java
    incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/disabled/DisabledObjectFacetAbstract.java
    incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/disabled/method/DisabledObjectFacetViaDisabledMethod.java
    incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/disabled/method/DisabledObjectViaDisabledMethodFacetFactory.java
    incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/object/disabled/ObjectDisabledMethodFacetFactoryTest.java

Modified: incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/util/AdapterInvokeUtils.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/util/AdapterInvokeUtils.java?rev=1211802&r1=1211801&r2=1211802&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/util/AdapterInvokeUtils.java (original)
+++ incubator/isis/trunk/framework/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/util/AdapterInvokeUtils.java Thu Dec  8 10:26:17 2011
@@ -33,6 +33,12 @@ public final class AdapterInvokeUtils {
         return InvokeUtils.invoke(method, AdapterUtils.unwrap(adapter));
     }
 
+    public static Object invoke(final Method method, final ObjectAdapter adapter, final Object arg0) {
+        Object[] args = new Object[1];
+        args[0] = arg0;
+        return InvokeUtils.invoke(method, AdapterUtils.unwrap(adapter), args);
+    }
+
     public static void invoke(final List<Method> methods, final ObjectAdapter adapter) {
         InvokeUtils.invoke(methods, AdapterUtils.unwrap(adapter));
     }

Modified: incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/disabled/DisabledObjectFacetAbstract.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/disabled/DisabledObjectFacetAbstract.java?rev=1211802&r1=1211801&r2=1211802&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/disabled/DisabledObjectFacetAbstract.java (original)
+++ incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/disabled/DisabledObjectFacetAbstract.java Thu Dec  8 10:26:17 2011
@@ -19,6 +19,7 @@
 
 package org.apache.isis.core.progmodel.facets.object.disabled;
 
+import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.events.UsabilityEvent;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facetapi.Facet;
@@ -42,9 +43,10 @@ public abstract class DisabledObjectFace
             return null;
         }
         final ObjectAdapter toDisable = ic.getTarget();
-        return toDisable != null ? disabledReason(toDisable) : null;
+        final Identifier identifier = ic.getIdentifier();
+        return toDisable != null ? disabledReason(toDisable, identifier) : null;
     }
 
-    protected abstract String disabledReason(ObjectAdapter toDisable);
+    protected abstract String disabledReason(ObjectAdapter toDisable, Identifier identifier);
 
 }

Modified: incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/disabled/method/DisabledObjectFacetViaDisabledMethod.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/disabled/method/DisabledObjectFacetViaDisabledMethod.java?rev=1211802&r1=1211801&r2=1211802&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/disabled/method/DisabledObjectFacetViaDisabledMethod.java (original)
+++ incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/disabled/method/DisabledObjectFacetViaDisabledMethod.java Thu Dec  8 10:26:17 2011
@@ -23,11 +23,11 @@ import java.lang.reflect.Method;
 import java.util.Collections;
 import java.util.List;
 
+import org.apache.isis.applib.Identifier;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.util.AdapterInvokeUtils;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.ImperativeFacet;
 import org.apache.isis.core.progmodel.facets.object.disabled.DisabledObjectFacetAbstract;
 
@@ -56,8 +56,9 @@ public class DisabledObjectFacetViaDisab
     }
 
     @Override
-    public String disabledReason(final ObjectAdapter owningAdapter) {
-        return (String) AdapterInvokeUtils.invoke(method, owningAdapter);
+    public String disabledReason(final ObjectAdapter owningAdapter, Identifier identifier) {
+        String type = identifier.getType().toString();
+        return (String) AdapterInvokeUtils.invoke(method, owningAdapter, type);
     }
 
     @Override
@@ -67,7 +68,8 @@ public class DisabledObjectFacetViaDisab
 
     @Override
     public void copyOnto(FacetHolder holder) {
-        final DisabledObjectFacetViaDisabledMethod clonedFacet = new DisabledObjectFacetViaDisabledMethod(this.method, holder);
+        final DisabledObjectFacetViaDisabledMethod clonedFacet =
+            new DisabledObjectFacetViaDisabledMethod(this.method, holder);
         FacetUtil.addFacet(clonedFacet);
     }
 }

Modified: incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/disabled/method/DisabledObjectViaDisabledMethodFacetFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/disabled/method/DisabledObjectViaDisabledMethodFacetFactory.java?rev=1211802&r1=1211801&r2=1211802&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/disabled/method/DisabledObjectViaDisabledMethodFacetFactory.java (original)
+++ incubator/isis/trunk/framework/core/progmodel/src/main/java/org/apache/isis/core/progmodel/facets/object/disabled/method/DisabledObjectViaDisabledMethodFacetFactory.java Thu Dec  8 10:26:17 2011
@@ -20,8 +20,6 @@
 package org.apache.isis.core.progmodel.facets.object.disabled.method;
 
 import java.lang.reflect.Method;
-import java.util.Arrays;
-import java.util.List;
 
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
@@ -35,11 +33,12 @@ import org.apache.isis.core.progmodel.fa
 import org.apache.isis.core.progmodel.facets.object.disabled.DisabledObjectFacet;
 
 /**
- * Installs the {@link DisabledObjectFacetViaDisabledMethod} on the {@link ObjectSpecification},
- * and copies this facet onto each {@link ObjectMember}.
- *
+ * Installs the {@link DisabledObjectFacetViaDisabledMethod} on the {@link ObjectSpecification}, and copies this facet
+ * onto each {@link ObjectMember}.
+ * 
  * <p>
- * This two-pass design is required because, at the time that the {@link #process(org.apache.isis.core.metamodel.facets.FacetFactory.ProcessClassContext) class is being processed},
+ * This two-pass design is required because, at the time that the
+ * {@link #process(org.apache.isis.core.metamodel.facets.FacetFactory.ProcessClassContext) class is being processed},
  * the {@link ObjectMember member}s for the {@link ObjectSpecification spec} are not known.
  */
 public class DisabledObjectViaDisabledMethodFacetFactory extends MethodPrefixBasedFacetFactoryAbstract {
@@ -56,12 +55,14 @@ public class DisabledObjectViaDisabledMe
     public void process(final ProcessClassContext processClassContext) {
         final Class<?> cls = processClassContext.getCls();
         final FacetHolder facetHolder = processClassContext.getFacetHolder();
+        final Class<?>[] params = new Class<?>[1];
+        params[0] = String.class;
 
         final Method method =
-            MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, DISABLED_PREFIX, String.class, NO_PARAMETERS_TYPES);
+            MethodFinderUtils.findMethod(cls, MethodScope.OBJECT, DISABLED_PREFIX, String.class, params);
         if (method == null) {
             return;
-        } 
+        }
         FacetUtil.addFacet(new DisabledObjectFacetViaDisabledMethod(method, facetHolder));
         processClassContext.removeMethod(method);
     }
@@ -72,9 +73,9 @@ public class DisabledObjectViaDisabledMe
         final Class<?> owningClass = processMethodContext.getCls();
         final ObjectSpecification owningSpec = getSpecificationLookup().loadSpecification(owningClass);
         final DisabledObjectFacet facet = owningSpec.getFacet(DisabledObjectFacet.class);
-        if(facet != null) {
+        if (facet != null) {
             facet.copyOnto(member);
         }
     }
-    
+
 }

Modified: incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/object/disabled/ObjectDisabledMethodFacetFactoryTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/object/disabled/ObjectDisabledMethodFacetFactoryTest.java?rev=1211802&r1=1211801&r2=1211802&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/object/disabled/ObjectDisabledMethodFacetFactoryTest.java (original)
+++ incubator/isis/trunk/framework/core/progmodel/src/test/java/org/apache/isis/core/progmodel/facets/object/disabled/ObjectDisabledMethodFacetFactoryTest.java Thu Dec  8 10:26:17 2011
@@ -45,13 +45,17 @@ public class ObjectDisabledMethodFacetFa
     }
 
     public void testDisabledMethodPickedUpAndMethodRemoved() {
+        final Class<?>[] params = new Class<?>[1];
+        params[0] = String.class;
+
         class Customer {
             @SuppressWarnings("unused")
-            public String disabled() {
+            public String disabled(String type) {
                 return null;
             }
         }
-        final Method disabledMethod = findMethod(Customer.class, "disabled");
+        final Method disabledMethod = findMethod(Customer.class, "disabled", params);
+        assertNotNull(disabledMethod);
 
         final ProcessClassContext processClassContext =
             new ProcessClassContext(Customer.class, methodRemover, facetHolder);