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);