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 2015/10/14 02:28:50 UTC
[05/12] isis git commit: ISIS-1194: move common behaviour between
ObjectActionParameterParseable and OnetoOneActionParameterImpl to
ObjectActionParameterAbstract. Also...
ISIS-1194: move common behaviour between ObjectActionParameterParseable and OnetoOneActionParameterImpl to ObjectActionParameterAbstract. Also...
... delete ObjectActionParameterAbstract#set since doesn't seem to be called anywhere.
... (possibly through a long-standing bug), the doCoerceProposedValue of ObjectActionParameterParseable is never called... so delete it.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/9f83958a
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/9f83958a
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/9f83958a
Branch: refs/heads/ISIS-1213
Commit: 9f83958ade4a821fe75b744c769b10edd71067ea
Parents: 49dc51b
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Oct 13 00:16:32 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Oct 13 00:16:32 2015 +0100
----------------------------------------------------------------------
.../specimpl/ObjectActionParameterAbstract.java | 53 +++++++++------
.../ObjectActionParameterParseable.java | 69 --------------------
.../specimpl/ObjectSpecificationAbstract.java | 3 +-
.../specimpl/OneToOneActionParameterImpl.java | 55 ++++------------
4 files changed, 49 insertions(+), 131 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/9f83958a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
index 9f664fc..9a43566 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
@@ -31,6 +31,7 @@ import org.apache.isis.applib.query.QueryFindAllInstances;
import org.apache.isis.core.commons.lang.ClassExtensions;
import org.apache.isis.core.commons.lang.ListExtensions;
import org.apache.isis.core.commons.lang.StringExtensions;
+import org.apache.isis.core.metamodel.adapter.MutableProposedHolder;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.consent.Allow;
@@ -38,6 +39,7 @@ import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.consent.InteractionResultSet;
import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facetapi.MultiTypedFacet;
import org.apache.isis.core.metamodel.facets.TypedHolder;
import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
@@ -53,6 +55,7 @@ import org.apache.isis.core.metamodel.interactions.InteractionUtils;
import org.apache.isis.core.metamodel.interactions.ValidityContext;
import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
import org.apache.isis.core.metamodel.spec.DomainModelException;
+import org.apache.isis.core.metamodel.spec.Instance;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.SpecificationLoader;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
@@ -64,12 +67,43 @@ public abstract class ObjectActionParameterAbstract implements ObjectActionParam
private final ObjectActionImpl parentAction;
private final TypedHolder peer;
+
+
protected ObjectActionParameterAbstract(final int number, final ObjectActionImpl objectAction, final TypedHolder peer) {
this.number = number;
this.parentAction = objectAction;
this.peer = peer;
}
+ @Override
+ public FeatureType getFeatureType() {
+ return FeatureType.ACTION_PARAMETER;
+ }
+
+
+ /**
+ * Gets the proposed value of the {@link Instance} (downcast as a
+ * {@link MutableProposedHolder}, wrapping the proposed value into a
+ * {@link ObjectAdapter}.
+ */
+ @Override
+ public ObjectAdapter get(final ObjectAdapter owner, final InteractionInitiatedBy interactionInitiatedBy) {
+ final MutableProposedHolder proposedHolder = getProposedHolder(owner);
+ final Object proposed = proposedHolder.getProposed();
+ return getAdapterMap().adapterFor(proposed);
+ }
+
+
+ protected MutableProposedHolder getProposedHolder(final ObjectAdapter owner) {
+ if (!(owner instanceof MutableProposedHolder)) {
+ throw new IllegalArgumentException("Instance should implement MutableProposedHolder");
+ }
+ return (MutableProposedHolder) owner;
+ }
+
+
+
+
/**
* Subclasses should override either {@link #isObject()} or
* {@link #isCollection()}.
@@ -449,14 +483,6 @@ public abstract class ObjectActionParameterAbstract implements ObjectActionParam
ObjectSpecification proposedValueSpec;
if(proposedValue != null) {
proposedValueAdapter = getAdapterMap().adapterFor(proposedValue);
- proposedValueSpec = proposedValueAdapter.getSpecification();
- if(!proposedValueSpec.isOfType(proposedValueSpec)) {
- proposedValueAdapter = doCoerceProposedValue(adapter, proposedValue, interactionInitiatedBy,
- localization
- );
- }
-
- // check has been coerced into correct type; otherwise give up
if(proposedValueAdapter == null) {
return null;
}
@@ -481,17 +507,6 @@ public abstract class ObjectActionParameterAbstract implements ObjectActionParam
}
/**
- * Optional hook for parsing.
- */
- protected ObjectAdapter doCoerceProposedValue(
- final ObjectAdapter adapter,
- final Object proposedValue,
- final InteractionInitiatedBy interactionInitiatedBy,
- final Localization localization) {
- return null;
- }
-
- /**
* TODO: this is not ideal, because we can only populate the array for
* single argument, rather than the entire argument set. Instead, we ought
* to do this in two passes, one to build up the argument set as a single
http://git-wip-us.apache.org/repos/asf/isis/blob/9f83958a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterParseable.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterParseable.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterParseable.java
index 4aa2c5e..8d44071 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterParseable.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterParseable.java
@@ -19,15 +19,7 @@
package org.apache.isis.core.metamodel.specloader.specimpl;
-import org.apache.isis.applib.profiles.Localization;
-import org.apache.isis.core.metamodel.adapter.MutableProposedHolder;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.TypedHolder;
-import org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacet;
-import org.apache.isis.core.metamodel.spec.Instance;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.OneToOneActionParameter;
public class ObjectActionParameterParseable extends ObjectActionParameterAbstract implements OneToOneActionParameter {
@@ -36,67 +28,6 @@ public class ObjectActionParameterParseable extends ObjectActionParameterAbstrac
super(index, action, peer);
}
- protected ObjectAdapter doCoerceProposedValue(
- final ObjectAdapter adapter,
- final Object proposedValue,
- final InteractionInitiatedBy interactionInitiatedBy,
- final Localization localization) {
- // try to parse
- if (!(proposedValue instanceof String)) {
- return null;
- }
- final String proposedString = (String) proposedValue;
- final ObjectSpecification parameterSpecification = getSpecification();
- final ParseableFacet p = parameterSpecification.getFacet(ParseableFacet.class);
- try {
- final ObjectAdapter parsedAdapter = p.parseTextEntry(null, proposedString, interactionInitiatedBy,
- localization
- );
- return parsedAdapter;
- } catch(Exception ex) {
- return null;
- }
- }
-
-
- // //////////////////////////////////////////////////////////////////////
- // get, set
- // //////////////////////////////////////////////////////////////////////
-
- /**
- * Gets the proposed value of the {@link Instance} (downcast as a
- * {@link MutableProposedHolder}, wrapping the proposed value into a
- * {@link ObjectAdapter}.
- */
- @Override
- public ObjectAdapter get(final ObjectAdapter owner, final InteractionInitiatedBy interactionInitiatedBy) {
- final MutableProposedHolder proposedHolder = getProposedHolder(owner);
- final Object proposed = proposedHolder.getProposed();
- return getAdapterMap().adapterFor(proposed);
- }
-
- /**
- * Sets the proposed value of the {@link Instance} (downcast as a
- * {@link MutableProposedHolder}, unwrapped the proposed value from a
- * {@link ObjectAdapter}.
- */
- public void set(final ObjectAdapter owner, final ObjectAdapter newValue) {
- final MutableProposedHolder proposedHolder = getProposedHolder(owner);
- final Object newValuePojo = newValue.getObject();
- proposedHolder.setProposed(newValuePojo);
- }
-
- private MutableProposedHolder getProposedHolder(final ObjectAdapter owner) {
- if (!(owner instanceof MutableProposedHolder)) {
- throw new IllegalArgumentException("Instance should implement MutableProposedHolder");
- }
- return (MutableProposedHolder) owner;
- }
-
- @Override
- public FeatureType getFeatureType() {
- return FeatureType.ACTION_PARAMETER;
- }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/9f83958a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
index 548bf43..7d60490 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
@@ -82,7 +82,6 @@ import org.apache.isis.core.metamodel.interactions.ObjectValidityContext;
import org.apache.isis.core.metamodel.layout.DeweyOrderSet;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.metamodel.spec.ActionType;
-import org.apache.isis.core.metamodel.spec.Instance;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.ObjectSpecificationDependencies;
@@ -459,7 +458,7 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
}
}
final ObjectSpecification superclassSpec = superclass();
- return superclassSpec != null ? superclassSpec.isOfType(specification) : false;
+ return superclassSpec != null && superclassSpec.isOfType(specification);
}
//endregion
http://git-wip-us.apache.org/repos/asf/isis/blob/9f83958a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneActionParameterImpl.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneActionParameterImpl.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneActionParameterImpl.java
index ece1864..77b3598 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneActionParameterImpl.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneActionParameterImpl.java
@@ -19,12 +19,7 @@
package org.apache.isis.core.metamodel.specloader.specimpl;
-import org.apache.isis.core.metamodel.adapter.MutableProposedHolder;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.TypedHolder;
-import org.apache.isis.core.metamodel.spec.Instance;
import org.apache.isis.core.metamodel.spec.feature.OneToOneActionParameter;
public class OneToOneActionParameterImpl extends ObjectActionParameterAbstract implements OneToOneActionParameter {
@@ -33,10 +28,6 @@ public class OneToOneActionParameterImpl extends ObjectActionParameterAbstract i
super(index, actionImpl, peer);
}
- @Override
- public FeatureType getFeatureType() {
- return FeatureType.ACTION_PARAMETER;
- }
@Override
public boolean isObject() {
@@ -44,39 +35,21 @@ public class OneToOneActionParameterImpl extends ObjectActionParameterAbstract i
}
- // //////////////////////////////////////////////////////////////////////
- // get, set
- // //////////////////////////////////////////////////////////////////////
-
- /**
- * Gets the proposed value of the {@link Instance} (downcast as a
- * {@link MutableProposedHolder}, wrapping the proposed value into a
- * {@link ObjectAdapter}.
- */
- @Override
- public ObjectAdapter get(final ObjectAdapter owner, final InteractionInitiatedBy interactionInitiatedBy) {
- final MutableProposedHolder proposedHolder = getProposedHolder(owner);
- final Object proposed = proposedHolder.getProposed();
- return getAdapterMap().adapterFor(proposed);
- }
-
- /**
- * Sets the proposed value of the {@link Instance} (downcast as a
- * {@link MutableProposedHolder}, unwrapped the proposed value from a
- * {@link ObjectAdapter}.
- */
- public void set(final ObjectAdapter owner, final ObjectAdapter newValue) {
- final MutableProposedHolder proposedHolder = getProposedHolder(owner);
- final Object newValuePojo = newValue.getObject();
- proposedHolder.setProposed(newValuePojo);
- }
+// // //////////////////////////////////////////////////////////////////////
+// // get, set
+// // //////////////////////////////////////////////////////////////////////
+//
+// /**
+// * Sets the proposed value of the {@link Instance} (downcast as a
+// * {@link MutableProposedHolder}, unwrapped the proposed value from a
+// * {@link ObjectAdapter}.
+// */
+// public void set(final ObjectAdapter owner, final ObjectAdapter newValue) {
+// final MutableProposedHolder proposedHolder = getProposedHolder(owner);
+// final Object newValuePojo = newValue.getObject();
+// proposedHolder.setProposed(newValuePojo);
+// }
- private MutableProposedHolder getProposedHolder(final ObjectAdapter owner) {
- if (!(owner instanceof MutableProposedHolder)) {
- throw new IllegalArgumentException("Instance should implement MutableProposedHolder");
- }
- return (MutableProposedHolder) owner;
- }
}