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/08/28 18:30:19 UTC
[4/9] isis git commit: ISIS-1044: introducing interaction contexts -
analogous to those visibility/usability/validity checking, for accessing
properties, collections, invoking actions;
also action prompt (for choices and autoComplete).
http://git-wip-us.apache.org/repos/asf/isis/blob/ec51c582/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java
index 41b6d6a..c8f9203 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java
@@ -26,12 +26,13 @@ import org.apache.isis.core.metamodel.facets.FacetedMethod;
import org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet;
import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
import org.apache.isis.core.metamodel.facets.properties.choices.PropertyChoicesFacet;
+import org.apache.isis.core.metamodel.interactions.AssociationAccessingContext;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
// TODO need to pull up the common methods. like getName(), from subclasses
-public abstract class ObjectAssociationAbstract extends ObjectMemberAbstract implements ObjectAssociation {
+public abstract class ObjectAssociationAbstract<T extends AssociationAccessingContext<?>> extends ObjectMemberAbstract implements ObjectAssociation<T> {
private final ObjectSpecification specification;
@@ -43,9 +44,6 @@ public abstract class ObjectAssociationAbstract extends ObjectMemberAbstract imp
this.specification = specification;
}
- @Override
- public abstract ObjectAdapter get(final ObjectAdapter fromObject);
-
/**
* Return the specification of the object (or objects) that this field
* holds. For a value are one-to-one reference this will be type that the
@@ -74,7 +72,9 @@ public abstract class ObjectAssociationAbstract extends ObjectMemberAbstract imp
}
@Override
- public abstract boolean isEmpty(final ObjectAdapter adapter);
+ public abstract boolean isEmpty(
+ final ObjectAdapter adapter,
+ final T accessingContext);
@Override
public boolean isOneToOneAssociation() {
http://git-wip-us.apache.org/repos/asf/isis/blob/ec51c582/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
index 1322d5d..1083614 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
@@ -26,6 +26,7 @@ import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.filter.Filter;
import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
+import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.commons.lang.StringExtensions;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
@@ -68,8 +69,12 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
private final ServicesProvider servicesProvider;
private final QuerySubmitter querySubmitter;
private final DeploymentCategory deploymentCategory;
+ private final IsisConfiguration configuration;
- protected ObjectMemberAbstract(final FacetedMethod facetedMethod, final FeatureType featureType, final ObjectMemberContext objectMemberContext) {
+ protected ObjectMemberAbstract(
+ final FacetedMethod facetedMethod,
+ final FeatureType featureType,
+ final ObjectMemberContext objectMemberContext) {
final String id = facetedMethod.getIdentifier().getMemberName();
if (id == null) {
throw new IllegalArgumentException("Name must always be set");
@@ -85,12 +90,17 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
this.adapterManager = objectMemberContext.getAdapterManager();
this.servicesProvider = objectMemberContext.getServicesProvider();
this.querySubmitter = objectMemberContext.getQuerySubmitter();
+ this.configuration = objectMemberContext.getConfiguration();
}
// /////////////////////////////////////////////////////////////
// from context
// /////////////////////////////////////////////////////////////
+ public IsisConfiguration getConfiguration() {
+ return configuration;
+ }
+
public DeploymentCategory getDeploymentCategory() {
return deploymentCategory;
}
@@ -234,7 +244,8 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
}
private InteractionResult isVisibleResult(final AuthenticationSession session, final ObjectAdapter target, Where where) {
- final VisibilityContext<?> ic = createVisibleInteractionContext(session, InteractionInvocationMethod.BY_USER, target, where);
+ final VisibilityContext<?> ic = createVisibleInteractionContext(session, InteractionInvocationMethod.BY_USER, target, where
+ );
return InteractionUtils.isVisibleResult(this, ic);
}
@@ -256,7 +267,8 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
}
private InteractionResult isUsableResult(final AuthenticationSession session, final ObjectAdapter target, Where where) {
- final UsabilityContext<?> ic = createUsableInteractionContext(session, InteractionInvocationMethod.BY_USER, target, where);
+ final UsabilityContext<?> ic = createUsableInteractionContext(session, InteractionInvocationMethod.BY_USER, target, where
+ );
return InteractionUtils.isUsableResult(this, ic);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/ec51c582/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 95c1e73..b9690f4 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
@@ -36,6 +36,7 @@ import org.apache.isis.applib.filter.Filters;
import org.apache.isis.applib.profiles.Localization;
import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
+import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.commons.exceptions.UnknownTypeException;
import org.apache.isis.core.commons.lang.ClassExtensions;
import org.apache.isis.core.commons.util.ToString;
@@ -83,6 +84,7 @@ import org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContribut
public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implements ObjectSpecification {
private final static Logger LOG = LoggerFactory.getLogger(ObjectSpecificationAbstract.class);
+ private final IsisConfiguration configuration;
private static class SubclassList {
private final List<ObjectSpecification> classes = Lists.newArrayList();
@@ -178,17 +180,22 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
this.isAbstract = ClassExtensions.isAbstract(introspectedClass);
this.identifier = Identifier.classIdentifier(introspectedClass);
+ this.configuration = specificationContext.getConfiguration();
this.deploymentCategory = specificationContext.getDeploymentCategory();
this.authenticationSessionProvider = specificationContext.getAuthenticationSessionProvider();
this.servicesProvider = specificationContext.getServicesProvider();
this.objectInstantiator = specificationContext.getObjectInstantiator();
this.specificationLoader = specificationContext.getSpecificationLoader();
this.facetProcessor = specificationContext.getFacetProcessor();
+
this.objectMemberContext = objectMemberContext;
}
-
+ public IsisConfiguration getConfiguration() {
+ return configuration;
+ }
+
protected DeploymentCategory getDeploymentCategory() {
return deploymentCategory;
}
@@ -623,7 +630,7 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
@Override
public ObjectTitleContext createTitleInteractionContext(final AuthenticationSession session, final InteractionInvocationMethod interactionMethod, final ObjectAdapter targetObjectAdapter) {
- return new ObjectTitleContext(getDeploymentCategory(), session, interactionMethod, targetObjectAdapter, getIdentifier(), targetObjectAdapter.titleString());
+ return new ObjectTitleContext(getConfiguration(), getDeploymentCategory(), session, interactionMethod, targetObjectAdapter, getIdentifier(), targetObjectAdapter.titleString());
}
// //////////////////////////////////////////////////////////////////////
@@ -1105,7 +1112,7 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
*/
@Override
public ObjectValidityContext createValidityInteractionContext(DeploymentCategory deploymentCategory, final AuthenticationSession session, final InteractionInvocationMethod interactionMethod, final ObjectAdapter targetObjectAdapter) {
- return new ObjectValidityContext(deploymentCategory, session, interactionMethod, targetObjectAdapter, getIdentifier());
+ return new ObjectValidityContext(getConfiguration(), deploymentCategory, session, interactionMethod, targetObjectAdapter, getIdentifier());
}
// //////////////////////////////////////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/isis/blob/ec51c582/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationContributee.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationContributee.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationContributee.java
index af66786..69e354d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationContributee.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationContributee.java
@@ -17,6 +17,7 @@
package org.apache.isis.core.metamodel.specloader.specimpl;
import java.util.List;
+
import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.annotation.When;
import org.apache.isis.applib.annotation.Where;
@@ -36,6 +37,8 @@ import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetForContributee;
import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacetAbstract;
+import org.apache.isis.core.metamodel.interactions.ActionExecutingContext;
+import org.apache.isis.core.metamodel.interactions.CollectionAccessingContext;
import org.apache.isis.core.metamodel.interactions.InteractionUtils;
import org.apache.isis.core.metamodel.interactions.UsabilityContext;
import org.apache.isis.core.metamodel.interactions.VisibilityContext;
@@ -117,8 +120,17 @@ public class OneToManyAssociationContributee extends OneToManyAssociationImpl im
}
@Override
- public ObjectAdapter get(final ObjectAdapter ownerAdapter) {
- return serviceAction.execute(serviceAdapter, new ObjectAdapter[]{ownerAdapter});
+ public ObjectAdapter get(
+ final ObjectAdapter ownerAdapter,
+ final CollectionAccessingContext collectionAccessingContext) {
+
+ final ActionExecutingContext actionExecutingContext =
+ serviceAction.createExecutingInteractionContext(
+ collectionAccessingContext.getSession(),
+ collectionAccessingContext.getInvocationMethod(),
+ serviceAdapter,
+ new ObjectAdapter[] { ownerAdapter });
+ return serviceAction.execute(actionExecutingContext, serviceAdapter, new ObjectAdapter[]{ownerAdapter});
}
@Override
@@ -139,14 +151,16 @@ public class OneToManyAssociationContributee extends OneToManyAssociationImpl im
@Override
public Consent isVisible(final AuthenticationSession session, final ObjectAdapter contributee, Where where) {
- final VisibilityContext<?> ic = serviceAction.createVisibleInteractionContext(session, InteractionInvocationMethod.BY_USER, serviceAdapter, where);
+ final VisibilityContext<?> ic = serviceAction.createVisibleInteractionContext(session, InteractionInvocationMethod.BY_USER, serviceAdapter, where
+ );
ic.putContributee(0, contributee); // by definition, the contributee will be the first arg of the service action
return InteractionUtils.isVisibleResult(this, ic).createConsent();
}
@Override
public Consent isUsable(final AuthenticationSession session, final ObjectAdapter contributee, Where where) {
- final UsabilityContext<?> ic = serviceAction.createUsableInteractionContext(session, InteractionInvocationMethod.BY_USER, serviceAdapter, where);
+ final UsabilityContext<?> ic = serviceAction.createUsableInteractionContext(session, InteractionInvocationMethod.BY_USER, serviceAdapter, where
+ );
ic.putContributee(0, contributee); // by definition, the contributee will be the first arg of the service action
return InteractionUtils.isUsableResult(this, ic).createConsent();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/ec51c582/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationImpl.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationImpl.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationImpl.java
index 7733052..86e89c7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationImpl.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationImpl.java
@@ -31,14 +31,15 @@ import org.apache.isis.core.metamodel.consent.InteractionResult;
import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.FacetedMethod;
-import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToFacet;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionClearFacet;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemoveFromFacet;
-import org.apache.isis.core.metamodel.interactions.CollectionAddToContext;
-import org.apache.isis.core.metamodel.interactions.CollectionRemoveFromContext;
+import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
+import org.apache.isis.core.metamodel.interactions.CollectionAccessingContext;
import org.apache.isis.core.metamodel.interactions.CollectionUsabilityContext;
+import org.apache.isis.core.metamodel.interactions.CollectionValidityAddToContext;
+import org.apache.isis.core.metamodel.interactions.CollectionValidityRemoveFromContext;
import org.apache.isis.core.metamodel.interactions.CollectionVisibilityContext;
import org.apache.isis.core.metamodel.interactions.InteractionUtils;
import org.apache.isis.core.metamodel.interactions.UsabilityContext;
@@ -49,7 +50,7 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
-public class OneToManyAssociationImpl extends ObjectAssociationAbstract implements OneToManyAssociation {
+public class OneToManyAssociationImpl extends ObjectAssociationAbstract<CollectionAccessingContext> implements OneToManyAssociation {
public OneToManyAssociationImpl(
final FacetedMethod facetedMethod,
@@ -75,8 +76,16 @@ public class OneToManyAssociationImpl extends ObjectAssociationAbstract implemen
// /////////////////////////////////////////////////////////////
@Override
- public VisibilityContext<?> createVisibleInteractionContext(final AuthenticationSession session, final InteractionInvocationMethod invocationMethod, final ObjectAdapter ownerAdapter, Where where) {
- return new CollectionVisibilityContext(getDeploymentCategory(), session, invocationMethod, ownerAdapter, getIdentifier(), where);
+ public VisibilityContext<?> createVisibleInteractionContext(
+ final AuthenticationSession session,
+ final InteractionInvocationMethod invocationMethod,
+ final ObjectAdapter ownerAdapter,
+ final Where where) {
+ return new CollectionVisibilityContext(
+ getConfiguration(), getDeploymentCategory(),
+ session, invocationMethod, ownerAdapter,
+ getIdentifier(),
+ where);
}
// /////////////////////////////////////////////////////////////
@@ -84,8 +93,16 @@ public class OneToManyAssociationImpl extends ObjectAssociationAbstract implemen
// /////////////////////////////////////////////////////////////
@Override
- public UsabilityContext<?> createUsableInteractionContext(final AuthenticationSession session, final InteractionInvocationMethod invocationMethod, final ObjectAdapter ownerAdapter, Where where) {
- return new CollectionUsabilityContext(getDeploymentCategory(), session, invocationMethod, ownerAdapter, getIdentifier(), where);
+ public UsabilityContext<?> createUsableInteractionContext(
+ final AuthenticationSession session,
+ final InteractionInvocationMethod invocationMethod,
+ final ObjectAdapter ownerAdapter,
+ final Where where) {
+ return new CollectionUsabilityContext(
+ getConfiguration(), getDeploymentCategory(),
+ session, invocationMethod, ownerAdapter,
+ getIdentifier(),
+ where);
}
// /////////////////////////////////////////////////////////////
@@ -93,8 +110,17 @@ public class OneToManyAssociationImpl extends ObjectAssociationAbstract implemen
// /////////////////////////////////////////////////////////////
@Override
- public ValidityContext<?> createValidateAddInteractionContext(final AuthenticationSession session, final InteractionInvocationMethod invocationMethod, final ObjectAdapter ownerAdapter, final ObjectAdapter proposedToAddAdapter) {
- return new CollectionAddToContext(getDeploymentCategory(), session, invocationMethod, ownerAdapter, getIdentifier(), proposedToAddAdapter);
+ public ValidityContext<?> createValidatingAddInteractionContext(
+ final AuthenticationSession session,
+ final InteractionInvocationMethod invocationMethod,
+ final ObjectAdapter ownerAdapter,
+ final ObjectAdapter proposedToAddAdapter) {
+ return new CollectionValidityAddToContext(
+ this,
+ getConfiguration(), getDeploymentCategory(),
+ session, invocationMethod, ownerAdapter,
+ getIdentifier(),
+ proposedToAddAdapter);
}
/**
@@ -107,7 +133,8 @@ public class OneToManyAssociationImpl extends ObjectAssociationAbstract implemen
}
private InteractionResult isValidToAddResult(final ObjectAdapter ownerAdapter, final ObjectAdapter proposedToAddAdapter) {
- final ValidityContext<?> validityContext = createValidateAddInteractionContext(getAuthenticationSession(), InteractionInvocationMethod.BY_USER, ownerAdapter, proposedToAddAdapter);
+ final ValidityContext<?> validityContext = createValidatingAddInteractionContext(getAuthenticationSession(),
+ InteractionInvocationMethod.BY_USER, ownerAdapter, proposedToAddAdapter);
return InteractionUtils.isValidResult(this, validityContext);
}
@@ -116,8 +143,12 @@ public class OneToManyAssociationImpl extends ObjectAssociationAbstract implemen
// /////////////////////////////////////////////////////////////
@Override
- public ValidityContext<?> createValidateRemoveInteractionContext(final AuthenticationSession session, final InteractionInvocationMethod invocationMethod, final ObjectAdapter ownerAdapter, final ObjectAdapter proposedToRemoveAdapter) {
- return new CollectionRemoveFromContext(getDeploymentCategory(), session, invocationMethod, ownerAdapter, getIdentifier(), proposedToRemoveAdapter);
+ public ValidityContext<?> createValidatingRemoveInteractionContext(
+ final AuthenticationSession session,
+ final InteractionInvocationMethod invocationMethod,
+ final ObjectAdapter ownerAdapter,
+ final ObjectAdapter proposedToRemoveAdapter) {
+ return new CollectionValidityRemoveFromContext(this, getConfiguration(), getDeploymentCategory(), session, invocationMethod, ownerAdapter, getIdentifier(), proposedToRemoveAdapter);
}
/**
@@ -130,7 +161,8 @@ public class OneToManyAssociationImpl extends ObjectAssociationAbstract implemen
}
private InteractionResult isValidToRemoveResult(final ObjectAdapter ownerAdapter, final ObjectAdapter proposedToRemoveAdapter) {
- final ValidityContext<?> validityContext = createValidateRemoveInteractionContext(getAuthenticationSession(), InteractionInvocationMethod.BY_USER, ownerAdapter, proposedToRemoveAdapter);
+ final ValidityContext<?> validityContext = createValidatingRemoveInteractionContext(getAuthenticationSession(),
+ InteractionInvocationMethod.BY_USER, ownerAdapter, proposedToRemoveAdapter);
return InteractionUtils.isValidResult(this, validityContext);
}
@@ -143,10 +175,23 @@ public class OneToManyAssociationImpl extends ObjectAssociationAbstract implemen
// /////////////////////////////////////////////////////////////
@Override
- public ObjectAdapter get(final ObjectAdapter ownerAdapter) {
+ public CollectionAccessingContext createAccessingInteractionContext(
+ final AuthenticationSession session,
+ final InteractionInvocationMethod interactionMethod,
+ final ObjectAdapter ownerAdapter) {
+ return new CollectionAccessingContext(
+ this,
+ getConfiguration(), getDeploymentCategory(), session,
+ interactionMethod, getIdentifier(), ownerAdapter);
+ }
+
+ @Override
+ public ObjectAdapter get(
+ final ObjectAdapter ownerAdapter,
+ final CollectionAccessingContext collectionAccessingContext) {
final PropertyOrCollectionAccessorFacet accessor = getFacet(PropertyOrCollectionAccessorFacet.class);
- final Object collection = accessor.getProperty(ownerAdapter, getAuthenticationSession(), getDeploymentCategory());
+ final Object collection = accessor.getProperty(collectionAccessingContext, ownerAdapter, getAuthenticationSession(), getDeploymentCategory());
if (collection == null) {
return null;
}
@@ -154,10 +199,12 @@ public class OneToManyAssociationImpl extends ObjectAssociationAbstract implemen
}
@Override
- public boolean isEmpty(final ObjectAdapter parentAdapter) {
+ public boolean isEmpty(
+ final ObjectAdapter parentAdapter,
+ final CollectionAccessingContext collectionAccessingContext) {
// REVIEW should we be able to determine if a collection is empty
// without loading it?
- final ObjectAdapter collection = get(parentAdapter);
+ final ObjectAdapter collection = get(parentAdapter, collectionAccessingContext);
final CollectionFacet facet = CollectionFacet.Utils.getCollectionFacetFromSpec(collection);
return facet.size(collection) == 0;
}
@@ -167,7 +214,10 @@ public class OneToManyAssociationImpl extends ObjectAssociationAbstract implemen
// /////////////////////////////////////////////////////////////
@Override
- public void addElement(final ObjectAdapter ownerAdapter, final ObjectAdapter referencedAdapter) {
+ public void addElement(
+ final CollectionAccessingContext collectionAccessingContext,
+ final ObjectAdapter ownerAdapter,
+ final ObjectAdapter referencedAdapter) {
if (referencedAdapter == null) {
throw new IllegalArgumentException("Can't use null to add an item to a collection");
}
@@ -176,18 +226,21 @@ public class OneToManyAssociationImpl extends ObjectAssociationAbstract implemen
throw new IsisException("can't set a reference to a transient object from a persistent one: " + ownerAdapter.titleString() + " (persistent) -> " + referencedAdapter.titleString() + " (transient)");
}
final CollectionAddToFacet facet = getFacet(CollectionAddToFacet.class);
- facet.add(ownerAdapter, referencedAdapter);
+ facet.add(collectionAccessingContext, ownerAdapter, referencedAdapter);
}
}
@Override
- public void removeElement(final ObjectAdapter ownerAdapter, final ObjectAdapter referencedAdapter) {
+ public void removeElement(
+ final CollectionAccessingContext collectionAccessingContext,
+ final ObjectAdapter ownerAdapter,
+ final ObjectAdapter referencedAdapter) {
if (referencedAdapter == null) {
throw new IllegalArgumentException("element should not be null");
}
if (readWrite()) {
final CollectionRemoveFromFacet facet = getFacet(CollectionRemoveFromFacet.class);
- facet.remove(ownerAdapter, referencedAdapter);
+ facet.remove(collectionAccessingContext, ownerAdapter, referencedAdapter);
}
}
@@ -223,7 +276,7 @@ public class OneToManyAssociationImpl extends ObjectAssociationAbstract implemen
@Override
public ObjectAdapter[] getChoices(
- final ObjectAdapter ownerAdapter,
+ final CollectionAccessingContext associationAccessingContext, final ObjectAdapter ownerAdapter,
final AuthenticationSession authenticationSession,
final DeploymentCategory deploymentCategory) {
return new ObjectAdapter[0];
@@ -242,7 +295,7 @@ public class OneToManyAssociationImpl extends ObjectAssociationAbstract implemen
@Override
public ObjectAdapter[] getAutoComplete(
- ObjectAdapter object,
+ final CollectionAccessingContext associationAccessingContext, ObjectAdapter object,
String searchArg,
final AuthenticationSession authenticationSession, final DeploymentCategory deploymentCategory) {
return new ObjectAdapter[0];
http://git-wip-us.apache.org/repos/asf/isis/blob/ec51c582/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneActionParameterContributee.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneActionParameterContributee.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneActionParameterContributee.java
index 569b86f..2d32940 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneActionParameterContributee.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneActionParameterContributee.java
@@ -22,6 +22,7 @@ import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.commons.lang.ListExtensions;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
+import org.apache.isis.core.metamodel.interactions.ActionPromptContext;
import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
public class OneToOneActionParameterContributee extends OneToOneActionParameterImpl implements ObjectActionParameterContributee{
@@ -54,11 +55,11 @@ public class OneToOneActionParameterContributee extends OneToOneActionParameterI
@Override
public ObjectAdapter[] getAutoComplete(
- final ObjectAdapter adapter,
+ final ActionPromptContext actionPromptContext, final ObjectAdapter adapter,
final String searchArg,
final AuthenticationSession authenticationSession,
final DeploymentCategory deploymentCategory) {
- return serviceActionParameter.getAutoComplete(serviceAdapter, searchArg, authenticationSession,
+ return serviceActionParameter.getAutoComplete(actionPromptContext, serviceAdapter, searchArg, authenticationSession,
deploymentCategory);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/ec51c582/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 367c36f..4c64141 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,10 +19,13 @@
package org.apache.isis.core.metamodel.specloader.specimpl;
+import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.metamodel.adapter.MutableProposedHolder;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.consent.InteractionInvocationMethod;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.TypedHolder;
+import org.apache.isis.core.metamodel.interactions.ParameterAccessingContext;
import org.apache.isis.core.metamodel.spec.Instance;
import org.apache.isis.core.metamodel.spec.feature.OneToOneActionParameter;
@@ -59,11 +62,11 @@ public class OneToOneActionParameterImpl extends ObjectActionParameterAbstract i
/**
* Gets the proposed value of the {@link Instance} (downcast as a
- * {@link MutableProposed}, wrapping the proposed value into a
+ * {@link MutableProposedHolder}, wrapping the proposed value into a
* {@link ObjectAdapter}.
*/
@Override
- public ObjectAdapter get(final ObjectAdapter owner) {
+ public ObjectAdapter get(final ObjectAdapter owner, final ParameterAccessingContext parameterAccessingContext) {
final MutableProposedHolder proposedHolder = getProposedHolder(owner);
final Object proposed = proposedHolder.getProposed();
return getAdapterMap().adapterFor(proposed);
@@ -71,7 +74,7 @@ public class OneToOneActionParameterImpl extends ObjectActionParameterAbstract i
/**
* Sets the proposed value of the {@link Instance} (downcast as a
- * {@link MutableProposed}, unwrapped the proposed value from a
+ * {@link MutableProposedHolder}, unwrapped the proposed value from a
* {@link ObjectAdapter}.
*/
public void set(final ObjectAdapter owner, final ObjectAdapter newValue) {
http://git-wip-us.apache.org/repos/asf/isis/blob/ec51c582/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationContributee.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationContributee.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationContributee.java
index 8e69c1e..759a977 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationContributee.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationContributee.java
@@ -17,6 +17,7 @@
package org.apache.isis.core.metamodel.specloader.specimpl;
import java.util.List;
+
import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.annotation.When;
import org.apache.isis.applib.annotation.Where;
@@ -35,7 +36,9 @@ import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacetForContributee;
import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacetAbstract;
+import org.apache.isis.core.metamodel.interactions.ActionExecutingContext;
import org.apache.isis.core.metamodel.interactions.InteractionUtils;
+import org.apache.isis.core.metamodel.interactions.PropertyAccessingContext;
import org.apache.isis.core.metamodel.interactions.UsabilityContext;
import org.apache.isis.core.metamodel.interactions.VisibilityContext;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -103,8 +106,15 @@ public class OneToOneAssociationContributee extends OneToOneAssociationImpl impl
}
@Override
- public ObjectAdapter get(final ObjectAdapter ownerAdapter) {
- return serviceAction.execute(serviceAdapter, new ObjectAdapter[]{ownerAdapter});
+ public ObjectAdapter get(
+ final ObjectAdapter ownerAdapter,
+ final PropertyAccessingContext propertyAccessingContext) {
+
+ final ActionExecutingContext actionExecutingContext =
+ serviceAction.createExecutingInteractionContext(
+ propertyAccessingContext.getSession(), propertyAccessingContext.getInvocationMethod(),
+ serviceAdapter, new ObjectAdapter[] { ownerAdapter });
+ return serviceAction.execute(actionExecutingContext, serviceAdapter, new ObjectAdapter[]{ownerAdapter});
}
@Override
@@ -125,14 +135,16 @@ public class OneToOneAssociationContributee extends OneToOneAssociationImpl impl
@Override
public Consent isVisible(final AuthenticationSession session, final ObjectAdapter contributee, Where where) {
- final VisibilityContext<?> ic = serviceAction.createVisibleInteractionContext(session, InteractionInvocationMethod.BY_USER, serviceAdapter, where);
+ final VisibilityContext<?> ic = serviceAction.createVisibleInteractionContext(session, InteractionInvocationMethod.BY_USER, serviceAdapter, where
+ );
ic.putContributee(0, contributee); // by definition, the contributee will be the first arg of the service action
return InteractionUtils.isVisibleResult(this, ic).createConsent();
}
@Override
public Consent isUsable(final AuthenticationSession session, final ObjectAdapter contributee, Where where) {
- final UsabilityContext<?> ic = serviceAction.createUsableInteractionContext(session, InteractionInvocationMethod.BY_USER, serviceAdapter, where);
+ final UsabilityContext<?> ic = serviceAction.createUsableInteractionContext(session, InteractionInvocationMethod.BY_USER, serviceAdapter, where
+ );
ic.putContributee(0, contributee); // by definition, the contributee will be the first arg of the service action
return InteractionUtils.isUsableResult(this, ic).createConsent();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/ec51c582/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationImpl.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationImpl.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationImpl.java
index 636811f..dd9fd49 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationImpl.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationImpl.java
@@ -37,8 +37,9 @@ import org.apache.isis.core.metamodel.consent.InteractionResult;
import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.FacetedMethod;
-import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet;
+import org.apache.isis.core.metamodel.facets.param.autocomplete.MinLengthUtil;
+import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
import org.apache.isis.core.metamodel.facets.properties.autocomplete.PropertyAutoCompleteFacet;
import org.apache.isis.core.metamodel.facets.properties.choices.PropertyChoicesFacet;
import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
@@ -46,8 +47,8 @@ import org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyCle
import org.apache.isis.core.metamodel.facets.properties.update.init.PropertyInitializationFacet;
import org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacet;
import org.apache.isis.core.metamodel.interactions.InteractionUtils;
-import org.apache.isis.core.metamodel.interactions.PropertyAccessContext;
-import org.apache.isis.core.metamodel.interactions.PropertyModifyContext;
+import org.apache.isis.core.metamodel.interactions.PropertyAccessingContext;
+import org.apache.isis.core.metamodel.interactions.PropertyValidityContext;
import org.apache.isis.core.metamodel.interactions.PropertyUsabilityContext;
import org.apache.isis.core.metamodel.interactions.PropertyVisibilityContext;
import org.apache.isis.core.metamodel.interactions.UsabilityContext;
@@ -55,11 +56,11 @@ import org.apache.isis.core.metamodel.interactions.ValidityContext;
import org.apache.isis.core.metamodel.interactions.VisibilityContext;
import org.apache.isis.core.metamodel.spec.Instance;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.spec.feature.MutableCurrentHolder;
import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
-import org.apache.isis.core.metamodel.facets.param.autocomplete.MinLengthUtil;
-public class OneToOneAssociationImpl extends ObjectAssociationAbstract implements OneToOneAssociation {
+public class OneToOneAssociationImpl extends ObjectAssociationAbstract<PropertyAccessingContext> implements OneToOneAssociation {
public OneToOneAssociationImpl(final FacetedMethod facetedMethod, final ObjectMemberContext objectMemberContext) {
this(facetedMethod, getSpecification(objectMemberContext.getSpecificationLoader(), facetedMethod.getType()), objectMemberContext);
@@ -74,8 +75,12 @@ public class OneToOneAssociationImpl extends ObjectAssociationAbstract implement
// /////////////////////////////////////////////////////////////
@Override
- public VisibilityContext<?> createVisibleInteractionContext(final AuthenticationSession session, final InteractionInvocationMethod invocationMethod, final ObjectAdapter ownerAdapter, Where where) {
- return new PropertyVisibilityContext(getDeploymentCategory(), session, invocationMethod, ownerAdapter, getIdentifier(), where);
+ public VisibilityContext<?> createVisibleInteractionContext(
+ final AuthenticationSession session,
+ final InteractionInvocationMethod invocationMethod,
+ final ObjectAdapter ownerAdapter,
+ final Where where) {
+ return new PropertyVisibilityContext(getConfiguration(), getDeploymentCategory(), session, invocationMethod, ownerAdapter, getIdentifier(), where);
}
// /////////////////////////////////////////////////////////////
@@ -83,8 +88,12 @@ public class OneToOneAssociationImpl extends ObjectAssociationAbstract implement
// /////////////////////////////////////////////////////////////
@Override
- public UsabilityContext<?> createUsableInteractionContext(final AuthenticationSession session, final InteractionInvocationMethod invocationMethod, final ObjectAdapter ownerAdapter, Where where) {
- return new PropertyUsabilityContext(getDeploymentCategory(), session, invocationMethod, ownerAdapter, getIdentifier(), where);
+ public UsabilityContext<?> createUsableInteractionContext(
+ final AuthenticationSession session,
+ final InteractionInvocationMethod invocationMethod,
+ final ObjectAdapter ownerAdapter,
+ final Where where) {
+ return new PropertyUsabilityContext(getConfiguration(), getDeploymentCategory(), session, invocationMethod, ownerAdapter, getIdentifier(), where);
}
// /////////////////////////////////////////////////////////////
@@ -92,8 +101,12 @@ public class OneToOneAssociationImpl extends ObjectAssociationAbstract implement
// /////////////////////////////////////////////////////////////
@Override
- public ValidityContext<?> createValidateInteractionContext(final AuthenticationSession session, final InteractionInvocationMethod interactionMethod, final ObjectAdapter ownerAdapter, final ObjectAdapter proposedToReferenceAdapter) {
- return new PropertyModifyContext(getDeploymentCategory(), session, interactionMethod, ownerAdapter, getIdentifier(), proposedToReferenceAdapter);
+ public ValidityContext<?> createValidateInteractionContext(
+ final AuthenticationSession session,
+ final InteractionInvocationMethod interactionMethod,
+ final ObjectAdapter ownerAdapter,
+ final ObjectAdapter proposedToReferenceAdapter) {
+ return new PropertyValidityContext(this, getConfiguration(), getDeploymentCategory(), session, interactionMethod, ownerAdapter, getIdentifier(), proposedToReferenceAdapter);
}
/**
@@ -101,7 +114,9 @@ public class OneToOneAssociationImpl extends ObjectAssociationAbstract implement
* initiated {@link InteractionInvocationMethod#BY_USER by user}.
*/
@Override
- public Consent isAssociationValid(final ObjectAdapter ownerAdapter, final ObjectAdapter proposedToReferenceAdapter) {
+ public Consent isAssociationValid(
+ final ObjectAdapter ownerAdapter,
+ final ObjectAdapter proposedToReferenceAdapter) {
return isAssociationValidResult(ownerAdapter, proposedToReferenceAdapter).createConsent();
}
@@ -127,9 +142,11 @@ public class OneToOneAssociationImpl extends ObjectAssociationAbstract implement
// /////////////////////////////////////////////////////////////
@Override
- public ObjectAdapter get(final ObjectAdapter ownerAdapter) {
+ public ObjectAdapter get(
+ final ObjectAdapter ownerAdapter,
+ final PropertyAccessingContext propertyAccessingContext) {
final PropertyOrCollectionAccessorFacet facet = getFacet(PropertyOrCollectionAccessorFacet.class);
- final Object referencedPojo = facet.getProperty(ownerAdapter, getAuthenticationSession(), getDeploymentCategory());
+ final Object referencedPojo = facet.getProperty(propertyAccessingContext, ownerAdapter, getAuthenticationSession(), getDeploymentCategory());
if (referencedPojo == null) {
return null;
@@ -143,14 +160,20 @@ public class OneToOneAssociationImpl extends ObjectAssociationAbstract implement
* initiated {@link InteractionInvocationMethod#BY_USER by user}.
*/
@Override
- public PropertyAccessContext createAccessInteractionContext(final AuthenticationSession session, final InteractionInvocationMethod interactionMethod, final ObjectAdapter ownerAdapter) {
- return new PropertyAccessContext(getDeploymentCategory(), session, InteractionInvocationMethod.BY_USER, ownerAdapter, getIdentifier(), get(ownerAdapter
- ));
+ public PropertyAccessingContext createAccessingInteractionContext(
+ final AuthenticationSession session,
+ final InteractionInvocationMethod interactionMethod,
+ final ObjectAdapter ownerAdapter) {
+ return new PropertyAccessingContext(this, getConfiguration(), getDeploymentCategory(), session, InteractionInvocationMethod.BY_USER,
+ getIdentifier(), ownerAdapter
+ );
}
@Override
- public boolean isEmpty(final ObjectAdapter ownerAdapter) {
- return get(ownerAdapter) == null;
+ public boolean isEmpty(
+ final ObjectAdapter ownerAdapter,
+ final PropertyAccessingContext propertyAccessingContext) {
+ return get(ownerAdapter, propertyAccessingContext) == null;
}
// /////////////////////////////////////////////////////////////
@@ -158,24 +181,33 @@ public class OneToOneAssociationImpl extends ObjectAssociationAbstract implement
// /////////////////////////////////////////////////////////////
@Override
- public void set(final ObjectAdapter ownerAdapter, final ObjectAdapter newReferencedAdapter) {
+ public void set(
+ final PropertyAccessingContext accessingContext,
+ final ObjectAdapter ownerAdapter,
+ final ObjectAdapter newReferencedAdapter) {
if (newReferencedAdapter != null) {
- setValue(ownerAdapter, newReferencedAdapter);
+ setValue(accessingContext, ownerAdapter, newReferencedAdapter);
} else {
- clearValue(ownerAdapter);
+ clearValue(accessingContext, ownerAdapter);
}
}
/**
- * @see #set(ObjectAdapter, ObjectAdapter)
+ * @see MutableCurrentHolder#set(org.apache.isis.core.metamodel.interactions.AccessContext, ObjectAdapter, ObjectAdapter)
*/
@Deprecated
@Override
- public void setAssociation(final ObjectAdapter ownerAdapter, final ObjectAdapter newReferencedAdapter) {
- setValue(ownerAdapter, newReferencedAdapter);
+ public void setAssociation(
+ final PropertyAccessingContext propertyAccessingContext,
+ final ObjectAdapter ownerAdapter,
+ final ObjectAdapter newReferencedAdapter) {
+ setValue(propertyAccessingContext, ownerAdapter, newReferencedAdapter);
}
- private void setValue(final ObjectAdapter ownerAdapter, final ObjectAdapter newReferencedAdapter) {
+ private void setValue(
+ final PropertyAccessingContext propertyAccessingContext,
+ final ObjectAdapter ownerAdapter,
+ final ObjectAdapter newReferencedAdapter) {
final PropertySetterFacet setterFacet = getFacet(PropertySetterFacet.class);
if (setterFacet == null) {
return;
@@ -184,21 +216,23 @@ public class OneToOneAssociationImpl extends ObjectAssociationAbstract implement
// TODO: move to facet ?
throw new IsisException("can't set a reference to a transient object from a persistent one: " + newReferencedAdapter.titleString() + " (transient)");
}
- setterFacet.setProperty(ownerAdapter, newReferencedAdapter);
+ setterFacet.setProperty(propertyAccessingContext, ownerAdapter, newReferencedAdapter);
}
/**
- * @see #set(ObjectAdapter, ObjectAdapter)
+ * @see MutableCurrentHolder#set(org.apache.isis.core.metamodel.interactions.AccessContext, ObjectAdapter, ObjectAdapter)
*/
@Deprecated
@Override
- public void clearAssociation(final ObjectAdapter ownerAdapter) {
- clearValue(ownerAdapter);
+ public void clearAssociation(
+ final PropertyAccessingContext propertyAccessingContext,
+ final ObjectAdapter ownerAdapter) {
+ clearValue(propertyAccessingContext, ownerAdapter);
}
- private void clearValue(final ObjectAdapter ownerAdapter) {
+ private void clearValue(final PropertyAccessingContext propertyAccessingContext, final ObjectAdapter ownerAdapter) {
final PropertyClearFacet facet = getFacet(PropertyClearFacet.class);
- facet.clearProperty(ownerAdapter);
+ facet.clearProperty(propertyAccessingContext, ownerAdapter);
}
// /////////////////////////////////////////////////////////////
@@ -245,11 +279,13 @@ public class OneToOneAssociationImpl extends ObjectAssociationAbstract implement
@Override
public ObjectAdapter[] getChoices(
+ final PropertyAccessingContext propertyAccessingContext,
final ObjectAdapter ownerAdapter,
final AuthenticationSession authenticationSession,
final DeploymentCategory deploymentCategory) {
final PropertyChoicesFacet propertyChoicesFacet = getFacet(PropertyChoicesFacet.class);
- final Object[] pojoOptions = propertyChoicesFacet == null ? null : propertyChoicesFacet.getChoices(ownerAdapter, getSpecificationLoader(),
+ final Object[] pojoOptions = propertyChoicesFacet == null ? null : propertyChoicesFacet.getChoices(
+ propertyAccessingContext, ownerAdapter, getSpecificationLoader(),
authenticationSession, deploymentCategory);
if (pojoOptions != null) {
List<ObjectAdapter> adapters = Lists.transform(
@@ -283,13 +319,15 @@ public class OneToOneAssociationImpl extends ObjectAssociationAbstract implement
@Override
public ObjectAdapter[] getAutoComplete(
+ final PropertyAccessingContext propertyAccessingContext,
final ObjectAdapter ownerAdapter,
final String searchArg,
final AuthenticationSession authenticationSession,
final DeploymentCategory deploymentCategory) {
final PropertyAutoCompleteFacet propertyAutoCompleteFacet = getFacet(PropertyAutoCompleteFacet.class);
- final Object[] pojoOptions = propertyAutoCompleteFacet.autoComplete(ownerAdapter, searchArg,
- authenticationSession, deploymentCategory);
+ final Object[] pojoOptions =
+ propertyAutoCompleteFacet.autoComplete(
+ propertyAccessingContext, ownerAdapter, searchArg, authenticationSession, deploymentCategory);
if (pojoOptions != null) {
final ObjectAdapter[] options = new ObjectAdapter[pojoOptions.length];
for (int i = 0; i < options.length; i++) {
http://git-wip-us.apache.org/repos/asf/isis/blob/ec51c582/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/Dump.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/Dump.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/Dump.java
index 783e563..b7cc7d6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/Dump.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/Dump.java
@@ -31,12 +31,14 @@ import org.apache.isis.core.commons.debug.DebugString;
import org.apache.isis.core.commons.debug.DebugUtils;
import org.apache.isis.core.commons.debug.DebuggableWithTitle;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.consent.InteractionInvocationMethod;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacetUtils;
import org.apache.isis.core.metamodel.facets.object.choices.ChoicesFacetUtils;
import org.apache.isis.core.metamodel.facets.object.cached.CachedFacetUtils;
import org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacetUtils;
+import org.apache.isis.core.metamodel.interactions.AssociationAccessingContext;
import org.apache.isis.core.metamodel.spec.ActionType;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
@@ -417,10 +419,13 @@ public final class Dump {
try {
final List<ObjectAssociation> fields = objectSpec.getAssociations(Contributed.EXCLUDED);
for (int i = 0; i < fields.size(); i++) {
- final ObjectAssociation field = fields.get(i);
- final ObjectAdapter obj = field.get(collectionAdapter);
+ final ObjectAssociation<AssociationAccessingContext<?>> association = fields.get(i);
+ final AssociationAccessingContext accessingContext = association
+ .createAccessingInteractionContext(null, InteractionInvocationMethod.BY_USER,
+ collectionAdapter);
+ final ObjectAdapter obj = association.get(collectionAdapter, accessingContext);
- final String name = field.getId();
+ final String name = association.getId();
if (obj == null) {
debugBuilder.appendln(name, "null");
} else {
@@ -481,12 +486,15 @@ public final class Dump {
// work through all its fields
final List<ObjectAssociation> fields = adapter.getSpecification().getAssociations(Contributed.EXCLUDED);
for (int i = 0; i < fields.size(); i++) {
- final ObjectAssociation field = fields.get(i);
- final ObjectAdapter obj = field.get(adapter);
- final String name = field.getId();
+ final ObjectAssociation<AssociationAccessingContext<?>> association = fields.get(i);
+ final AssociationAccessingContext accessingContext =
+ association.createAccessingInteractionContext(
+ null, InteractionInvocationMethod.BY_USER, adapter);
+ final ObjectAdapter obj = association.get(adapter, accessingContext);
+ final String name = association.getId();
graphIndent(level, s);
- if (field.isVisible(authenticationSession, adapter, where).isVetoed()) {
+ if (association.isVisible(authenticationSession, adapter, where).isVetoed()) {
s.append(name + ": (not visible)");
s.append("\n");
} else {
http://git-wip-us.apache.org/repos/asf/isis/blob/ec51c582/core/metamodel/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshot.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshot.java b/core/metamodel/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshot.java
index a8ff3e8..a5e5e2e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshot.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshot.java
@@ -54,11 +54,14 @@ import org.apache.isis.applib.snapshot.SnapshottableWithInclusions;
import org.apache.isis.core.commons.exceptions.IsisException;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
+import org.apache.isis.core.metamodel.consent.InteractionInvocationMethod;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
import org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacet;
import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
+import org.apache.isis.core.metamodel.interactions.CollectionAccessingContext;
+import org.apache.isis.core.metamodel.interactions.PropertyAccessingContext;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.ObjectSpecificationException;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
@@ -200,7 +203,7 @@ public class XmlSnapshot implements Snapshot {
* schemaManager must be populated with any application-level namespaces
* referenced in the document that the parentElement resides within.
* (Normally this is achieved simply by using appendXml passing in a new
- * schemaManager - see {@link #toXml()}or {@link XmlSnapshot}).
+ * schemaManager - see {@link XmlSnapshot}).
*/
private Place appendXml(final ObjectAdapter object) {
@@ -266,7 +269,7 @@ public class XmlSnapshot implements Snapshot {
* with any application-level namespaces referenced in the document that the
* parentElement resides within. (Normally this is achieved simply by using
* appendXml passing in a rootElement and a new schemaManager - see
- * {@link #toXml()}or {@link XmlSnapshot}).
+ * {@link {@link XmlSnapshot}).
*/
private Element appendXml(final Place parentPlace, final ObjectAdapter childObject) {
@@ -491,9 +494,11 @@ public class XmlSnapshot implements Snapshot {
LOG.debug("includeField(Pl, Vec, Str): field is 1->1");
}
- final OneToOneAssociation oneToOneAssociation = ((OneToOneAssociation) field);
- final ObjectAdapter referencedObject = oneToOneAssociation.get(fieldPlace.getObject()
- );
+ final OneToOneAssociation property = ((OneToOneAssociation) field);
+ final ObjectAdapter targetAdapter = fieldPlace.getObject();
+ final PropertyAccessingContext propertyAccessingContext = property
+ .createAccessingInteractionContext(null, InteractionInvocationMethod.BY_USER, targetAdapter);
+ final ObjectAdapter referencedObject = property.get(fieldPlace.getObject(), propertyAccessingContext);
if (referencedObject == null) {
return true; // not a failure if the reference was null
@@ -511,15 +516,18 @@ public class XmlSnapshot implements Snapshot {
LOG.debug("includeField(Pl, Vec, Str): field is 1->M");
}
- final OneToManyAssociation oneToManyAssociation = (OneToManyAssociation) field;
- final ObjectAdapter collection = oneToManyAssociation.get(fieldPlace.getObject());
- final CollectionFacet facet = collection.getSpecification().getFacet(CollectionFacet.class);
+ final OneToManyAssociation collection = (OneToManyAssociation) field;
+ final ObjectAdapter targetAdapter = fieldPlace.getObject();
+ final CollectionAccessingContext collectionAccessingContext = collection
+ .createAccessingInteractionContext(null, InteractionInvocationMethod.BY_USER, targetAdapter);
+ final ObjectAdapter collectionAdapter = collection.get(targetAdapter, collectionAccessingContext);
+ final CollectionFacet facet = collectionAdapter.getSpecification().getFacet(CollectionFacet.class);
if (LOG.isDebugEnabled()) {
- LOG.debug("includeField(Pl, Vec, Str): 1->M: " + log("collection.size", "" + facet.size(collection)));
+ LOG.debug("includeField(Pl, Vec, Str): 1->M: " + log("collection.size", "" + facet.size(collectionAdapter)));
}
boolean allFieldsNavigated = true;
- for (final ObjectAdapter referencedObject : facet.iterable(collection)) {
+ for (final ObjectAdapter referencedObject : facet.iterable(collectionAdapter)) {
final boolean appendedXml = appendXmlThenIncludeRemaining(fieldPlace, referencedObject, names, annotation);
if (LOG.isDebugEnabled()) {
LOG.debug("includeField(Pl, Vec, Str): 1->M: + invoked appendXmlThenIncludeRemaining for " + log("referencedObj", referencedObject) + andlog("returned", "" + appendedXml));
@@ -608,19 +616,19 @@ public class XmlSnapshot implements Snapshot {
return childElement;
}
- Place objectToElement(final ObjectAdapter adapter) {
+ Place objectToElement(final ObjectAdapter targetAdapter) {
if (LOG.isDebugEnabled()) {
- LOG.debug("objectToElement(" + log("object", adapter) + ")");
+ LOG.debug("objectToElement(" + log("object", targetAdapter) + ")");
}
- final ObjectSpecification nos = adapter.getSpecification();
+ final ObjectSpecification nos = targetAdapter.getSpecification();
if (LOG.isDebugEnabled()) {
LOG.debug("objectToElement(NO): create element and isis:title");
}
final Element element = schema.createElement(getXmlDocument(), nos.getShortIdentifier(), nos.getFullIdentifier(), nos.getSingularName(), nos.getPluralName());
- isisMetaModel.appendIsisTitle(element, adapter.titleString());
+ isisMetaModel.appendIsisTitle(element, targetAdapter.titleString());
if (LOG.isDebugEnabled()) {
LOG.debug("objectToElement(NO): create XS element for Isis class");
@@ -631,9 +639,9 @@ public class XmlSnapshot implements Snapshot {
// cardinality setting.
topLevelElementWritten = true;
- final Place place = new Place(adapter, element);
+ final Place place = new Place(targetAdapter, element);
- isisMetaModel.setAttributesForClass(element, oidAsString(adapter).toString());
+ isisMetaModel.setAttributesForClass(element, oidAsString(targetAdapter).toString());
final List<ObjectAssociation> fields = nos.getAssociations(Contributed.INCLUDED);
if (LOG.isDebugEnabled()) {
@@ -689,7 +697,7 @@ public class XmlSnapshot implements Snapshot {
continue eachField;
}
- final OneToOneAssociation valueAssociation = ((OneToOneAssociation) field);
+ final OneToOneAssociation property = ((OneToOneAssociation) field);
final Element xmlValueElement = xmlFieldElement; // more
// meaningful
// locally
@@ -697,7 +705,10 @@ public class XmlSnapshot implements Snapshot {
ObjectAdapter value;
try {
- value = valueAssociation.get(adapter);
+ final PropertyAccessingContext propertyAccessingContext = property
+ .createAccessingInteractionContext(null, InteractionInvocationMethod.BY_USER,
+ targetAdapter);
+ value = property.get(targetAdapter, propertyAccessingContext);
final ObjectSpecification valueNos = value.getSpecification();
@@ -728,7 +739,7 @@ public class XmlSnapshot implements Snapshot {
}
// XSD
- xsdFieldElement = schema.createXsElementForNofValue(xsElement, xmlValueElement, FacetUtil.getFacetsByType(valueAssociation));
+ xsdFieldElement = schema.createXsElementForNofValue(xsElement, xmlValueElement, FacetUtil.getFacetsByType(property));
} else if (field instanceof OneToOneAssociation) {
@@ -736,7 +747,7 @@ public class XmlSnapshot implements Snapshot {
LOG.debug("objectToElement(NO): " + log("field", fieldName) + " is OneToOneAssociation");
}
- final OneToOneAssociation oneToOneAssociation = ((OneToOneAssociation) field);
+ final OneToOneAssociation property = ((OneToOneAssociation) field);
final String fullyQualifiedClassName = nos.getFullIdentifier();
final Element xmlReferenceElement = xmlFieldElement; // more
// meaningful
@@ -747,7 +758,10 @@ public class XmlSnapshot implements Snapshot {
ObjectAdapter referencedObjectAdapter;
try {
- referencedObjectAdapter = oneToOneAssociation.get(adapter);
+ final PropertyAccessingContext propertyAccessingContext =
+ property.createAccessingInteractionContext(
+ null, InteractionInvocationMethod.BY_USER, targetAdapter);
+ referencedObjectAdapter = property.get(targetAdapter, propertyAccessingContext);
// XML
isisMetaModel.setAttributesForReference(xmlReferenceElement, schema.getPrefix(), fullyQualifiedClassName);
@@ -763,7 +777,7 @@ public class XmlSnapshot implements Snapshot {
}
// XSD
- xsdFieldElement = schema.createXsElementForNofReference(xsElement, xmlReferenceElement, oneToOneAssociation.getSpecification().getFullIdentifier(), FacetUtil.getFacetsByType(oneToOneAssociation));
+ xsdFieldElement = schema.createXsElementForNofReference(xsElement, xmlReferenceElement, property.getSpecification().getFullIdentifier(), FacetUtil.getFacetsByType(property));
} else if (field instanceof OneToManyAssociation) {
@@ -771,27 +785,30 @@ public class XmlSnapshot implements Snapshot {
LOG.debug("objectToElement(NO): " + log("field", fieldName) + " is OneToManyAssociation");
}
- final OneToManyAssociation oneToManyAssociation = (OneToManyAssociation) field;
+ final OneToManyAssociation collection = (OneToManyAssociation) field;
final Element xmlCollectionElement = xmlFieldElement; // more
// meaningful
// locally
// scoped
// name
- ObjectAdapter collection;
+ ObjectAdapter collectionAdapter;
try {
- collection = oneToManyAssociation.get(adapter);
- final ObjectSpecification referencedTypeNos = oneToManyAssociation.getSpecification();
+ final CollectionAccessingContext collectionAccessingContext =
+ collection.createAccessingInteractionContext(
+ null, InteractionInvocationMethod.BY_USER, targetAdapter);
+ collectionAdapter = collection.get(targetAdapter, collectionAccessingContext);
+ final ObjectSpecification referencedTypeNos = collection.getSpecification();
final String fullyQualifiedClassName = referencedTypeNos.getFullIdentifier();
// XML
- isisMetaModel.setIsisCollection(xmlCollectionElement, schema.getPrefix(), fullyQualifiedClassName, collection);
+ isisMetaModel.setIsisCollection(xmlCollectionElement, schema.getPrefix(), fullyQualifiedClassName, collectionAdapter);
} catch (final Exception ex) {
LOG.warn("objectToElement(NO): " + log("field", fieldName) + ": get(obj) threw exception - skipping XML generation");
}
// XSD
- xsdFieldElement = schema.createXsElementForNofCollection(xsElement, xmlCollectionElement, oneToManyAssociation.getSpecification().getFullIdentifier(), FacetUtil.getFacetsByType(oneToManyAssociation));
+ xsdFieldElement = schema.createXsElementForNofCollection(xsElement, xmlCollectionElement, collection.getSpecification().getFullIdentifier(), FacetUtil.getFacetsByType(collection));
} else {
if (LOG.isInfoEnabled()) {
http://git-wip-us.apache.org/repos/asf/isis/blob/ec51c582/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactoryTest.java
index 3ba62cb..197ae33 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactoryTest.java
@@ -71,6 +71,8 @@ import org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemove
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemoveFromFacetAbstract;
import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacetAbstract;
+import org.apache.isis.core.metamodel.interactions.AssociationAccessingContext;
+import org.apache.isis.core.metamodel.interactions.CollectionAccessingContext;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import static org.apache.isis.core.commons.matchers.IsisMatchers.classEqualTo;
@@ -125,7 +127,7 @@ public class CollectionAnnotationFacetFactoryTest extends AbstractFacetFactoryJU
mockSpecificationLoaderSpi, mockConfiguration) {
@Override
public Object getProperty(
- final ObjectAdapter inObject,
+ final AssociationAccessingContext<?> associationAccessingContext, final ObjectAdapter inObject,
final AuthenticationSession authenticationSession, final DeploymentCategory deploymentCategory) {
return null;
}
@@ -135,7 +137,10 @@ public class CollectionAnnotationFacetFactoryTest extends AbstractFacetFactoryJU
private void addAddToFacet(final FacetHolder holder) {
FacetUtil.addFacet(new CollectionAddToFacetAbstract(holder) {
@Override
- public void add(final ObjectAdapter inObject, final ObjectAdapter value) {
+ public void add(
+ final CollectionAccessingContext collectionAccessingContext,
+ final ObjectAdapter inObject,
+ final ObjectAdapter value) {
}
});
}
@@ -143,7 +148,10 @@ public class CollectionAnnotationFacetFactoryTest extends AbstractFacetFactoryJU
private void addRemoveFromFacet(final FacetHolder holder) {
FacetUtil.addFacet(new CollectionRemoveFromFacetAbstract(holder) {
@Override
- public void remove(final ObjectAdapter inObject, final ObjectAdapter element) {
+ public void remove(
+ final CollectionAccessingContext collectionAccessingContext,
+ final ObjectAdapter inObject,
+ final ObjectAdapter element) {
}
});
}
http://git-wip-us.apache.org/repos/asf/isis/blob/ec51c582/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacetUsingParserTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacetUsingParserTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacetUsingParserTest.java
index d940769..3f5e988 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacetUsingParserTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacetUsingParserTest.java
@@ -31,6 +31,7 @@ import org.apache.isis.applib.adapters.Parser;
import org.apache.isis.applib.adapters.ParsingException;
import org.apache.isis.applib.profiles.Localization;
import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
+import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -53,6 +54,8 @@ public class ParseableFacetUsingParserTest {
private ServicesInjector mockDependencyInjector;
@Mock
private AdapterManager mockAdapterManager;
+ @Mock
+ private IsisConfiguration mockConfiguration;
private ParseableFacetUsingParser parseableFacetUsingParser;
@@ -106,7 +109,8 @@ public class ParseableFacetUsingParserTest {
return null;
}
};
- parseableFacetUsingParser = new ParseableFacetUsingParser(parser, mockFacetHolder, DeploymentCategory.PRODUCTION, mockAuthenticationSessionProvider, mockDependencyInjector, mockAdapterManager);
+ parseableFacetUsingParser = new ParseableFacetUsingParser(parser, mockFacetHolder, mockConfiguration,
+ DeploymentCategory.PRODUCTION, mockAuthenticationSessionProvider, mockDependencyInjector, mockAdapterManager);
}
@Ignore
http://git-wip-us.apache.org/repos/asf/isis/blob/ec51c582/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/PropertyMethodsFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/PropertyMethodsFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/PropertyMethodsFacetFactoryTest.java
index 19738b9..ac4fd33 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/PropertyMethodsFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/PropertyMethodsFacetFactoryTest.java
@@ -54,7 +54,7 @@ import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedF
import org.apache.isis.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessor;
import org.apache.isis.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessorFactory;
import org.apache.isis.core.metamodel.facets.properties.autocomplete.PropertyAutoCompleteFacet;
-import org.apache.isis.core.metamodel.facets.properties.autocomplete.method.PropertyAutoCompleteFacetMethod;
+import org.apache.isis.core.metamodel.facets.properties.autocomplete.method.PropertyAutoCompleteFacetViaMethod;
import org.apache.isis.core.metamodel.facets.properties.autocomplete.method.PropertyAutoCompleteFacetMethodFactory;
import org.apache.isis.core.metamodel.facets.properties.choices.PropertyChoicesFacet;
import org.apache.isis.core.metamodel.facets.properties.choices.method.PropertyChoicesFacetViaMethod;
@@ -408,8 +408,8 @@ public class PropertyMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
final Facet facet = facetedMethod.getFacet(PropertyAutoCompleteFacet.class);
assertNotNull(facet);
- assertTrue(facet instanceof PropertyAutoCompleteFacetMethod);
- final PropertyAutoCompleteFacetMethod propertyAutoCompleteFacet = (PropertyAutoCompleteFacetMethod) facet;
+ assertTrue(facet instanceof PropertyAutoCompleteFacetViaMethod);
+ final PropertyAutoCompleteFacetViaMethod propertyAutoCompleteFacet = (PropertyAutoCompleteFacetViaMethod) facet;
assertEquals(propertyAutoCompleteMethod, propertyAutoCompleteFacet.getMethods().get(0));
assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(propertyAutoCompleteMethod));
http://git-wip-us.apache.org/repos/asf/isis/blob/ec51c582/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactoryTest.java
index 262fe3a..e0bf2e2 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactoryTest.java
@@ -77,6 +77,8 @@ import org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySe
import org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.mustsatisfyspec.MustSatisfySpecificationFacet;
+import org.apache.isis.core.metamodel.interactions.AssociationAccessingContext;
+import org.apache.isis.core.metamodel.interactions.PropertyAccessingContext;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import static org.apache.isis.core.commons.matchers.IsisMatchers.classEqualTo;
@@ -128,7 +130,7 @@ public class PropertyAnnotationFacetFactoryTest extends AbstractFacetFactoryJUni
mockSpecificationLoaderSpi, mockConfiguration) {
@Override
public Object getProperty(
- final ObjectAdapter inObject,
+ final AssociationAccessingContext<?> associationAccessingContext, final ObjectAdapter inObject,
final AuthenticationSession authenticationSession, final DeploymentCategory deploymentCategory) {
return null;
}
@@ -138,7 +140,9 @@ public class PropertyAnnotationFacetFactoryTest extends AbstractFacetFactoryJUni
private void addSetterFacet(final FacetHolder holder) {
FacetUtil.addFacet(new PropertySetterFacetAbstract(holder) {
@Override
- public void setProperty(final ObjectAdapter inObject, final ObjectAdapter value) {
+ public void setProperty(
+ final PropertyAccessingContext propertyAccessingContext, final ObjectAdapter inObject,
+ final ObjectAdapter value) {
}
});
}
@@ -146,7 +150,9 @@ public class PropertyAnnotationFacetFactoryTest extends AbstractFacetFactoryJUni
private void addClearFacet(final FacetHolder holder) {
FacetUtil.addFacet(new PropertyClearFacetAbstract(holder) {
@Override
- public void clearProperty(final ObjectAdapter inObject) {
+ public void clearProperty(
+ final PropertyAccessingContext propertyAccessingContext,
+ final ObjectAdapter targetAdapter) {
}
});
}
http://git-wip-us.apache.org/repos/asf/isis/blob/ec51c582/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/specification/MustSatisfySpecificationValidatingInteractionMoreTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/specification/MustSatisfySpecificationValidatingInteractionMoreTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/specification/MustSatisfySpecificationValidatingInteractionMoreTest.java
index c4ea7f5..e7d4b05 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/specification/MustSatisfySpecificationValidatingInteractionMoreTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/specification/MustSatisfySpecificationValidatingInteractionMoreTest.java
@@ -32,7 +32,7 @@ import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
import org.apache.isis.core.metamodel.facets.object.validating.mustsatisfyspec.MustSatisfySpecificationFromMustSatisfyAnnotationOnTypeFacet;
-import org.apache.isis.core.metamodel.interactions.PropertyModifyContext;
+import org.apache.isis.core.metamodel.interactions.PropertyValidityContext;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
@@ -58,7 +58,7 @@ public class MustSatisfySpecificationValidatingInteractionMoreTest {
private TranslationService mockTranslationService;
@Mock
- private PropertyModifyContext mockContext;
+ private PropertyValidityContext mockContext;
private ObjectAdapter mockProposedObjectAdapter;
http://git-wip-us.apache.org/repos/asf/isis/blob/ec51c582/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/specification/MustSatisfySpecificationValidatingInteractionTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/specification/MustSatisfySpecificationValidatingInteractionTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/specification/MustSatisfySpecificationValidatingInteractionTest.java
index d187435..71471c2 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/specification/MustSatisfySpecificationValidatingInteractionTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/specification/MustSatisfySpecificationValidatingInteractionTest.java
@@ -32,7 +32,7 @@ import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
import org.apache.isis.core.metamodel.facets.object.validating.mustsatisfyspec.MustSatisfySpecificationFromMustSatisfyAnnotationOnTypeFacet;
-import org.apache.isis.core.metamodel.interactions.PropertyModifyContext;
+import org.apache.isis.core.metamodel.interactions.PropertyValidityContext;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
@@ -58,7 +58,7 @@ public class MustSatisfySpecificationValidatingInteractionTest {
private TranslationService mockTranslationService;
@Mock
- private PropertyModifyContext mockContext;
+ private PropertyValidityContext mockContext;
private ObjectAdapter mockProposedObjectAdapter;
private Object mockProposedObject;
http://git-wip-us.apache.org/repos/asf/isis/blob/ec51c582/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java
index 9d5ef37..33a3da0 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java
@@ -19,14 +19,6 @@
package org.apache.isis.core.metamodel.facets.value;
-import static org.apache.isis.core.unittestsupport.jmocking.JMockActions.returnArgument;
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.not;
-import static org.hamcrest.CoreMatchers.nullValue;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.fail;
-
import java.util.Locale;
import org.jmock.Expectations;
@@ -45,16 +37,24 @@ import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
-import org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacet;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
-import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
import org.apache.isis.core.metamodel.facets.object.encodeable.encoder.EncodableFacetUsingEncoderDecoder;
+import org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacet;
import org.apache.isis.core.metamodel.facets.object.parseable.parser.ParseableFacetUsingParser;
import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueSemanticsProviderAndFacetAbstract;
import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueSemanticsProviderContext;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
+import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
+import static org.apache.isis.core.unittestsupport.jmocking.JMockActions.returnArgument;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+
public abstract class ValueSemanticsProviderAbstractTestCase {
@Rule
@@ -122,7 +122,8 @@ public abstract class ValueSemanticsProviderAbstractTestCase {
protected void setValue(final ValueSemanticsProviderAndFacetAbstract<?> value) {
this.valueSemanticsProvider = value;
this.encodeableFacet = new EncodableFacetUsingEncoderDecoder(value, mockFacetHolder, mockAdapterManager, mockDependencyInjector);
- this.parseableFacet = new ParseableFacetUsingParser(value, mockFacetHolder, DeploymentCategory.PRODUCTION, mockAuthenticationSessionProvider, mockDependencyInjector, mockAdapterManager);
+ this.parseableFacet = new ParseableFacetUsingParser(value, mockFacetHolder, mockConfiguration,
+ DeploymentCategory.PRODUCTION, mockAuthenticationSessionProvider, mockDependencyInjector, mockAdapterManager);
}
protected ValueSemanticsProviderAndFacetAbstract<?> getValue() {